From 067a2c862a10057d478420395cc84227d4d9b0df Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Fri, 29 May 2015 02:07:55 +0300 Subject: [PATCH] The New Desing --- web/css/csshover3.htc | 14 - web/css/file_manager.css | 344 +++ web/css/file_manager_editor.css | 44 + web/css/ie.css | 20 - web/css/jquery-custom-dialogs.css | 19 +- web/css/jquery.fileupload.css | 36 + web/css/main.css | 1327 --------- web/css/styles.min.css | 2552 +++++++++++++++++ web/edit/server/index.php | 160 ++ web/file_manager/UploadHandler.php | 1343 +++++++++ web/file_manager/files.php | 359 +++ web/file_manager/fm_api.php | 70 + web/file_manager/fm_core.php | 201 ++ web/file_manager/index.php | 15 + web/file_manager/upload_file.php | 25 + web/images/add.png | Bin 175 -> 0 bytes web/images/b.png | Bin 4564 -> 0 bytes web/images/b1.png | Bin 6428 -> 0 bytes web/images/b2.png | Bin 6430 -> 0 bytes web/images/background-dots.png | Bin 0 -> 173 bytes web/images/db.png | Bin 181 -> 0 bytes web/images/delete.png | Bin 229 -> 0 bytes web/images/disabled_bg.png | Bin 194 -> 0 bytes web/images/document.png | Bin 0 -> 445 bytes web/images/download.png | Bin 2880 -> 0 bytes web/images/edit.png | Bin 222 -> 0 bytes web/images/edit_bg.png | Bin 0 -> 145 bytes web/images/filemanager.ico | Bin 0 -> 1150 bytes web/images/filemanager_favicon_3.png | Bin 0 -> 223 bytes web/images/flat_icons.png | Bin 0 -> 9853 bytes web/images/folder.png | Bin 183 -> 0 bytes web/images/login-as.png | Bin 233 -> 0 bytes web/images/mail.png | Bin 236 -> 0 bytes web/images/more.png | Bin 176 -> 0 bytes web/images/new_window.png | Bin 193 -> 0 bytes web/images/pattern.png | Bin 137448 -> 0 bytes web/images/period.png | Bin 315 -> 0 bytes web/images/plus.png | Bin 2810 -> 0 bytes web/images/progress.gif | Bin 0 -> 3839 bytes web/images/reload.png | Bin 215 -> 0 bytes web/images/restore.png | Bin 208 -> 0 bytes web/images/sprite.png | Bin 0 -> 46320 bytes web/images/stats.png | Bin 170 -> 0 bytes web/images/stop.png | Bin 150 -> 0 bytes web/images/suspend.png | Bin 2861 -> 0 bytes web/images/transparent-image.png | Bin 161 -> 0 bytes web/images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes web/images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes web/images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes web/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes web/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes web/images/undo.png | Bin 236 -> 0 bytes web/images/update.png | Bin 243 -> 0 bytes web/images/vesta_logo.png | Bin 0 -> 5162 bytes web/index.php | 2 +- web/js/app.js | 46 + web/js/cheef-editor/.gitignore | 1 + web/js/cheef-editor/README.md | 22 + web/js/cheef-editor/ace/ace.js | 11 + .../cheef-editor/ace/ext-static_highlight.js | 1 + web/js/cheef-editor/ace/ext-textarea.js | 1 + web/js/cheef-editor/ace/keybinding-emacs.js | 1 + web/js/cheef-editor/ace/keybinding-vim.js | 1 + web/js/cheef-editor/ace/mode-abap.js | 1 + web/js/cheef-editor/ace/mode-asciidoc.js | 1 + web/js/cheef-editor/ace/mode-c9search.js | 1 + web/js/cheef-editor/ace/mode-c_cpp.js | 1 + web/js/cheef-editor/ace/mode-clojure.js | 1 + web/js/cheef-editor/ace/mode-coffee.js | 1 + web/js/cheef-editor/ace/mode-coldfusion.js | 1 + web/js/cheef-editor/ace/mode-csharp.js | 1 + web/js/cheef-editor/ace/mode-css.js | 1 + web/js/cheef-editor/ace/mode-dart.js | 1 + web/js/cheef-editor/ace/mode-diff.js | 1 + web/js/cheef-editor/ace/mode-dot.js | 1 + web/js/cheef-editor/ace/mode-glsl.js | 1 + web/js/cheef-editor/ace/mode-golang.js | 1 + web/js/cheef-editor/ace/mode-groovy.js | 1 + web/js/cheef-editor/ace/mode-haml.js | 1 + web/js/cheef-editor/ace/mode-haxe.js | 1 + web/js/cheef-editor/ace/mode-html.js | 1 + web/js/cheef-editor/ace/mode-jade.js | 1 + web/js/cheef-editor/ace/mode-java.js | 1 + web/js/cheef-editor/ace/mode-javascript.js | 1 + web/js/cheef-editor/ace/mode-json.js | 1 + web/js/cheef-editor/ace/mode-jsp.js | 1 + web/js/cheef-editor/ace/mode-jsx.js | 1 + web/js/cheef-editor/ace/mode-latex.js | 1 + web/js/cheef-editor/ace/mode-less.js | 1 + web/js/cheef-editor/ace/mode-liquid.js | 1 + web/js/cheef-editor/ace/mode-lisp.js | 1 + web/js/cheef-editor/ace/mode-lua.js | 1 + web/js/cheef-editor/ace/mode-luapage.js | 1 + web/js/cheef-editor/ace/mode-lucene.js | 1 + web/js/cheef-editor/ace/mode-makefile.js | 1 + web/js/cheef-editor/ace/mode-markdown.js | 1 + web/js/cheef-editor/ace/mode-objectivec.js | 1 + web/js/cheef-editor/ace/mode-ocaml.js | 1 + web/js/cheef-editor/ace/mode-perl.js | 1 + web/js/cheef-editor/ace/mode-pgsql.js | 1 + web/js/cheef-editor/ace/mode-php.js | 1 + web/js/cheef-editor/ace/mode-powershell.js | 1 + web/js/cheef-editor/ace/mode-python.js | 1 + web/js/cheef-editor/ace/mode-r.js | 1 + web/js/cheef-editor/ace/mode-rdoc.js | 1 + web/js/cheef-editor/ace/mode-rhtml.js | 1 + web/js/cheef-editor/ace/mode-ruby.js | 1 + web/js/cheef-editor/ace/mode-scad.js | 1 + web/js/cheef-editor/ace/mode-scala.js | 1 + web/js/cheef-editor/ace/mode-scss.js | 1 + web/js/cheef-editor/ace/mode-sh.js | 1 + web/js/cheef-editor/ace/mode-sql.js | 1 + web/js/cheef-editor/ace/mode-stylus.js | 1 + web/js/cheef-editor/ace/mode-svg.js | 1 + web/js/cheef-editor/ace/mode-tcl.js | 1 + web/js/cheef-editor/ace/mode-tex.js | 1 + web/js/cheef-editor/ace/mode-text.js | 0 web/js/cheef-editor/ace/mode-textile.js | 1 + web/js/cheef-editor/ace/mode-typescript.js | 1 + web/js/cheef-editor/ace/mode-xml.js | 1 + web/js/cheef-editor/ace/mode-xquery.js | 1 + web/js/cheef-editor/ace/mode-yaml.js | 1 + web/js/cheef-editor/ace/theme-ambiance.js | 1 + web/js/cheef-editor/ace/theme-chaos.js | 1 + web/js/cheef-editor/ace/theme-chrome.js | 1 + web/js/cheef-editor/ace/theme-clouds.js | 1 + .../cheef-editor/ace/theme-clouds_midnight.js | 1 + web/js/cheef-editor/ace/theme-cobalt.js | 1 + .../cheef-editor/ace/theme-crimson_editor.js | 1 + web/js/cheef-editor/ace/theme-dawn.js | 1 + web/js/cheef-editor/ace/theme-dreamweaver.js | 1 + web/js/cheef-editor/ace/theme-eclipse.js | 1 + web/js/cheef-editor/ace/theme-github.js | 1 + web/js/cheef-editor/ace/theme-idle_fingers.js | 1 + web/js/cheef-editor/ace/theme-kr.js | 1 + web/js/cheef-editor/ace/theme-merbivore.js | 1 + .../cheef-editor/ace/theme-merbivore_soft.js | 1 + .../cheef-editor/ace/theme-mono_industrial.js | 1 + web/js/cheef-editor/ace/theme-monokai.js | 1 + .../cheef-editor/ace/theme-pastel_on_dark.js | 1 + .../cheef-editor/ace/theme-solarized_dark.js | 1 + .../cheef-editor/ace/theme-solarized_light.js | 1 + web/js/cheef-editor/ace/theme-textmate.js | 1 + web/js/cheef-editor/ace/theme-tomorrow.js | 1 + .../cheef-editor/ace/theme-tomorrow_night.js | 1 + .../ace/theme-tomorrow_night_blue.js | 1 + .../ace/theme-tomorrow_night_bright.js | 1 + .../ace/theme-tomorrow_night_eighties.js | 1 + web/js/cheef-editor/ace/theme-twilight.js | 1 + web/js/cheef-editor/ace/theme-vibrant_ink.js | 1 + web/js/cheef-editor/ace/theme-xcode.js | 1 + web/js/cheef-editor/ace/worker-coffee.js | 1 + web/js/cheef-editor/ace/worker-css.js | 1 + web/js/cheef-editor/ace/worker-javascript.js | 1 + web/js/cheef-editor/ace/worker-json.js | 1 + web/js/cheef-editor/ace/worker-xquery.js | 1 + web/js/cheef-editor/jquery-ace.coffee | 126 + web/js/cheef-editor/jquery-ace.js | 195 ++ web/js/cheef-editor/jquery-ace.min.js | 1 + web/js/events.js | 6 +- web/js/file_manager.js | 958 +++++++ web/js/floating_layer.js | 216 ++ web/js/hotkeys.js | 223 ++ web/js/i18n.js.php | 1 + web/js/iviewer/.gitignore | 5 + web/js/iviewer/Changelog | 97 + web/js/iviewer/Gruntfile.js | 75 + web/js/iviewer/README | 20 + web/js/iviewer/TODO | 1 + web/js/iviewer/bower.json | 25 + web/js/iviewer/img/grab.cur | Bin 0 -> 1150 bytes web/js/iviewer/img/hand.cur | Bin 0 -> 1150 bytes web/js/iviewer/img/iviewer.rotate_left.png | Bin 0 -> 1493 bytes web/js/iviewer/img/iviewer.rotate_right.png | Bin 0 -> 1482 bytes web/js/iviewer/img/iviewer.zoom_fit.gif | Bin 0 -> 95 bytes web/js/iviewer/img/iviewer.zoom_in.gif | Bin 0 -> 90 bytes web/js/iviewer/img/iviewer.zoom_out.gif | Bin 0 -> 69 bytes web/js/iviewer/img/iviewer.zoom_zero.gif | Bin 0 -> 98 bytes web/js/iviewer/iviewer.jquery.json | 38 + web/js/iviewer/jquery.iviewer.css | 67 + web/js/iviewer/jquery.iviewer.js | 1297 +++++++++ web/js/iviewer/jquery.iviewer.min.js | 13 + web/js/iviewer/package.json | 18 + web/js/iviewer/test/arrow.png | Bin 0 -> 2045 bytes web/js/iviewer/test/index.html | 86 + web/js/iviewer/test/index3.html | 173 ++ web/js/iviewer/test/jquery.js | 5 + web/js/iviewer/test/jquery.mousewheel.js | 107 + web/js/iviewer/test/jquery.mousewheel.min.js | 13 + web/js/iviewer/test/jqueryui.js | 50 + .../lightbox-gallery/img/bg_transblack.png | Bin 0 -> 932 bytes .../test/lightbox-gallery/img/btn_close.png | Bin 0 -> 1207 bytes .../test/lightbox-gallery/img/btn_next.png | Bin 0 -> 374 bytes .../test/lightbox-gallery/img/btn_prev.png | Bin 0 -> 371 bytes .../test/lightbox-gallery/img/btn_zoomin.png | Bin 0 -> 970 bytes .../test/lightbox-gallery/img/btn_zoomout.png | Bin 0 -> 959 bytes .../test/lightbox-gallery/img/spinner.gif | Bin 0 -> 7592 bytes .../iviewer/test/lightbox-gallery/index.html | 48 + web/js/iviewer/test/lightbox-gallery/main.js | 123 + .../iviewer/test/lightbox-gallery/readme.txt | 4 + .../iviewer/test/lightbox-gallery/style.css | 79 + .../test/lightbox/img/bg_transblack.png | Bin 0 -> 932 bytes .../iviewer/test/lightbox/img/btn_close.png | Bin 0 -> 1207 bytes .../iviewer/test/lightbox/img/btn_zoomin.png | Bin 0 -> 970 bytes .../iviewer/test/lightbox/img/btn_zoomout.png | Bin 0 -> 959 bytes web/js/iviewer/test/lightbox/img/spinner.gif | Bin 0 -> 7592 bytes web/js/iviewer/test/lightbox/index.html | 47 + web/js/iviewer/test/lightbox/main.js | 59 + web/js/iviewer/test/lightbox/style.css | 69 + .../iviewer/test/test_active_with_objects.GIF | Bin 0 -> 9001 bytes web/js/iviewer/test/test_image.jpg | Bin 0 -> 139082 bytes web/js/iviewer/test/test_image2.jpg | Bin 0 -> 60826 bytes web/js/iviewer/test/test_image3.jpg | Bin 0 -> 79968 bytes web/js/iviewer/test/ui/jquery.ui.core.js | 308 ++ web/js/iviewer/test/ui/jquery.ui.mouse.js | 156 + web/js/iviewer/test/ui/jquery.ui.widget.js | 262 ++ web/js/jquery-ui.min.js | 13 + web/js/jquery.fileupload.js | 1457 ++++++++++ web/js/jquery.finder.js | 27 +- web/js/jquery.iframe-transport.js | 214 ++ web/js/jquery.mousewheel.min.js | 13 + web/js/jquery.uploadify.min.js | 16 + web/js/ripple.js | 177 ++ web/js/templates.js | 61 + web/js/uploadify.swf | Bin 0 -> 12767 bytes web/list/updates/index.php | 2 +- web/templates/admin/add_cron.html | 68 +- web/templates/admin/add_db.html | 71 +- web/templates/admin/add_dns.html | 74 +- web/templates/admin/add_dns_rec.html | 64 +- web/templates/admin/add_firewall.html | 62 +- web/templates/admin/add_firewall_banlist.html | 89 +- web/templates/admin/add_ip.html | 72 +- web/templates/admin/add_mail.html | 58 +- web/templates/admin/add_mail_acc.html | 72 +- web/templates/admin/add_package.html | 146 +- web/templates/admin/add_user.html | 78 +- web/templates/admin/add_web.html | 98 +- .../admin/edit_backup_exclusions.html | 70 +- web/templates/admin/edit_cron.html | 68 +- web/templates/admin/edit_db.html | 67 +- web/templates/admin/edit_dns.html | 71 +- web/templates/admin/edit_dns_rec.html | 70 +- web/templates/admin/edit_firewall.html | 61 +- web/templates/admin/edit_ip.html | 69 +- web/templates/admin/edit_mail.html | 58 +- web/templates/admin/edit_mail_acc.html | 77 +- web/templates/admin/edit_package.html | 146 +- web/templates/admin/edit_user.html | 82 +- web/templates/admin/edit_web.html | 135 +- web/templates/admin/generate_ssl.html | 68 +- web/templates/admin/list_backup.html | 292 +- web/templates/admin/list_backup_detail.html | 594 ++-- .../admin/list_backup_exclusions.html | 183 +- web/templates/admin/list_cron.html | 317 +- web/templates/admin/list_db.html | 370 +-- web/templates/admin/list_dns.html | 325 ++- web/templates/admin/list_dns_rec.html | 232 +- web/templates/admin/list_firewall.html | 243 +- .../admin/list_firewall_banlist.html | 200 +- web/templates/admin/list_ip.html | 318 +- web/templates/admin/list_log.html | 144 +- web/templates/admin/list_mail.html | 395 +-- web/templates/admin/list_mail_acc.html | 350 ++- web/templates/admin/list_packages.html | 434 +-- web/templates/admin/list_rrd.html | 189 +- web/templates/admin/list_search.html | 446 +-- web/templates/admin/list_services.html | 397 +-- web/templates/admin/list_ssl.html | 56 +- web/templates/admin/list_stats.html | 458 +-- web/templates/admin/list_updates.html | 261 +- web/templates/admin/list_user.html | 598 ++-- web/templates/admin/list_web.html | 418 +-- web/templates/admin/list_weblog.html | 61 +- web/templates/admin/panel.html | 215 +- web/templates/file_manager/main.php | 377 +++ web/templates/file_manager/tab_menu.php | 17 + web/templates/footer.html | 58 +- web/templates/header.html | 336 +-- web/templates/login.html | 8 +- web/templates/reset_1.html | 2 +- web/templates/reset_2.html | 2 +- web/templates/reset_3.html | 2 +- web/templates/user/edit_dns.html | 89 +- web/templates/user/edit_user.html | 134 +- web/templates/user/edit_web.html | 160 +- web/templates/user/list_cron.html | 305 +- web/templates/user/list_db.html | 360 ++- web/templates/user/list_dns.html | 312 +- web/templates/user/list_dns_rec.html | 229 +- web/templates/user/list_mail.html | 382 +-- web/templates/user/list_mail_acc.html | 337 ++- web/templates/user/list_search.html | 423 +-- web/templates/user/list_stats.html | 442 +-- web/templates/user/list_user.html | 523 ++-- web/templates/user/list_web.html | 421 +-- web/templates/user/panel.html | 201 +- web/upload/UploadHandler.php | 1354 +++++++++ web/upload/files/.gitignore | 3 + web/upload/files/.htaccess | 18 + web/upload/index.php | 15 + web/view/file/index.php | 32 + web/view/file/index_new.php | 31 + web/view/file/index_old.php | 86 + 305 files changed, 22231 insertions(+), 7576 deletions(-) delete mode 100644 web/css/csshover3.htc create mode 100644 web/css/file_manager.css create mode 100644 web/css/file_manager_editor.css delete mode 100644 web/css/ie.css create mode 100644 web/css/jquery.fileupload.css delete mode 100644 web/css/main.css create mode 100644 web/css/styles.min.css create mode 100644 web/edit/server/index.php create mode 100644 web/file_manager/UploadHandler.php create mode 100644 web/file_manager/files.php create mode 100644 web/file_manager/fm_api.php create mode 100644 web/file_manager/fm_core.php create mode 100644 web/file_manager/index.php create mode 100644 web/file_manager/upload_file.php delete mode 100644 web/images/add.png delete mode 100644 web/images/b.png delete mode 100644 web/images/b1.png delete mode 100644 web/images/b2.png create mode 100644 web/images/background-dots.png delete mode 100644 web/images/db.png delete mode 100644 web/images/delete.png delete mode 100644 web/images/disabled_bg.png create mode 100644 web/images/document.png delete mode 100644 web/images/download.png delete mode 100644 web/images/edit.png create mode 100644 web/images/edit_bg.png create mode 100644 web/images/filemanager.ico create mode 100644 web/images/filemanager_favicon_3.png create mode 100644 web/images/flat_icons.png delete mode 100644 web/images/folder.png delete mode 100644 web/images/login-as.png delete mode 100644 web/images/mail.png delete mode 100644 web/images/more.png delete mode 100644 web/images/new_window.png delete mode 100644 web/images/pattern.png delete mode 100644 web/images/period.png delete mode 100644 web/images/plus.png create mode 100644 web/images/progress.gif delete mode 100644 web/images/reload.png delete mode 100644 web/images/restore.png create mode 100644 web/images/sprite.png delete mode 100644 web/images/stats.png delete mode 100644 web/images/stop.png delete mode 100644 web/images/suspend.png delete mode 100644 web/images/transparent-image.png delete mode 100644 web/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 web/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 web/images/ui-bg_glass_75_dadada_1x400.png delete mode 100644 web/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 web/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 web/images/ui-icons_222222_256x240.png delete mode 100644 web/images/undo.png delete mode 100644 web/images/update.png create mode 100644 web/images/vesta_logo.png create mode 100644 web/js/cheef-editor/.gitignore create mode 100644 web/js/cheef-editor/README.md create mode 100644 web/js/cheef-editor/ace/ace.js create mode 100644 web/js/cheef-editor/ace/ext-static_highlight.js create mode 100644 web/js/cheef-editor/ace/ext-textarea.js create mode 100644 web/js/cheef-editor/ace/keybinding-emacs.js create mode 100644 web/js/cheef-editor/ace/keybinding-vim.js create mode 100644 web/js/cheef-editor/ace/mode-abap.js create mode 100644 web/js/cheef-editor/ace/mode-asciidoc.js create mode 100644 web/js/cheef-editor/ace/mode-c9search.js create mode 100644 web/js/cheef-editor/ace/mode-c_cpp.js create mode 100644 web/js/cheef-editor/ace/mode-clojure.js create mode 100644 web/js/cheef-editor/ace/mode-coffee.js create mode 100644 web/js/cheef-editor/ace/mode-coldfusion.js create mode 100644 web/js/cheef-editor/ace/mode-csharp.js create mode 100644 web/js/cheef-editor/ace/mode-css.js create mode 100644 web/js/cheef-editor/ace/mode-dart.js create mode 100644 web/js/cheef-editor/ace/mode-diff.js create mode 100644 web/js/cheef-editor/ace/mode-dot.js create mode 100644 web/js/cheef-editor/ace/mode-glsl.js create mode 100644 web/js/cheef-editor/ace/mode-golang.js create mode 100644 web/js/cheef-editor/ace/mode-groovy.js create mode 100644 web/js/cheef-editor/ace/mode-haml.js create mode 100644 web/js/cheef-editor/ace/mode-haxe.js create mode 100644 web/js/cheef-editor/ace/mode-html.js create mode 100644 web/js/cheef-editor/ace/mode-jade.js create mode 100644 web/js/cheef-editor/ace/mode-java.js create mode 100644 web/js/cheef-editor/ace/mode-javascript.js create mode 100644 web/js/cheef-editor/ace/mode-json.js create mode 100644 web/js/cheef-editor/ace/mode-jsp.js create mode 100644 web/js/cheef-editor/ace/mode-jsx.js create mode 100644 web/js/cheef-editor/ace/mode-latex.js create mode 100644 web/js/cheef-editor/ace/mode-less.js create mode 100644 web/js/cheef-editor/ace/mode-liquid.js create mode 100644 web/js/cheef-editor/ace/mode-lisp.js create mode 100644 web/js/cheef-editor/ace/mode-lua.js create mode 100644 web/js/cheef-editor/ace/mode-luapage.js create mode 100644 web/js/cheef-editor/ace/mode-lucene.js create mode 100644 web/js/cheef-editor/ace/mode-makefile.js create mode 100644 web/js/cheef-editor/ace/mode-markdown.js create mode 100644 web/js/cheef-editor/ace/mode-objectivec.js create mode 100644 web/js/cheef-editor/ace/mode-ocaml.js create mode 100644 web/js/cheef-editor/ace/mode-perl.js create mode 100644 web/js/cheef-editor/ace/mode-pgsql.js create mode 100644 web/js/cheef-editor/ace/mode-php.js create mode 100644 web/js/cheef-editor/ace/mode-powershell.js create mode 100644 web/js/cheef-editor/ace/mode-python.js create mode 100644 web/js/cheef-editor/ace/mode-r.js create mode 100644 web/js/cheef-editor/ace/mode-rdoc.js create mode 100644 web/js/cheef-editor/ace/mode-rhtml.js create mode 100644 web/js/cheef-editor/ace/mode-ruby.js create mode 100644 web/js/cheef-editor/ace/mode-scad.js create mode 100644 web/js/cheef-editor/ace/mode-scala.js create mode 100644 web/js/cheef-editor/ace/mode-scss.js create mode 100644 web/js/cheef-editor/ace/mode-sh.js create mode 100644 web/js/cheef-editor/ace/mode-sql.js create mode 100644 web/js/cheef-editor/ace/mode-stylus.js create mode 100644 web/js/cheef-editor/ace/mode-svg.js create mode 100644 web/js/cheef-editor/ace/mode-tcl.js create mode 100644 web/js/cheef-editor/ace/mode-tex.js create mode 100644 web/js/cheef-editor/ace/mode-text.js create mode 100644 web/js/cheef-editor/ace/mode-textile.js create mode 100644 web/js/cheef-editor/ace/mode-typescript.js create mode 100644 web/js/cheef-editor/ace/mode-xml.js create mode 100644 web/js/cheef-editor/ace/mode-xquery.js create mode 100644 web/js/cheef-editor/ace/mode-yaml.js create mode 100644 web/js/cheef-editor/ace/theme-ambiance.js create mode 100644 web/js/cheef-editor/ace/theme-chaos.js create mode 100644 web/js/cheef-editor/ace/theme-chrome.js create mode 100644 web/js/cheef-editor/ace/theme-clouds.js create mode 100644 web/js/cheef-editor/ace/theme-clouds_midnight.js create mode 100644 web/js/cheef-editor/ace/theme-cobalt.js create mode 100644 web/js/cheef-editor/ace/theme-crimson_editor.js create mode 100644 web/js/cheef-editor/ace/theme-dawn.js create mode 100644 web/js/cheef-editor/ace/theme-dreamweaver.js create mode 100644 web/js/cheef-editor/ace/theme-eclipse.js create mode 100644 web/js/cheef-editor/ace/theme-github.js create mode 100644 web/js/cheef-editor/ace/theme-idle_fingers.js create mode 100644 web/js/cheef-editor/ace/theme-kr.js create mode 100644 web/js/cheef-editor/ace/theme-merbivore.js create mode 100644 web/js/cheef-editor/ace/theme-merbivore_soft.js create mode 100644 web/js/cheef-editor/ace/theme-mono_industrial.js create mode 100644 web/js/cheef-editor/ace/theme-monokai.js create mode 100644 web/js/cheef-editor/ace/theme-pastel_on_dark.js create mode 100644 web/js/cheef-editor/ace/theme-solarized_dark.js create mode 100644 web/js/cheef-editor/ace/theme-solarized_light.js create mode 100644 web/js/cheef-editor/ace/theme-textmate.js create mode 100644 web/js/cheef-editor/ace/theme-tomorrow.js create mode 100644 web/js/cheef-editor/ace/theme-tomorrow_night.js create mode 100644 web/js/cheef-editor/ace/theme-tomorrow_night_blue.js create mode 100644 web/js/cheef-editor/ace/theme-tomorrow_night_bright.js create mode 100644 web/js/cheef-editor/ace/theme-tomorrow_night_eighties.js create mode 100644 web/js/cheef-editor/ace/theme-twilight.js create mode 100644 web/js/cheef-editor/ace/theme-vibrant_ink.js create mode 100644 web/js/cheef-editor/ace/theme-xcode.js create mode 100644 web/js/cheef-editor/ace/worker-coffee.js create mode 100644 web/js/cheef-editor/ace/worker-css.js create mode 100644 web/js/cheef-editor/ace/worker-javascript.js create mode 100644 web/js/cheef-editor/ace/worker-json.js create mode 100644 web/js/cheef-editor/ace/worker-xquery.js create mode 100644 web/js/cheef-editor/jquery-ace.coffee create mode 100644 web/js/cheef-editor/jquery-ace.js create mode 100644 web/js/cheef-editor/jquery-ace.min.js create mode 100644 web/js/file_manager.js create mode 100644 web/js/floating_layer.js create mode 100644 web/js/hotkeys.js create mode 100644 web/js/i18n.js.php create mode 100644 web/js/iviewer/.gitignore create mode 100644 web/js/iviewer/Changelog create mode 100644 web/js/iviewer/Gruntfile.js create mode 100644 web/js/iviewer/README create mode 100644 web/js/iviewer/TODO create mode 100644 web/js/iviewer/bower.json create mode 100644 web/js/iviewer/img/grab.cur create mode 100644 web/js/iviewer/img/hand.cur create mode 100644 web/js/iviewer/img/iviewer.rotate_left.png create mode 100644 web/js/iviewer/img/iviewer.rotate_right.png create mode 100644 web/js/iviewer/img/iviewer.zoom_fit.gif create mode 100644 web/js/iviewer/img/iviewer.zoom_in.gif create mode 100644 web/js/iviewer/img/iviewer.zoom_out.gif create mode 100644 web/js/iviewer/img/iviewer.zoom_zero.gif create mode 100644 web/js/iviewer/iviewer.jquery.json create mode 100644 web/js/iviewer/jquery.iviewer.css create mode 100644 web/js/iviewer/jquery.iviewer.js create mode 100644 web/js/iviewer/jquery.iviewer.min.js create mode 100644 web/js/iviewer/package.json create mode 100644 web/js/iviewer/test/arrow.png create mode 100644 web/js/iviewer/test/index.html create mode 100644 web/js/iviewer/test/index3.html create mode 100644 web/js/iviewer/test/jquery.js create mode 100644 web/js/iviewer/test/jquery.mousewheel.js create mode 100644 web/js/iviewer/test/jquery.mousewheel.min.js create mode 100644 web/js/iviewer/test/jqueryui.js create mode 100644 web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png create mode 100644 web/js/iviewer/test/lightbox-gallery/img/btn_close.png create mode 100644 web/js/iviewer/test/lightbox-gallery/img/btn_next.png create mode 100644 web/js/iviewer/test/lightbox-gallery/img/btn_prev.png create mode 100644 web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png create mode 100644 web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png create mode 100644 web/js/iviewer/test/lightbox-gallery/img/spinner.gif create mode 100644 web/js/iviewer/test/lightbox-gallery/index.html create mode 100644 web/js/iviewer/test/lightbox-gallery/main.js create mode 100644 web/js/iviewer/test/lightbox-gallery/readme.txt create mode 100644 web/js/iviewer/test/lightbox-gallery/style.css create mode 100644 web/js/iviewer/test/lightbox/img/bg_transblack.png create mode 100644 web/js/iviewer/test/lightbox/img/btn_close.png create mode 100644 web/js/iviewer/test/lightbox/img/btn_zoomin.png create mode 100644 web/js/iviewer/test/lightbox/img/btn_zoomout.png create mode 100644 web/js/iviewer/test/lightbox/img/spinner.gif create mode 100644 web/js/iviewer/test/lightbox/index.html create mode 100644 web/js/iviewer/test/lightbox/main.js create mode 100644 web/js/iviewer/test/lightbox/style.css create mode 100644 web/js/iviewer/test/test_active_with_objects.GIF create mode 100644 web/js/iviewer/test/test_image.jpg create mode 100644 web/js/iviewer/test/test_image2.jpg create mode 100644 web/js/iviewer/test/test_image3.jpg create mode 100644 web/js/iviewer/test/ui/jquery.ui.core.js create mode 100644 web/js/iviewer/test/ui/jquery.ui.mouse.js create mode 100644 web/js/iviewer/test/ui/jquery.ui.widget.js create mode 100644 web/js/jquery-ui.min.js create mode 100644 web/js/jquery.fileupload.js create mode 100644 web/js/jquery.iframe-transport.js create mode 100644 web/js/jquery.mousewheel.min.js create mode 100644 web/js/jquery.uploadify.min.js create mode 100644 web/js/ripple.js create mode 100644 web/js/uploadify.swf create mode 100644 web/templates/file_manager/main.php create mode 100644 web/templates/file_manager/tab_menu.php create mode 100755 web/upload/UploadHandler.php create mode 100644 web/upload/files/.gitignore create mode 100644 web/upload/files/.htaccess create mode 100644 web/upload/index.php create mode 100644 web/view/file/index.php create mode 100644 web/view/file/index_new.php create mode 100644 web/view/file/index_old.php diff --git a/web/css/csshover3.htc b/web/css/csshover3.htc deleted file mode 100644 index 1c368895f..000000000 --- a/web/css/csshover3.htc +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/web/css/file_manager.css b/web/css/file_manager.css new file mode 100644 index 000000000..4dd374e0f --- /dev/null +++ b/web/css/file_manager.css @@ -0,0 +1,344 @@ +body { margin: 0; padding: 0; } +.hidden { display: none; } + +#main{ display: inline-block; font-family: Arial; font-size: 15px; color: #777; width: 100%; } + +.window { display: inline-block; float: left; /*border: 1px solid #eee;*/ width: 50%; height: 100%; background-color: #ececec; /*background: url(/images/background-dots.png) #ececec;*/ } +.window.active { background: #fff; } + +.pwd { background-color: #7b7b7b; height: 31px; padding: 12px 0 0 17px; } +.window.active .pwd { background-color: #333; } +.window.active .pwd a { color: #FFF; } +.pwd a { color: #CFCFCF; margin-right: 6px; padding: 0 7px; cursor: pointer; text-decoration: none; } +.window.active .pwd a:hover, .pwd a:hover { color: #FFCC00; } + + +.menu { background-color: #E2E2E0; display: inline-block; color: #999999; width: 100%; padding: 8px 0 7px 0; border-bottom: 1px solid #CFCFCD; border-left: 1px solid #CFCFCD; margin-left: -1px; } + +.menu div { display: inline-block; float: left; padding: 5px 9px; font-size: 11px; margin: 0 3px; line-height: 14px; } + +.menu div.button.disabled:hover, +.menu div.button { cursor: pointer; border: 1px solid #E2E2E0; border-radius: 3px; text-decoration: underline; background-color: #E2E2E0; + transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; + -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; + box-shadow: none; color: #999; +} +.menu div.button:hover { border: 1px solid #B7B7B7; text-decoration: none; background-color: #FFF; /*#EAEAE8;*/ color: #333; +/* box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.64); */ + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.29); +/* box-shadow: 0 6px 15px rgba( 0, 0, 0, 0.23), 0 10px 18px rgba( 0, 0, 0, 0.16);*/ +/* box-shadow: 0 3px 10px rgba(0, 0, 0, 0.23), 0 3px 10px rgba(0, 0, 0, 0.16);*/ +} +.menu div.button.disabled:hover, +.menu div.button.disabled { opacity: 0.5; cursor: default; text-decoration: none; } + + + +.menu .upload.button { color: #777; border: 1px solid #B7B7B7; background-color: #EAEAE8; text-transform: uppercase; font-size: 12px; text-decoration: none; margin-left: 8px; padding: 5px 12px; margin-right: 10px; border-radius: 3px; float: left; transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; font-size: 11px; line-height: 14px; } +.window.active .menu .upload { border: 1px solid #F79B44; background-color: #F79B44; color: #FFF; } + +.menu .upload.button.progress { background: url(/images/progress.gif) no-repeat /*-98px*/ -60px 0px #EBEBEB; border-color: #8A9079; color: transparent; padding: 3px 12px; height: 0; margin-top: 9px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; + -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; +} + +.menu .upload.button.progress.done { background-color: #d1ff66; border-color: #8a9079; box-shadow: 0 0 9px 0 #d1ff38; color: transparent; height: 0; margin-top: 9px; padding: 3px 12px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; } + +.menu .upload.button:hover, .window.active .menu .upload:hover { border: 1px solid #469D8D; background-color: #54bdaa; /*border: 1px solid #6DB8D3; background-color: #6DB8D3;*/ color: #fff; box-shadow: 0 2px 5px 0 rgba( 47, 106, 95, 0.8); } +.menu .upload.button:active, .window.active .menu .upload:active { border: 1px solid #FFCC00; background-color: #FFCC00; color: #FFF; } + +.menu .not-writable { color: #BD846A; font-size: 12px; text-decoration: none; margin-left: 10px; padding: 5px 12px; margin-right: 20px; } + +.menu .sort-by { border-bottom: 1px solid #b7b7b7; border-radius: 0; cursor: pointer; float: right; height: 17px; line-height: 10px; margin-right: 8px; padding: 8px 10px 0; text-decoration: none; width: 100px; } +.menu .sort-by .direction { background: url("/images/flat_icons.png") repeat scroll -245px -76px; display: inline-block; float:right; width: 12px; height: 20px; margin-top: -10px; } +.menu .sort-by.desc .direction { background-position: -270px -76px; } +.menu .sort-by span { font-size: 12px; color: #555; text-decoration: none; border: none; } +.menu .sort-by span.entity { color: #555; text-decoration: none; border: none; float: right; display: inline-block; } +.menu .sort-by:hover span { color: #429586; } +.menu .total-size { padding: 7px 0 0 0; } + +.menu .not-writable:hover { border: 1px solid #E2E2E0; } + +ul.listing { list-style-type: none; padding: 18px 0 0; margin: 0; border-left: 1px solid #DDDDDD; margin-left: -1px; overflow: auto; } +.listing li { color: #999999; display: block; height: 32px; margin: 1px 0 0; line-height: 30px; border: 1px solid transparent; } +.listing li span { display: inline-block; float: right; } +.listing li .marker { width: 4px; float: left; height: 100%; margin-right: 31px; } +.listing li.back { } +.listing li.file { } + + +/* .listing li .icon { background: url("/images/document.png") no-repeat scroll -2px 6px; float: left; margin-left: -17px; width: 13px; height: 24px; }*/ +.listing li .icon { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px/*-97px -100px*/; float: left; margin-left: -17px; width: 31px; height: 31px; } +.listing li .icon.filetype-dir { background: url("/images/flat_icons.png") no-repeat scroll -24px -99px /*-99px 0px 25px -69px */; } + +.listing li .icon.filetype-tif, +.listing li .icon.filetype-gif, +.listing li .icon.filetype-jpg, +.listing li .icon.filetype-jpeg, +.listing li .icon.filetype-bmp, +.listing li .icon.filetype-psd, +.listing li .icon.filetype-thm, +.listing li .icon.filetype-yuv, +.listing li .icon.filetype-ai, +.listing li .icon.filetype-svg, +.listing li .icon.filetype-png { background: url("/images/flat_icons.png") no-repeat scroll -138px -69px; } + +.listing li .icon.filetype-txt, +.listing li .icon.filetype-csv, +.listing li .icon.filetype-dat, +.listing li .icon.filetype-efx, +.listing li .icon.filetype-gbr, +.listing li .icon.filetype-key, +.listing li .icon.filetype-pps, +.listing li .icon.filetype-ppt, +.listing li .icon.filetype-sdf, +.listing li .icon.filetype-vcf, +.listing li .icon.filetype-db { background: url("/images/flat_icons.png") no-repeat scroll -97px -150px; } + + +.listing li .icon.filetype-xlr, +.listing li .icon.filetype-xls, +.listing li .icon.filetype-xlsx { background: url("/images/flat_icons.png") no-repeat scroll -138px -147px; } + +.listing li .icon.filetype-jar, +.listing li .icon.filetype-tar, +.listing li .icon.filetype-7z, +.listing li .icon.filetype-deb, +.listing li .icon.filetype-gz, +.listing li .icon.filetype-pkg, +.listing li .icon.filetype-rar, +.listing li .icon.filetype-rpm, +.listing li .icon.filetype-sit, +.listing li .icon.filetype-sitx, +.listing li .icon.filetype-zip, +.listing li .icon.filetype-zipx, +.listing li .icon.filetype-jar { background: url("/images/flat_icons.png") no-repeat scroll -176px -34px; } + +.listing li .icon.filetype-fnt, +.listing li .icon.filetype-otf, +.listing li .icon.filetype-ttf, +.listing li .icon.filetype-fon { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px; } + +.listing li .icon.filetype-3g2, +.listing li .icon.filetype-3gp, +.listing li .icon.filetype-asf, +.listing li .icon.filetype-asx, +.listing li .icon.filetype-avi, +.listing li .icon.filetype-flv, +.listing li .icon.filetype-mov, +.listing li .icon.filetype-mp4, +.listing li .icon.filetype-mpg, +.listing li .icon.filetype-mpeg, +.listing li .icon.filetype-rm, +.listing li .icon.filetype-swf, +.listing li .icon.filetype-vob, +.listing li .icon.filetype-wmv { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px; } + +.listing li .icon.filetype-aif, +.listing li .icon.filetype-iff, +.listing li .icon.filetype-m3u, +.listing li .icon.filetype-m4a, +.listing li .icon.filetype-mid, +.listing li .icon.filetype-mp3, +.listing li .icon.filetype-mpa, +.listing li .icon.filetype-ra, +.listing li .icon.filetype-wav, +.listing li .icon.filetype-wma { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px; } + + +.listing li .icon.filetype-rtf, +.listing li .icon.filetype-doc, +.listing li .icon.filetype-docx { background: url("/images/flat_icons.png") no-repeat scroll -138px -123px; } +.listing li .icon.filetype-pdf { background: url("/images/flat_icons.png") no-repeat scroll -138px -96px; } + +.listing li .icon.filetype-js { background: url("/images/flat_icons.png") no-repeat scroll -138px -204px; } +.listing li .icon.filetype-css { background: url("/images/flat_icons.png") no-repeat scroll -138px -254px; } +.listing li .icon.filetype-php { background: url("/images/flat_icons.png") no-repeat scroll -138px -179px; } +.listing li .icon.filetype-html, +.listing li .icon.filetype-htm, +.listing li .icon.filetype-xhtml { background: url("/images/flat_icons.png") no-repeat scroll -138px -228px; } + + +.listing li .filename { color: #555; cursor: pointer; height: 32px; float: left; padding: 0 7px 0 7px; border-radius: 3px; transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0s; } +/* .listing li .filename { background: url("/images/folder_.png") no-repeat scroll -2px 6px; color: #555; cursor: pointer; float: left; margin-left: -27px; padding-left: 19px; }*/ + + +.listing li .filename:hover { color: #FFF; background-color: #6CB6B9; } +.listing li.selected .filename:hover { color: #FFF; } +.listing li.active .filename:hover { color: #FFF; background-color: #CAA335; } +.listing li.active.selected .filename:hover { color: #FFF; background-color: #60A885; } + +.listing li .filename a { color: #7D7D7D; text-decoration: none; } +.listing li .mode { width: 51px; font-size: 11px; } +.listing li .owner { width: 11%; font-style: italic; color: #81A64F; font-size: 12px; } +.listing li .size { width: 8%; color: #44a8b3; font-size: 12px; padding-right: 7px; text-align: right; } +.listing li .size-unit { width: 5%; font-size: 11px; font-weight: bold; color: #A7A7A7; padding-top: 1px; } +.listing li .date { width: 11%; font-size: 11px; } +.listing li .time { width: 8%; font-size: 11px; } + +.listing li.selected-inactive.selected { background-color: #e9e9e9; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } +.listing li.selected-inactive .mode, +.listing li.selected-inactive .time, +.listing li.selected-inactive .date { color: #999 !important; } +.listing li.selected { background-color: #7FD5D9; } +.window.active .listing li.selected.active { background-color: #73CAA0; } + + +.listing li.selected-inactive.selected.active { background-color: #dfc891; border-top: 1px solid #cdb885; border-bottom: 1px solid #cdb885; } +.listing li.active { background-color: #e7cf96; } +.window.active .listing li.active { background-color: #ffe06c; } +.listing li.active .filename{ color: #31775A; } +.listing li.selected .filename { color: #333; } +.listing li.selected .date, +.listing li.selected .mode, +.listing li.selected .time { color: #FFF; } +.listing li.selected .owner { color: #31775A; } +.listing li.selected .size { color: #31775A; } + +.listing li.selected.active .filename { color: #fff29c; } +.listing li.selected.active .marker { background-color: #3a8a96; } +.listing li.selected-inactive .marker { background-color: #7FD5D9; } +.listing li.selected-inactive .filename { color: #54A9A9; } + + +.listing li .filename a:hover { color: #3399FF; } +.listing li:hover { background-color: #F4F4F2; } +.listing li.active:hover { background-color: #FFD63F; } +.listing li.selected:hover { background-color: #89E6EA; } +.listing li.selected.active:hover { background-color: #77D1A6; } + + + + +.context-menu { background-color: #333333; width: 200px; list-style-type: none; font-family: arial; padding-left: 0; } +.context-menu li { border-bottom: 1px solid #555; padding: 12px 12px 12px 12px; color: #D6CEC1; font-size: 14px; cursor: pointer; } + +.context-menu li:hover { background-color: #4B4B4B; color: #FFF; } +.context-menu li:active { background-color: #FFCC00; color: #FFF; } +.context-menu li.download { text-transform: uppercase; font-size: 12px; color: #CCCD33; } +.context-menu li.download:hover { background-color: #CCCD33; color: #FFF; } +.context-menu li.delete { color: #DC5847; } +.context-menu li.delete:hover { background-color: #DC5847; color: #FFF; } +.context-menu li.disabled { font-size: 12px; color: #777; cursor: default; } +.context-menu li.disabled:active, .context-menu li.disabled:hover { background-color: #333; color: #777; } + +.context-menu.sort-order { width: 148px; border-radius: 3px; box-shadow: 0px 2px 11px 0px rgba(0, 0, 0, 0.5); left: 300px; position: absolute; top: 54px; overflow: hidden; margin: 0; } +.context-menu.sort-order li { padding: 0; } +.context-menu.sort-order li.last { border: none; } +.context-menu.sort-order li:hover { background-color: #333; } +.context-menu.sort-order span { padding: 12px 12px 12px 12px; background: ulr(/images/flat_icons.png) } +.context-menu.sort-order span.up { background: url(/images/flat_icons.png) -255px -141px; padding: 12px 14px; display: inline-block; width: 16px; } +.context-menu.sort-order span.name { background: url("/images/flat_icons.png") repeat scroll -162px -105px; display: inline-block; padding: 12px 28px 12px 12px; width: 64px; } + + +.context-menu.sort-order span.active { background-color: #FFCC00; color: #FFF; } + +.context-menu.sort-order span:hover { background-color: #4B4B4B; color: #FFF; } +.context-menu.sort-order span:active { background-color: #FFCC00; color: #FFF; } + + +.confirm-box { background-color: #333; width: 480px; font-family: arial; margin-left: 50px; border-radius: 3px; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } +/*.confirm-box.replace { height: 230px; }*/ +.confirm-box .message { color: #EBE697; font-size: 16px; padding: 25px; margin-bottom: 60px; display: inline-block; } +.confirm-box .warning { color: #FF9500; font-size: 16px; padding: 25px; } +.confirm-box .warning .title, +.confirm-box .message .title { color: #48B1B7; } +.confirm-box .action-name { color: #B9CAD4; display: inline-block; float: left; margin-bottom: 28px; margin-left: 25px; } +.confirm-box .action-name span { display: inline-block; float: left; } +.confirm-box .action-nam .checkbox { border: 1px solid #777; height: 10px; margin-right: 10px; margin-top: 3px; padding-top: 0; width: 10px; } + +.confirm-box .controls { border-top: 1px solid #555; display: inline-block; width: 100%; margin-bottom :9px; } +.confirm-box .controls .cancel { /*background-color: #e8e8e6;*/ border: 1px solid transparent; border-radius: 3px; color: #CCC; display: inline-block; float: left; font-size: 12px; margin: 12px 0 0 12px; padding: 7px 18px; text-transform: uppercase; cursor: pointer; } +.confirm-box .controls .keep-original { color: #ccc; cursor: pointer; display: inline-block; float: left; margin: 11px 0 0 15px; padding: 7px; text-decoration: underline; } +.confirm-box .controls .ok { margin: 12px 12px 0 0; border-radius: 3px; cursor: pointer; border: 1px solid #CACE33; background-color: #CACE33; color: #FFF; float: right; display: inline-block; font-size: 12px; padding: 7px 18px; text-transform: uppercase; width: 100px; text-align: center; height: 14px; } +.confirm-box .controls .cancel:hover, +.confirm-box .controls .ok:hover { border: 1px solid #54BDAA; background-color: #54BDAA; /*border: 1px solid #6DB8D3; background-color: #6DB8D3;*/ color: #FFF; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } +.confirm-box .controls .cancel:active, +.confirm-box .controls .ok:active { border: 1px solid #ccc; background-color: #ccc; } +.confirm-box.delete .controls .ok { background-color: #ff9f89; border-color: #ff9f89; } +.confirm-box.delete .controls .ok:hover { background-color: #FF6C6E; border-color: #FF6C6E; } + + + +.confirm-box .controls .keep-original:hover { color: #FFCC00; } +.confirm-box .controls .keep-original:active { color: #6DB8D3; } + +/*.confirm-box.delete { height: 183px; }*/ + +.confirm-box .new-title { background-color: #292929; border: 1px solid #111; color: #fff; font-family: Arial; font-size: 16px; margin-bottom: 73px; margin-left: 27px; padding: 10px 14px; width: 396px; } +.confirm-box .new-title:focus { border: 1px solid #FFCC00; box-shadow: 0 0 5px 0 rgba(255, 204, 0 , 0.3); } + +/*.confirm-box.rename { height: 209px; } */ +.confirm-box.rename .message { margin-bottom: 36px; } +.confirm-box.rename .controls.replace { display: none; } +.confirm-box.rename.warning .controls { display: none; } +.confirm-box.rename .warning { display: none; } +.confirm-box.rename.warning .warning { display: inline-block; } +.confirm-box.rename.warning .controls.replace { display: inline-block; } +.confirm-box.rename.warning .message { padding-bottom: 0; } + +/*.confirm-box.archive { height: 468px; }*/ +.confirm-box.archive .message { margin-bottom: 38px; } +.confirm-box.archive.warning .controls, +.confirm-box.archive .controls.replace, +.confirm-box.archive .warning { display: none; } + +.confirm-box.archive.warning .controls.replace, +.confirm-box.archive.warning .warning { display: inline-block; } +.confirm-box.archive.warning .message { margin-bottom: -31px; } + +.confirm-box .actions select { background-color: #333333; border: 1px solid #ccc; color: #fff; font-family: Arial; font-size: 16px; margin-bottom: 27px; margin-left: 27px; padding: 10px 14px; } +.confirm-box .actions .title { color: #ccc; font-family: Arial; line-height: 33px; padding-left: 27px; text-transform: capitalize; } + +/*.confirm-box.owner-mode { height: 484px; }*/ +.confirm-box.owner-mode .warning { display: none; } +.confirm-box.owner-mode.warning .warning { display: inline-block; } +.confirm-box.owner-mode.warning .message { margin-bottom: -39px; } +.confirm-box.owner-mode .message { margin-bottom: 30px; } +.confirm-box.owner-mode .mode, +.confirm-box.owner-mode .owner-group { display: inline-block; } +.confirm-box.owner-mode .mode .col, +.confirm-box.owner-mode .owner-group .col { display: inline-block; float: left; width: 150px; } +.confirm-box.owner-mode .recursive { margin-top: 30px; margin-bottom: 25px; } + + +.warning-box { width: 60%; background-color: #ff9f89; border-bottom: 5px solid #ff6c6e; color: #FFF; font-family: arial; margin-left: auto; margin-right: auto; padding-bottom: 30px; margin-bottom: 50px; left: 20%; position: absolute; top: 0; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } +.warning-box.inform { background-color: #72c5b2; border-color: #019174; } +.warning-box .message { width: 100%; padding: 30px 0 5px; text-align: center; font-size: 14px; text-transform: uppercase; font-weight: bold; } +.warning-box .message-small { width: 100%; text-align: center; font-size: 13px; color: #9D3407; } +.warning-box.inform .message-small { color: #555; } +.warning-box .close { width: 30px; height: 30px; top: 5px; right: -5px; background-color: #FFF; float: right; cursor: pointer; background: url("/images/flat_icons.png") repeat scroll -258px -174px; } +.warning-box .close:hover { background-color: #DC5D5F; } +.warning-box.inform .close:hover { background-color: #019174; } + + + +.fotorama--fullscreen .fotorama__fullscreen-icon { background-position: -64px 0 !important; } + + +/* + transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; + -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; + + box-shadow: 0 6px 15px rgba( 0, 0, 0, 0.23), 0 10px 18px rgba( 0, 0, 0, 0.16); + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.23), 0 3px 10px rgba(0, 0, 0, 0.16); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.64); + + +*/ + + +/* + Для Дмитрия (удалить после прочтения): + + Аплоад прячет инпут, делая его прозрачным, и помещая поверх кнопку html (сделано для кроссбраузерности) + При стилизации кнопки для аплоада, важно задать такие же размеры для инпута с типом файла, + иначе он может быть больше или меньше стилизованной кнопки, что приведёт к вызову аплоад диалогового окна + при клике на неправильную область + + + вот файл инпут ----> .fileinput-button input +*/ +.fileinput-button input { + font-size: 14px !important; + width: 90px; +} diff --git a/web/css/file_manager_editor.css b/web/css/file_manager_editor.css new file mode 100644 index 000000000..9db4931af --- /dev/null +++ b/web/css/file_manager_editor.css @@ -0,0 +1,44 @@ +body, form { padding: 0; margin: 0; background: #333; } + + +input.save { + background-color: rgba(247, 165, 48, 0.8); + border: 1px solid #f79b44; + border-radius: 3px; +/* bottom: 17px;*/ + top: 9px; + color: #fafafa; + cursor: pointer; + display: inline-block; + float: left; + font-family: Arial,Helvetica,sans-serif; + font-size: 9pt; + font-weight: bold; + height: 28px; + padding: 0; + position: absolute; + right: 47px; + width: 130px; + z-index: 1000; + transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; +} + +input.save:hover { border: 1px solid #6DB8D3; background-color: #6DB8D3; color: #FFF; opacity: 1; box-shadow: 0 6px 10px rgba(0,0,0,0.23), 0 10px 30px rgba(0,0,0,0.19); } +input.save:active { border: 1px solid #FFCC00; background-color: #FFCC00; color: #FFF; } + + +.ace_gutter, +.ace_scroller { padding-top: 10px; } +.ace-twilight .ace_gutter-active-line { margin-top: 10px; } + +.ace_gutter-cell { color: #777; } +/* +.ace_gutter-cell { color: #777; padding: 9px 0px 0px 4px; } +.ace_line { padding: 9px 0px 0px 4px; } + +.ace_editor, +.ace-twilight .ace_cursor, +.ace_text-input { font-size: 17px; } +*/ + +.ace_editor { font-size: 19px !important; } diff --git a/web/css/ie.css b/web/css/ie.css deleted file mode 100644 index 6df370bb3..000000000 --- a/web/css/ie.css +++ /dev/null @@ -1,20 +0,0 @@ -html, body, div, span, applet, object, iframe { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} - -.vst-advanced { - text-decoration: underline; -} - -#vstobjects{ - padding-top: 182px; - min-height: 370px; - height: auto !important; - height: 370px; - width: 1000px; -} diff --git a/web/css/jquery-custom-dialogs.css b/web/css/jquery-custom-dialogs.css index f0cb265ab..1a9c3e812 100644 --- a/web/css/jquery-custom-dialogs.css +++ b/web/css/jquery-custom-dialogs.css @@ -56,9 +56,9 @@ .ui-widget { font-family: Arial, Helvetica, sans-serif; font-size: 12pt; } .ui-widget .ui-widget { font-size: 10pt; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, Helvetica, sans-serif; font-size: 10pt; } -.ui-widget-content { border: 1px solid #aaaaaa; color: #222222; } +.ui-widget-content { border: 1px solid #aaaaaa; color: #ccc; } .ui-widget-content a { color: #222222; } -.ui-widget-header { background: #777; color: #444; font-size: 10pt; font-weight: bold;} +.ui-widget-header { color: #444; font-size: 10pt; font-weight: bold;} .ui-widget-header a { color: #222222; } /* Interaction Cues @@ -375,10 +375,11 @@ * * http://docs.jquery.com/UI/Button#theming */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .10pt; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +/* +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .10pt; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } .ui-button { filter:chroma(color=#000000); cursor: pointer; color: #fff; background-color: #f79b44; border: 1px solid #f79b44; border-radius: 3px 3px 3px 3px; font-weight: bold; font-size: 14px; padding: 2px 16px; width: 108px; height: 34px; } .ui-button:hover { border: 1px solid #9e9e9e; background-color: #9e9e9e; color: #fff;} -.ui-button:active { background-color: #ccc; color: #fff; border: 1px solid #ccc; } +.ui-button:active { background-color: #ccc; color: #fff; border: 1px solid #ccc; }*/ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ .ui-button-icons-only { width: 3.4em; } @@ -416,14 +417,14 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad * * http://docs.jquery.com/UI/Dialog#theming */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; background: #fff; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 10pt; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .10pt 16px .10pt 0; font-family: Arial; color: #fff;} +.ui-dialog { background: none repeat scroll 0 0 #333; border: 1px solid #333; border-radius: 3px; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); font-family: arial; overflow: hidden; padding: 27px 0 5px; position: absolute; width: 480px; } +.ui-dialog .ui-dialog-titlebar { padding: 2px 26px 0; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .10pt 16px .10pt 0; font-family: Arial; color: #ebe697; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 10pt; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 0 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 10pt .5em .4em; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: 10px 14px 30px; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { border-color: #555; border-style: solid none none; text-align: left; margin: .5em 0 0 0; padding: 6px 0 1px 1px; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { text-align: center; ;margin: 0 0 0 0px; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } diff --git a/web/css/jquery.fileupload.css b/web/css/jquery.fileupload.css new file mode 100644 index 000000000..fb6044d34 --- /dev/null +++ b/web/css/jquery.fileupload.css @@ -0,0 +1,36 @@ +@charset "UTF-8"; +/* + * jQuery File Upload Plugin CSS 1.3.0 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.fileinput-button { + position: relative; + overflow: hidden; +} +.fileinput-button input { + position: absolute; + top: 0; + right: 0; + margin: 0; + opacity: 0; + -ms-filter: 'alpha(opacity=0)'; + font-size: 200px; + direction: ltr; + cursor: pointer; +} + +/* Fixes for IE < 8 */ +@media screen\9 { + .fileinput-button input { + filter: alpha(opacity=0); + font-size: 100%; + height: 100%; + } +} diff --git a/web/css/main.css b/web/css/main.css deleted file mode 100644 index eabbc4fc1..000000000 --- a/web/css/main.css +++ /dev/null @@ -1,1327 +0,0 @@ -body { - font-family: Arial, Helvetica, sans-serif; - background-color: #75b0c5; - background: url("/images/pattern.png") repeat fixed 0 0 rgba(0, 0, 0, 0); - margin: 0; - padding: 0; - border: 0; -} - -form { - margin: 0; -} - - -table { - border-collapse: collapse; -} - -td { - padding: 0; -} - -label { - cursor: pointer; -} - -label:hover { - color: #469DC5; -} - -label:active { - color: #F79B44; -} - -.hidden { - display: none; -} - -.top { - width: 1000px; -} - -.top.small .submenu{ - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.10); -} - -.top .nav-logo .logo-container{ - background-color: #fff; - width: 167px; -} - -.top.small-logo .nav-logo .logo-container{ - position: fixed; -} -.top.small-logo .nav-logo img{ - margin: 29px 0 -4px 10px; - padding: 0 0 10px; -} - - -.top-menu { - height: 24px; - background-color: #505050; - width: 1000px; - position: fixed; - z-index: 10; -} - -.top-link { - float: left; - color: #f1f1f1; - font-family: Arial, Helvetica, sans-serif; - font-size: 10pt; - font-weight: bold; - text-decoration: none; - line-height: 22px; - padding: 0 20px 2px; -} - -.top-link:hover { - color: #fff; - background-color: #f79b44; -} - -.top-link:active { - color: #333; - background-color: #eee; -} - -.top-selected-link { - float: left; - font-family: Arial, Helvetica, sans-serif; - font-size: 10pt; - font-weight: bold; - text-decoration: none; - line-height: 22px; - padding: 0 20px 2px; - color: #333; - background-color: #eee; -} - -.top-selected-link:hover { - color: #fff; - background-color: #f79b44; -} - -.top-selected-link:active { - color: #2361a1; - background-color: #eee; -} - -.top-user { - float: left; - line-height: 22px; - padding: 0 4px 2px; - text-decoration: none; - color: #ffd62e; - font-size: 10pt; - font-weight: bold; - font-family: Arial, Helvetica, sans-serif; -} - -.top-user:hover { - color: #6DB8D3; -} - -.top-user:active { - color: #fff; - background-color: #f79b44; -} - -.top-logout { - float: left; - color: #f0f0f0; - font-family: Arial, Helvetica, sans-serif; - font-size: 10pt; - font-weight: bold; - text-decoration: none; - line-height: 22px; - padding: 0 4px 2px 4px; - margin: 0 14px 2px 0; -} - -.top-logout:hover { - color: #fff; - background-color: #f79b44; -} - -.top-logout:active { - color: #fff; - background-color: #999; -} - -.main-menu{ - display: block; - float: left; - margin-bottom: 1px; - z-index: 10; -} - -.nav-logo { - float: left; - height: 139px; - width: 167px; - margin: 0 0 0px; -} - -.nav-logo img{ - margin: 56px 0 0 10px; -} - -.nav-lnk { - text-decoration: none; - color: #222; - float:left; -} - -.nav-lnk:active { - color: #f79b44; -} - -.nav-block { - font-family: Arial, Helvetica, sans-serif; - margin: 0; - height: 111px; - width: 119px; - float:left; - cursor: pointer; - padding-bottom: 2px; -} - -.nav-block:hover { - height:108px; - padding-bottom: 0; -} - -.nav-selected-block { - padding-bottom: 0; - font-family: Arial, Helvetica, sans-serif; - margin: 0; - color: #3A89AE; -/* color: #1677A5;*/ - height: 108px; - width: 119px; - float: left; - cursor: pointer; -} - -.nav-selected-block:hover { - height:108px; -} - -.nav-selected-block:active { - color: #f79b44; -} - -.top .nav-block .marker, -.top .nav-selected-block .marker { - -webkit-transition: background .1s ease-in-out; - -moz-transition: background .1s ease-in-out; - -o-transition: background .1s ease-in-out; - transition: background .1s ease-in-out; - padding: 0; - height: 4px; - margin: 12px 0 0 0; - width: 100%; - background-color: #fff; -} - -.top .nav-selected-block .marker { - background-color: #777; - border-bottom: 1px solid #777; -} - -.top.small .marker{ - position: fixed; - top: 66px; - width: 119px; -} - -.nav-block:hover .marker{ - background-color: #f79b44; - border-bottom: 1px solid #f79b44; -} - -.nav-selected-block:hover .marker{ - background-color: #f79b44; - border-bottom: 1px solid #f79b44; -} - -.nav-header, .nav-selected-header { - background-color: #FFF; - font-size: 16pt; - font-weight: bold; - height: 27px; - letter-spacing: -1px; - margin: 0; - padding: 16px 0 0 6px; - position: fixed; - top: 24px; - width: 113px; - z-index: 10; -} - -.top.small .nav-header, .top.small .nav-selected-header{ - height: 38px; -} - -.nav-counters { - padding: 1px 0 0 6px; - margin: 65px 0 0 0; - height: 58px; - line-height: 1.4em; - font-size: 9pt; - font-family: Arial, Helvetica, sans-serif; -// color: #333; - color: #666; - decoration: none; - overflow: hidden; -} - -.submenu { - font-family:Arial, Helvetica, sans-serif; - vertical-align: middle; - float: left; - width: 1000px; - border-bottom: 1px solid #e1e8e8; - border-top: 1px solid #e1e8e8; - background-color: #fff; - margin-bottom: -1px; -} - -.top.small .submenu{ - position: fixed; - top: 82px; - z-index: 10; -} - -.submenu .wrapper{ - padding: 11px 10px 14px 10px; -} - -.submenu-button-block { - float: left; -} - -.submenu-button-main { - width: 130px; - height: 28px; - cursor: pointer; - color: #fafafa; - background-color: #f79b44; - border: 1px solid #f79b44; - border-radius: 3px 3px 3px 3px; - padding: 0; - font-size: 9pt; - font-weight: bold; - font-family:Arial, Helvetica, sans-serif; -} - -.submenu-button-select { - width: 24px; - height: 28px; - cursor: pointer; - color: #555; - background-color: #fafafa; - border: 1px solid #ccc; - border-radius: 0px 3px 3px 0px; - font-size: 9pt; - font-weight: bold; - font-family:Arial, Helvetica, sans-serif; - position: absolute; -} - -.submenu-button-search { - width: 92px; - height: 28px; - cursor: pointer; - color: #555; - background-color: #fafafa; - border: 1px solid #ccc; - border-radius: 3px 3px 3px 3px; - padding: 0; - font-size: 9pt; - font-weight: bold; - font-family:Arial, Helvetica, sans-serif; -} - - -@-moz-document url-prefix() { - .submenu-button-main { - padding-bottom: 2px; - } -} - -@-moz-document url-prefix() { - .submenu-button-select { - padding-bottom: 2px; - } -} - -@-moz-document url-prefix() { - .submenu-button-search { - padding-bottom: 2px; - } -} - -.submenu-button-main:hover { - border: 1px solid #6DB8D3; - background-color: #6DB8D3; - - -webkit-transition: background .1s ease-in-out; - -moz-transition: background .1s ease-in-out; - -o-transition: background .1s ease-in-out; - transition: background .1s ease-in-out; -} - -.submenu-button-select:hover { - border: 1px solid #6DB8D3; - background-color: #6DB8D3; - color: #fff; -} - -.submenu-button-search:hover { - border: 1px solid #6DB8D3; - background-color: #6DB8D3; - color: #fff; -} - -.submenu-button-main:active { - border: 1px solid #ccc; - background-color: #ccc; -} - -.submenu-button-select:active { - color: #fff; - border: 1px solid #ccc; - background-color: #ccc; -} - -.submenu-button-search:active { - border: 1px solid #ccc; - background-color: #ccc; -} - -.submenu-select-block { - float:left; - padding-left: 30px; -} - -.submenu-select-link { - color: #6a6a6a; - display: block; - float: left; - font-size: 8pt; - letter-spacing: 0.1em; - margin: 7px 7px 0 0; - text-decoration: none; - padding: 0 4px -} - -.submenu-select-link:hover { - color: #fff; - background-color: #f79b44; -} - -.submenu-select-link:active { - color: #fff; - background-color: #777; -} - -.submenu-select-wrapper { - float: left; - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; - border-left: 1px solid #ccc; - background: #fafafa url("/images/arrow.png") no-repeat right 3px center; - cursor: pointer; - color: #777; - font-size: 9pt; - border-radius: 3px 0px 0px 3px; - padding: 0 11px 0 0; -} - -.submenu-select-wrapper, .submenu-select-wrapper select{ - min-width: 107px; - height: 26px; - line-height: 26px; -} - -.submenu-select-wrapper:hover { - background-color: #fff; - border-color:#909090; - color: #555; -} - -.submenu-select-wrapper select:focus { - border-color:#f79b44; - background-color: #fffcd2; - color: #333; -} - -.submenu-select-wrapper option { - padding: 5px; -} - -.submenu-select-wrapper .holder{ - display: block; - margin: 0 5px 0 5px; - white-space: nowrap; - overflow: hidden; - cursor: pointer; -} - -.submenu-select-wrapper select{ - margin: 0; - position: absolute; - cursor: pointer; - outline: none; - opacity: 0; - /* CSS hacks for older browsers */ - _noFocusLine: expression(this.hideFocus=true); - -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -khtml-opacity: 0; - -moz-opacity: 0; -} - -.submenu-search-block { - display: block; - text-align: right; - float: right; -} - -.submenu-search-field { - border: 1px solid #d3d3d3; - border-radius: 3px 3px 3px 3px; - color: #333; - font-size: 14px; - background-color: #fff; - float: left; - padding: 0px 5px 0px 5px; - height: 26px; - width: 232px; - margin: 0 4px 0 0; -} - -.submenu-search-field:hover { - border: 1px solid #909090; -} - -.submenu-search-field:focus { - border: 1px solid #f79b44; - background-color: #FFFCD2; - color: #333; -} - -.bottom { - background-color: #ebe9dc; - color: #555; - margin: 30px 0 0 0; - padding: 4px 20px 8px 0; - margin-left: auto; - margin-right: auto; - font-size: 8pt; - text-align: center; - vertical-align:top; - line-height: 0.8em; - border-top: 4px solid #d3d3d3; -} - -.bottom a:link { - font-size: 8pt; - text-decoration: none; - color: #555; -} - -.bottom a:visited { - text-decoration: none; - color: #555; -} - -.bottom a:hover { - text-decoration: underline; - color: #7fa1cb; -} - -.vst { - padding: 0px 2px 0 2px; - margin: 5px 7px 0 7px; - text-decoration: none; - color: #999; - font-size: 11pt; - float: left; -} - -.vst:hover { - color: #f79b44; - text-decoration: underline; -} - -.vst:active { - color: #fff; - background-color: #f79b44; -} - -.vst-selected { - padding: 5px 7px 0 7px; - margin: 0; - text-decoration: none; - color: #2361a1; - font-size: 11pt; - float: left; -} - -.vst-selected:hover { - text-decoration: underline; -} - -.vst-selected:active { - color: #fff; - background-color: #f79b44; -} - -.data { - width: 1000px; - border-collapse:collapse; - margin-left: auto; - margin-right: auto; - font-family:Arial, Helvetica, sans-serif; - color: #e5a907; - font-size: 12pt; - text-align: left; - vertical-align:top; - margin: 1px 0 0 0; - behavior:url("/css/csshover3.htc"); - background-color: #fff -} - -.data a { - text-decoration: none; -} - - -.data-row.selected, .data-row.selected.suspended{ - background-color: #e4e9e9; -} - -.datarowhover { - margin: 0; - background-color: #f7f6ed; -} - -.data-null { - margin: 0; - height: 10px; - border-top:1px dotted #d3d3d3; -} - -.data-spacer { - margin: 0; -} - -.data-add { - margin: 0; - background-color: #eceff1; - border-bottom: 1px solid #e9e9e9; -} - -.mode-add .data-add { - background-color: #f7f6ed; -} - -.data-dotted { - text-align: left; - vertical-align:top; - border-top: 1px dotted #d3d3d3; - padding: 0 0 26px 0; - margin: 0; -} - -.data-dotted td { - margin: 0; -} - -.data-col1 { - text-align: left; - padding: 0; - width: 173px; -} - -.data-col1 tr td { - padding:2px 0 6px 26px; -} - -.data-col1 tr:first-child td { - padding:24px 0 0 26px; -} - -.data-col2 { - text-align: left; - overflow: hidden; - width: 827px; -} - -.data-col5 { - text-align: left; - overflow: hidden; - width: 817px; - table-layout: fixed; - white-space: nowrap; -} - -.data-date { - letter-spacing: 0.1em; - font-size: 8pt; - color: #333; -} - -.data-active { - font-size: 8pt; - letter-spacing: 0.1em; - color: #81a64f; -} - -.data-suspended { - font-size: 8pt; - letter-spacing: 0.1em; - color: #de5543; -} - -.data-controls { - float: right; - height: 16px; - border-left: 1px solid #d3d3d3; - font-size: 8pt; - padding: 6px 11px 2px; - letter-spacing: 0.1em; - color: #3e7c91; - text-decoration: none; - cursor: pointer; -} - -.data-controls.edit{ - font-weight: bold; - letter-spacing: 0; -} - -.data-controls:hover { - color: #fff; - background-color: #f79b44; - border-left: 1px solid #f79b44; -} - -.data-controls.do_delete:hover { - background-color: #FF6947; -} - -.data-controls:active { - background-color: #999; -} - - -.data-controls img { - border: 0px; -} - -.ch-toggle { - cursor: pointer; -} - -.data-count { - font-family: Arial, Helvetica, sans-serif; - color: #505050; - font-size: 8pt; - padding: 20px 0 20px 174px; -} - -.chart { - color: #222; - font-size: 10pt; - padding: 4px 0; -} - -.mini-info { - color: #222; - font-size: 8pt; - padding: 4px 0 4px 1px; -} - -.bar { - width:160px; - height:7px; - font-size:0; - background-color: #d0d0d0; -} - -.fill { - height:7px; - background-color: #8bc34a; - border-right: 1px #8bc34a solid; -} - -.mini { - height:5px; -} - -.username { - color: #222; - font-size: 16pt; - font-weight: bold; - padding: 1px 0 0 0; -} - -.domain { - color: #333; - font-size: 16pt; - padding: 2px 0 2px 0; - font-weight: bold; -} - -.suspended .domain { - color: #777; -} - -.domain.hostname { - font-size: 16pt; -} - -.cron { - color: #222; - font-size: 18px; - padding: 1px 0 2px 0; -} - -.log { - color: #222; - font-size: 12pt; - padding: 1px 0 2px 0; -} - -.aliases { - font-size: 12pt; - color: #90a4ae; - padding: 0 0 0 8px; - font-weight: normal; -} - -.nginx-ext { - color: black; - vertical-align:top; - font-size: 10pt; -} - -.fullname { - font-size: 12pt; - font-weight: normal; - color: #90a4ae; -} - -.counter-name { - vertical-align: top; - line-height: 1.2em; - font-size: 10pt; - color: #666; - padding: 2px 4px 1px 0; - white-space: nowrap; -} - -.cron-counter-name { - vertical-align: top; - line-height: 0.8em; - font-size: 8pt; - padding: 4px 0 0 0; - color: #666; -} - -.counter-value { - vertical-align: top; - line-height: 1.2em; - font-size: 10pt; - color: #555; - padding: 2px 0 1px 2px; -} - -.log-counter-value { - vertical-align:top; - font-size: 12pt; - color: #7E7D7F; -} - -.cron-counter-value { - vertical-align:top; - line-height: 1.2em; - font-size: 12pt; - color: #7E7D7F; -} - -.name { - font-size: 12pt; - color: #777; - padding: 0 0 0 10px; -} - -.vst-ok { - font-size: 12pt; - color: #558b2f; - padding: 4px; -} - -.vst-ok a { - color: #33691e; - color: #558b2f; -} - -.vst-ok a:hover { - background: #f79b44; - color: #fff; -} - -.vst-error { - font-size: 12pt; - color: #de6c5d; - padding: 4px; - font-weight: bold; -} - -.vst-text { - color: #222; - font-size: 12pt; -} - -.vst-textinput { - background-color: #fff; - border: 1px solid #ddd; - border-radius: 3px 3px 3px 3px; - color: #555; - font-size: 12pt; - padding: 5px; - width: 360px; - height: 90px; - font-family:Arial, Helvetica, sans-serif; - padding: 9px 1px 6px 14px; -} - -.vst-textinput:hover { - border: 1px solid #909090; -} - -.vst-textinput:focus { - border: 1px solid #f79b44; - background-color: #fffcd2; - color: #333; -} - -.vst-textinput:disabled { - background-color: #f1f1f1; -} - -.vst-input { - background-color: #fff; - border: 1px solid #ddd; - border-radius: 3px 3px 3px 3px; - color: #555; - font-size: 14pt; - padding: 7px 3px 9px 14px; - width: 360px; - height: 28px; - margin: 2px 6px 0 0; - font-family: Arial; -} - -.vst-input:hover { - border: 1px solid #909090; -} - -.vst-input:focus { - border: 1px solid #f79b44; - background-color: #fffcd2; - color: #333; -} - -.vst-input:disabled { - background-color: #f1f1f1; -} - -.vst-input.long{ - width: 580px; -} - -.vst-list { - font-family:Arial, Helvetica, sans-serif; - font-size: 12pt; - color: #555; - height: 43px; - min-width: 138px; - margin: 2px 6px 0 0; - padding: 8px 1px 6px 10px; -} - -.vst-list option { - padding: 6px 1px 6px 15px; -} - -/* -@-moz-document url-prefix() { - .vst-list { - padding-top: 2px; - } -} -*/ - -.vst-checkbox { - padding: 5px; - font-size: 12pt; - border: 1px solid #f7f6ed; - margin: 2px 6px 0 3px; -} - -.vst-checkbox:hover { - border: 1px solid #f79b44; -} - -.button { - filter:chroma(color=#000); - cursor: pointer; - border-radius: 3px 3px 3px 3px; - font-size: 13px; - font-weight: bold; - padding: 1px 16px 3px 16px; - width: 108px; - height: 34px; - color: #fafafa; - border: 1px solid #f79b44; - background-color: #f79b44; -} - -.button:hover { - color: #fff; - border: 1px solid #6DB8D3; - background-color: #6DB8D3; -// font-size: 14px; -// line-height: 28px; -// color: #FFF; -} - -.button:active { - border: 1px solid #ccc; - background-color: #ccc; -} - -.login-button { - filter:chroma(color=#000); - cursor: pointer; - border-radius: 3px 3px 3px 3px; - font-size: 14px; - font-weight: bold; - padding: 2px 16px; - width: 108px; - height: 34px; - color: #fff; - background-color: #f79b44; - border: 1px solid #f79b44; -} - -.login-button:hover { - border: 1px solid #adaeae; - background-color: #adaeae; -} - -.login-button:active { - border: 1px solid #ccc; - background-color: #ccc; -} - -.optional { - padding:0 0 0 6px; - font-size: 10pt; - color:#555; -} - -.generate { - color: #3A89AE; - text-decoration: underline; - cursor: pointer; - margin-left: -3px; - padding: 0 3px; -} - -.generate:hover { - background-color: #f79b44; - color: #fff; -} - -.generate:active { - background-color: #999; -} - -.vst-advanced { - color: #3A89AE; - font-size: 10pt; - letter-spacing: 0.1em; - text-decoration: none; - padding: 0 2px; - border-bottom: 1px solid #f79b44; -} - -.vst-advanced:hover { - color: #fff; - background-color: #f79b44; -} - -.vst-advanced:active { - color: #fff; - background-color: #777; -} - -.fixed { - position: fixed; - border: none; - top: -3px; - border-bottom: 1px solid #d3d3d3; - background-color: #fff; -} - -*html .fixed { - position:absolute; - position:fixed; - _position:absolute; - top:0; - _top:expression( eval(document.body.scrollTop) + 'px' ); -} - -#vstobjects { - padding-top: 193px; - min-height: 372px; -} - -.login { - font-family:Arial, Helvetica, sans-serif; - margin: 80px 0 80px 0; - padding: 0; - background-color: #fff; - text-align: left; - vertical-align:top; - width: 500px; - box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3); -} - -.login-box { - text-align: left; - vertical-align:top; - color: #222; -} - -.login-bottom { - text-align: right; - vertical-align:top; - width: 474px; - height: 50px; - margin: 0; - padding: 0 26px 0 0; -} - -.vestacp { - font-size: 8pt; - color: #505050; - text-align: right; -} - -.error { - font-size: 10pt; - color: #de6c5d; -} - -.hint { - font-size: 12pt; - color: #777; - font-style: italic; -} - -.step-top { - padding-top: 42px; -} - -.step-bottom { - padding-bottom: 20px; -} - -.step-left { - padding-left: 50px; -} - -.input-label { - padding-top: 20px; -} - -.additional-control { - margin-left: 17px; - color: #2361a1; - border-bottom: 1px solid #f79b44; - font-size: 10pt; - letter-spacing: 0.1em; - cursor: pointer; -} - -.additional-control:hover { - background-color: #f79b44; - color: #fff; -} - -.additional-control:active { - color: #fff; - background-color: #aaa; -} - -.additional-control.do_delete:hover{ - background-color: #FF6D3C; -} - -.additional-control.do_delete:active{ - background-color: #aaa; -} - -.ftp-path-prefix { - color: #848483; - font-size: 13px; -} - -.ftp-path-value { - color: #333; - font-size: 13px; - font-weight: bold; -} - -.data .suspended { - background: url(/images/disabled_bg.png); -} - -.timer-container .refresh-timer { - border: 2px solid #9f9f9f; - border-radius: 14px; - height: 14px; - width: 14px; - margin: 10px; - float: left; - margin: 7px 10px 0 0; -} - -.timer-container .refresh-timer.paused{ - border: 2px solid #9f9f9f; -} - -.timer-container .refresh-timer.paused .loader-half.right, -.timer-container .refresh-timer.paused .loader-half.dark{ - background-color: #9d9f9f; -} - -.timer-container .loader-half { - border-radius: 0 14px 14px 0; - height: 14px; - width: 7px; - float: left; -} - -.timer-container .loader-half.left { - border-radius: 14px 0 0 14px; - background-color: #fff; -} - -.timer-container .loader-half.right { - margin-left: 7px; - background-color: #9f9f9f; -} - -.timer-container .loader-half.dark{ - background-color: #9f9f9f; -} - -.timer-container .movement{ - float: left; - width: 14px; - height: 14px; - position: absolute; -} - -.timer-container .movement.left { - z-index: 10; -} - -.timer-container .movement.right{ - transform: rotate(180deg); - -webkit-transform: rotate(180deg); -} - -.timer-container .timer-button{ - cursor: pointer; - text-decotation: underline; - margin: 11px 0 0 38px; - width: 15px; - float: left; - height: 10px; -} - -.timer-container .timer-button.pause{ - background: url(/images/pause.png) no-repeat ; -} - -.timer-container .timer-button.play{ - background: url(/images/start.png) no-repeat; -} - -.confirmation { - vertical-align: top; - text-align: center; - line-height: 1.2em; - font-size: 10pt; - color: #555; - padding: 2px 0 1px 2px; -} - -.hide-password { - color: #2361a1; - padding-left: 3px; - margin-left: -36px; - z-index: 1; -} - -.hide-password:hover { - color: #F79B44; -} - -.toggle-psw-visibility-icon { - cursor: pointer; - opacity: 1; -} - -.show-passwords-enabled-action { - opacity: 0.4; -} - - -.data-controls { - /*display: none;*/ - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - -khtml-opacity: 0; - opacity: 0; -} - -.data-row:hover .data-controls, -.selected .data-controls { - /*display: block;*/ - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - -khtml-opacity: 1; - opacity: 1; -} - -.unlim-trigger { - cursor: pointer; - margin-left: -36px; - padding-left: 3px; - z-index: 1; -} diff --git a/web/css/styles.min.css b/web/css/styles.min.css new file mode 100644 index 000000000..d8be836c4 --- /dev/null +++ b/web/css/styles.min.css @@ -0,0 +1,2552 @@ +/* Syntax Quick Reference + -------------------------- + column($ratios: 1, $offset: 0, $cycle: 0, $uncycle: 0, $gutter: $jeet-gutter) + span($ratio: 1, $offset: 0) + shift($ratios: 0, $col_or_span: column, $gutter: $jeet-gutter) + unshift() + edit() + center($max_width: 1410px, $pad: 0) + stack($pad: 0, $align: false) + unstack() + align($direction: both) + cf() +*/ +/** + * Grid settings. + * All values are defaults and can therefore be easily overidden. + */ +/** + * List functions courtesy of the wonderful folks at Team Sass. + * Check out their awesome grid: Singularity. + */ +/** + * Get percentage from a given ratio. + * @param {number} [$ratio=1] - The column ratio of the element. + * @returns {number} - The percentage value. + */ +/** + * Work out the column widths based on the ratio and gutter sizes. + * @param {number} [$ratios=1] - The column ratio of the element. + * @param {number} [$gutter=$jeet-gutter] - The gutter for the column. + * @returns {list} $width $gutter - A list containing the with and gutter for the element. + */ +/** + * Get the set layout direction for the project. + * @returns {string} $direction - The layout direction. + */ +/** + * Replace a specified list value with a new value (uses built in set-nth() if available) + * @param {list} $list - The list of values you want to alter. + * @param {number} $index - The index of the list item you want to replace. + * @param {*} $value - The value you want to replace $index with. + * @returns {list} $list - The list with the value replaced or removed. + * @warn if an invalid index is supplied. + */ +/** + * Reverse a list (progressively enhanced for Sass 3.3) + * @param {list} $list - The list of values you want to reverse. + * @returns {list} $result - The reversed list. + */ +/** + * Get the opposite direction to a given value. + * @param {string} $dir - The direction you want the opposite of. + * @returns {string} - The opposite direction to $dir. + * @warn if an incorrect string is provided. + */ +/** + * Style an element as a column with a gutter. + * @param {number} [$ratios=1] - A width relative to its container as a fraction. + * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios). + * @param {number} [$cycle=0] - Easily create an nth column grid where $cycle equals the number of columns. + * @param {number} [$uncycle=0] - Undo a previous cycle value to allow for a new one. + * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width. + */ +/** + * An alias for the column mixin. + * @param [$args...] - All arguments get passed through to column(). + */ +/** + * Get the width of a column and nothing else. + * @param {number} [$ratios=1] - A width relative to its container as a fraction. + * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width. + */ +/** + * Get the gutter size of a column and nothing else. + * @param {number} [ratios=1] - A width relative to its container as a fraction. + * @param {number} [gutter=jeet.gutter] - Specify the gutter width as a percentage of the containers width. + */ +/** + * An alias for the column-width function. + * @param [$args...] - All arguments get passed through to column(). + */ +/** + * An alias for the column-gutter function. + * @param [$args...] - All arguments get passed through to column(). + */ +/** + * Style an element as a column without any gutters for a seamless row. + * @param {number} [$ratios=1] - A width relative to its container as a fraction. + * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios). + * @param {number} [cycle=0] - Easily create an nth column grid where cycle equals the number of columns. + * @param {number} [uncycle=0] - Undo a previous cycle value to allow for a new one. + */ +/** + * Reorder columns without altering the HTML. + * @param {number} [$ratios=0] - Specify how far along you want the element to move. + * @param {string} [$col-or-span=column] - Specify whether the element has a gutter or not. + * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width. + */ +/** + * Reset an element that has had shift() applied to it. + */ +/** + * View the grid and its layers for easy debugging. + * @param {string} [$color=black] - The background tint applied. + * @param {boolean} [$important=false] - Whether to apply the style as !important. + */ +/** + * Alias for edit(). + */ +/** + * Horizontally center an element. + * @param {number} [$max-width=1410px] - The max width the element can be. + * @param {number} [$pad=0] - Specify the element's left and right padding. + */ +/** + * Uncenter an element. + */ +/** + * Stack an element so that nothing is either side of it. + * @param {number} [$pad=0] - Specify the element's left and right padding. + * @param {boolean/string} [$align=false] - Specify the text align for the element. + */ +/** + * Unstack an element. + */ +/** + * Center an element on either or both axes. + * @requires A parent container with relative positioning. + * @param {string} [$direction=both] - Specify which axes to center the element on. + */ +/** + * Apply a clearfix to an element. + */ +/* ========================================================================== + Normalize.scss settings + ========================================================================== */ +/** + * Includes legacy browser support IE6/7 + * + * Set to false if you want to drop support for IE6 and IE7 + */ +/* Base + ========================================================================== */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using + * `em` units. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/** + * Remove default margin. + */ +body { + margin: 0; + background-color: #fff; +} + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} + +/** + * Prevents modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} + +.hidden { + display: none; +} +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; + color: #777; +} + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Addresses styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ +/** + * 1. Remove border when inside `a` element in IE 8/9/10. + * 2. Improves image quality when scaled in IE 7. + */ +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ +hr { + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + * 4. Improves appearance and consistency in all browsers. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; + color: transparent !important; + text-shadow: 0 0 0 #555 !important; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. Removes inner spacing in IE 7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE 6. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + * Known issue: excess padding remains in IE 6. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + * 3. Corrects text not wrapping in Firefox 3. + * 4. Corrects alignment displayed oddly in IE 6/7. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +* { + -webkit-tap-highlight-color: transparent; +} + +body { + -webkit-touch-callout: none; + -webkit-text-size-adjust: none; + -webkit-user-select: none; +} + +html, +input, +textarea, +select, +button { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +html { + height: 100%; +} + +body { + font-family: arial; + overflow-x: hidden; + font-size: 14px; + height: 100%; + color: #929292; +} + +.body-login { + height: auto; + /*background: url(/images/edit_bg.png);*/ + background-color: #eee; +} + +a { + text-decoration: none; + color: #929292; +} + +.disabled { + text-decoration: line-through; +} + +.clearfix:before, +.clearfix:after { + content: ''; + display: table; +} + +.clearfix:after { + clear: both; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.check-label { + display: inline-block; + cursor: pointer; + position: relative; + line-height: 16px; + padding-left: 26px; +} + +.check-label:before { + content: ''; + width: 16px; + height: 16px; + position: absolute; + left: 0; + top: 0; + display: inline-block; + background-image: url("/images/sprite.png"); + background-size: 450px auto; + background-repeat: no-repeat; + background-position: -232px -9px; +} + +input[type="checkbox"] { + display: none; +} +.clicked-on.check-label:before, +.selected .check-label:before { + content: ''; + display: inline-block; + width: 27px; + height: 27px; + background-position: -225px -42px; + left: -6px; + top: -6px; +} + +.l-center { + margin: 0 auto; + max-width: 998px; +} + +.l-logo { + background-image: url("/images/sprite.png"); + background-position: -117px -7px; + background-repeat: no-repeat; + display: inline-block; + float: left; + height: 22px; + margin-top: 4px; + width: 73px; + margin-left: -11px; +} + +.l-header { + background-color: #5d5d5d; + overflow: hidden; + margin-bottom: 28px; + position: fixed; + width: 100%; + z-index: 11; +} +.l-header a { + font-size: 12px; +} + +.l-menu__item--active { + background-color: #fff; +} + +.l-menu__item.l-menu__item--active a { + color: #ff6701; + font-size: 10px; + font-weight: bold; + text-transform: uppercase; +} + +.l-menu { + float: left; +} +.l-menu__item { + float: left; +} +.l-menu__item a { + color: #f7f7f7; + position: relative; + line-height: 34px; + padding: 11px 20px; +} +.l-menu__item a:hover { + background-color: #f79b44; + color: #fff; +} +.l-menu__item a:active { + color: #fff; + background-color: #ff6701; +} + + +.lang-ua .l-menu__item a, +.lang-nl .l-menu__item a, +.lang-fr .l-menu__item a, +.lang-ru .l-menu__item a { + padding: 11px 18px; +} +.lang-tr .l-menu__item a, +.lang-ar .l-menu__item a { + padding: 11px 15px; +} +.lang-de .l-menu__item a { + padding: 11px 12px; +} + +.l-profile { + overflow: hidden; + float: right; +} +.l-profile__username { + float: left; + color: #a4abad; + font-weight: 700; + padding: 10px 5px; +} +.l-profile__username:hover { + color: #ffd62e; +} +.l-profile__username:active { + color: #f79b44; +} + + +.l-profile__logout { + float: left; + color: #fff; + margin-left: 40px; + padding: 10px 5px; +} +.l-profile__logout:hover { + color: #C0E60E; +} +.l-profile__logout:active { + color: #ffd62e; +} + + + +.l-stat { + margin: 0 auto; + display: table; + margin: 34px auto; + position: fixed; + background-color: #fff; + z-index: 10; + padding-top: 30px; +} +.l-stat__col { + display: table-cell; + vertical-align: top; +} +.l-stat__col a { + display: inline-block; + padding-bottom: 36px; + min-height: 111px; + width: 138px; + border-bottom: 3px solid #fff; + overflow: hidden; + background-color: #fff; + padding-top: 3px; + margin-top: -3px; + padding-left: 5px; +} +.l-stat__col a:hover { + border-bottom: 3px solid #ff8e61; +} +.l-stat__col a:active { + border-bottom: 3px solid #f72b44; +} +.l-stat__col--active a { + border-bottom: 3px solid #ff6e42; +} + +.l-stat__col a:hover .l-stat__col-title { + color: #ff6701; +} +.l-stat__col a:active .l-stat__col-title { + color: #f72b44; +} + + +.l-stat__col ul { + list-style-type: none; + font-size: 12px; + padding-left: 0; +} +.l-stat__col li { + color: #a0a0a0; + margin-bottom: 8px; + text-transform: lowercase; +} +.l-stat__col span { + padding-left: 15px; +} +.l-stat__col-title { + text-transform: uppercase; + font-weight: 700; + color: #212134; + min-height: 21px; +} +.l-stat__col--active .l-stat__col-title { + color: #ff6701; + font-size: 24px; + margin-top: -7px; + letter-spacing: -1px; + margin-right: -8px; +} + +.l-separator.selected, +.l-separator { + height: 1px; + background-color: #ddd; +} + +div.l-content > div.l-separator:nth-of-type(2) { + margin-top: 214px; + width: 100%; + position: fixed; + z-index: 20; +} + +div.l-content > div.l-separator:nth-of-type(4) { + margin-top: 259px; + width: 100%; + position: fixed; + z-index: 5; +} + +.l-sort { + position: fixed; + width: 998px; + background-color: #fff; + z-index: 10; + margin-top: 215px; +} +.l-sort__create-btn { + background-image: url("/images/sprite.png"); + background-position: -331px -107px; + background-repeat: no-repeat; + bottom: -23px; + display: inline-block; + height: 45px; + left: 30px; + position: absolute; + width: 45px; + z-index: 3; +} +.l-sort__create-btn:hover { + background-position: -378px -107px; +} +.l-sort__create-btn:active { + background-position: -425px -107px; +} +.l-sort__create-btn--active { + background-position: -425px -107px; +} + +.l-sort__create-btn.restore { + background-position: -331px -250px; + bottom: -22px; +} +.l-sort__create-btn.restore:hover { + background-position: -331px -250px; +} +.l-sort__create-btn.restore:active { + background-position: -331px -250px; +} + +.l-sort__create-btn.edit { + background-position: -331px -154px; + bottom: -22px; +} +.l-sort__create-btn.edit:hover { + background-position: -378px -154px; +} +.l-sort__create-btn.edit:active { + background-position: -425px -154px; +} + +.context-menu.sort-order { + display: inline-block; + position: absolute; + z-index: 3; + left: 397px; + margin: 0; + overflow: hidden; + top: 42px; + width: 148px; + background-color: #959593; + list-style-type: none; + padding-left: 0; + box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.3); +} +.context-menu.sort-order li { + padding: 0; +} +.context-menu li { + border-bottom: 1px solid #aaa; + color: #fff; + cursor: pointer; + font-size: 12px; + padding: 12px; +} +.context-menu.sort-order span.name { + background: url("/images/flat_icons.png") repeat scroll -162px -105px rgba(0, 0, 0, 0); + display: inline-block; + padding: 12px 28px 12px 12px; + width: 64px; + text-transform: uppercase; + font-weight: bold; +} +.context-menu.sort-order span.up { + background: url("/images/flat_icons.png") repeat scroll -255px -141px rgba(0, 0, 0, 0); + display: inline-block; + padding: 12px 14px; + width: 16px; +} +.context-menu.sort-order span.active { + background-color: #FFD437; + color: #555; +} +.context-menu.sort-order span:hover { + background-color: #777; + color: #fff; +} +.context-menu.sort-order span:active { + background-color: #ffcc00; +} + + + + +.l-sort-toolbar { + float: right; + padding: 7px 0 7px 0; + width: 100%; +} +.l-sort-toolbar table{ + float: right; +} + +.l-sort-toolbar td.toggle-all { + padding-top: 7px; + padding-right: 40px; +} + +.l-sort-toolbar .sort-by { + cursor: pointer; + padding-top: 7px; + padding-right: 40px; + display: none; +} +.l-sort-toolbar .sort-by:hover { + color: #555; +} +.l-sort-toolbar .sort-by:hover b { + color: #555; +} +.l-sort-toolbar .sort-by:active { + color: #55c9c0; +} +.l-sort-toolbar .sort-by:active b { + color: #55c9c0; +} + +.l-sort-toolbar .toggle-all:hover { + color: #555; +} +.l-sort-toolbar .toggle-all:active { + color: #55c9c0; +} + +.l-sort-toolbar .l-select { + float: left; +} +.l-sort-toolbar td { + vertical-align: middle; +} + +.l-sort-toolbar td:first-of-type { + padding-left: 40px; +} + +.l-sort-toolbar td:nth-of-type(2) { +/* /// padding-right: 60px;*/ +} +.l-sort-toolbar td:last-of-type { +/* /// padding-left: 40px; */ +} +.l-sort-toolbar__filter-apply { + float: left; + width: 30px; + height: 30px; + background-image: url("/images/sprite.png"); + background-position: -333px -1px; + border: none; +} +.l-sort-toolbar__filter-apply:hover { + background-position: -368px -1px; + border-color: #afafac; +} +.l-sort-toolbar__filter-apply:active { + background-position: -404px -1px; + border-color: #afafac; +} +.l-sort-toolbar__filter-apply--active { + background-position: -404px -1px; + border-color: #50bdb5; +} + +.l-sort-toolbar__search { + float: left; + width: 25px; + height: 25px; + background-image: url("/images/sprite.png"); + background-position: -333px -37px; + border: none; +} +.l-sort-toolbar__search:hover { + background-position: -368px -37px; + border-color: #afafac; +} +.l-sort-toolbar__search:active { + background-position: -404px -37px; + border-color: #50bdb5; +} +.l-sort-toolbar__search--active { + background-position: -404px -37px; + border-color: #50bdb5; +} +.l-sort-toolbar .vst { + padding: 0 12px; + color: #999; + text-transform: uppercase; + font-size: 11px; + font-weight: bold; + line-height: 30px; +} +.l-sort-toolbar .vst:hover { + color: #f79b44; +} +.l-sort-toolbar .vst:active { + color: #f72b44; +} +.l-sort-toolbar .vst.selected { + color: #ff6701; +// color: #92af0b; +} + + + +.l-select { + width: 178px; + height: 28px; + border: 1px solid #ddd; + border-radius: 0; + overflow-x: hidden; + position: relative; + display: inline-block; + border-style: solid none solid solid; +} +.l-select:after { + pointer-events: none; + background-image: url("/images/sprite.png"); + background-position: -245px -175px; + width: 7px; + height: 4px; + margin-top: -2px; + content: ''; + position: absolute; + right: 10px; + top: 50%; +} +.l-select select { + border: 0; + background-color: transparent; + line-height: 28px; + height: 28px; + min-width: 208px; + padding-left: 4px; +} +.l-select select:focus { + border: 0; + outline: 0; +} +.l-select select option { + padding: 7px; +} + +.l-unit { + color: #929292; + padding: 0 0 0 15px; + overflow: hidden; +} +.l-unit-ftl { + color: #929292; + padding: 0 0 0 15px; +} + +.l-unit:hover .l-unit-toolbar__col--right { + display: block; +} +.l-unit--orange { + border-left: 2px solid #ff6701; +} +.l-unit--blue { + border-left: 2px solid #55c9c0; +} + +.l-unit--suspended { + background-color: #eaeaea; + color: #c0c0c0; +} + + +.l-unit--outdated { + background-color: #9B3D35; + color: #fff; +} + +.l-unit--suspended .l-unit__name, +.l-unit--suspended b, +.l-unit--outdated .l-unit__name, +.l-unit--outdated b { + color: #c0c0c0; +} + +.l-unit--suspended .l-percent { + border-color: #fff; +} +.l-unit--suspended .l-percent__fill { + background-color: #fff; +} +.l-unit--suspended .l-unit__name, +.l-unit--suspended .l-unit__name span { + color: #ADADAD; +} + +.l-unit--suspended.selected .l-unit__name, +.l-unit--suspended.selected .l-unit__name span { + color: #777; +} + +.l-unit--suspended.selected { + background-color: #f2eab8 !important; + color: #b2ac87 !important; +} + +.l-unit--outdated.selected { + background: #765D5D !important; + color: #FEF482 !important; +} + + + +.l-unit--suspended.selected .l-unit__name, +.l-unit--suspended.selected b, +.l-unit--outdated.selected .l-unit__name, +.l-unit--outdated.selected b, +.l-unit--suspended.selected .l-percent, +.l-unit--suspended.selected .l-percent__fill, +.l-unit--suspended.selected .l-unit__name, +.l-unit--suspended.selected .l-unit__name span { + color: #b2ac87 !important; +} + +.l-unit.selected .l-percent { + border-bottom: 1px dotted #777; +} + + +.l-unit--selected { + background-color: #d1eddc; +} +.l-unit-toolbar{ + height: 51px; +} +.l-unit label { + margin-bottom: 20px; +} +.l-unit__columns { + display: table; + width: 100%; +} +.l-unit__col { + display: table-cell; + padding-top: 1px; +} +.l-unit__col--left { + width: 124px; + padding-right: 10px; +} +.l-unit__col--left.step-left { + padding-left: 30px; +} + +.l-sort-toolbar .step-left { + padding-left: 45px; +} +.step-right { + padding-right: 40px; +} + +.l-unit__date { + font-size: 12px; + letter-spacing: 1px; + margin-top: -13px; + padding-bottom: 30px; +} + +.l-unit__suspended { + display: none; + font-size: 11px; + font-weight: bold; + letter-spacing: 3px; + margin-top: 36px; + text-transform: uppercase; + margin-bottom: 14px; +} + +.l-unit--outdated .l-unit__suspended, +.l-unit--suspended .l-unit__suspended { + display: block; +} + +.l-unit-ft .subtitle, +.l-unit .subtitle { + color: #ff6701; + font-size: 12px; + font-weight: bold; + margin: 20px 0 18px 129px; + text-transform: uppercase; +} + +.l-unit.l-unit--outdated .l-unit__date { + color: #fff7ae; + font-size: 10px; + letter-spacing: 3px; + text-transform: uppercase; + font-weight: bold; +} + +.l-unit__name { + color: #343434; + font-size: 32px; + margin-bottom: 10px; +} +.l-unit__stats.separate, +.l-unit__name.separate { + padding-bottom: 20px; +} + +.l-unit__name.small { + font-size: 19px; +} + +.l-unit__name.small-2 { + font-size: 24px; +} + + +.l-unit__name span { + color: #999; + margin-left: 30px; + font-size: 14px; + font-style: italic; +} +.l-unit__name span:first-of-type { + margin-left: 39px; +} +.l-unit__ip { + margin-bottom: 34px; + font-size: 12px; + letter-spacing: 1px; +} +.l-unit__stats { + margin-bottom: 53px; +} +.l-unit__stats table { + width: 100%; + table-layout: fixed; +} +.l-unit__stats td { + height: 25px; + padding-bottom: 3px; + vertical-align: top; +} +.l-unit__stat-col--left { + float: left; + width: 130px; +} +.l-unit__stat-col--left.compact { + width: 70px; +} +.l-unit__stat-col--left.wide { + width: 190px; +} +.l-unit__stat-col--left.wide-2 { + width: 230px; +} +.l-unit__stat-col--left.wide-3 { + width: 250px; +} +.l-unit__stat-col--left.wide-4 { + width: 575px; +} + + +.l-unit__stat-col--left.small-2 { + line-height: 11px; +} + +.l-unit__stat-col--left.tiny { + font-size: 11px; +} + +.l-unit__stat-col--left.tiny b { + font-size: 18px; +} + + +.l-unit__stat-col--right { + float: left; +} + +.l-unit-toolbar__col--left { + float: left; + margin-left: -15px; + margin-top: 0; + padding-bottom: 8px; + padding-left: 15px; + padding-top: 15px; + width: 30px; + cursor: pointer; +} + +.l-unit-toolbar__col--right { + float: right; + display: none; +} + +.l-unit__stat-col.volume { + font-size: 12px; + line-height: 17px; + float: right; +} + +.actions-panel__col { + float: left; + min-width: 95px; + min-height: 33px; + text-transform: uppercase; + background-color: #dfdedd; + border-right: 1px solid #d8d7d7; + position: relative; +} +.actions-panel__col i { + background-image: url("/images/sprite.png"); + background-repeat: no-repeat; + display: inline-block; + float: right; + content: ''; + width: 33px; + height: 33px; +} +.actions-panel__col a { + line-height: 33px; + color: #777; + font-weight: 700; + font-size: 12px; + padding-left: 13px; + display: block; + cursor: pointer; +} +.lang-ru .actions-panel__col a { + font-size: 11px; +} +.lang-tw .actions-panel__col a { + font-size: 15px; + font-weight: normal; +} +.lang-ar .actions-panel__col a { + font-size: 15px; + font-weight: normal; +} + + +.actions-panel__favorite a { + background-color: #afafac; + color: #fff; +} +.actions-panel__favorite i { + background-position: -39px -85px; +} + +.actions-panel__edit i { + background-position: -1px -168px; +} +.actions-panel__edit:hover a { + background-color: #9fbf0c; + color: #fff; +} +.actions-panel__edit:active a { + background-color: #c0e60f; + color: #555; +} +.actions-panel__edit:hover a i { + background-position: -41px -168px; +} +.actions-panel__edit:active a i { + background-position: -81px -168px; +} +.actions-panel__edit--active a { + background-color: #c0e60f; + color: #fff; +} +.actions-panel__edit--active i { + background-position: -78px -168px; +} + +.actions-panel__restart i { + background-position: -1px -519px; +} +.actions-panel__restart:hover a { + background-color: #9fbf0c; + color: #fff; +} +.actions-panel__restart:active a { + background-color: #c0e60f; + color: #555; +} +.actions-panel__restart:hover a i { + background-position: -41px -519px; +} +.actions-panel__restart:active a i { + background-position: -81px -519px; +} +.actions-panel__restart--active a { + background-color: #c0e60f; + color: #fff; +} +.actions-panel__restart--active i { + background-position: -78px -519px; +} + +.actions-panel__add i { + background-position: -1px -284px; +} +.actions-panel__add:hover a { + background-color: #9fbf0c; + color: #fff; +} +.actions-panel__add:active a { + background-color: #c0e60f; + color: #555; +} +.actions-panel__add:hover a i { + background-position: -41px -284px; +} +.actions-panel__add:active a i { + background-position: -81px -284px; +} + +.actions-panel__add--active a { + background-color: #c0e60f; + color: #fff; +} +.actions-panel__add--active i { + background-position: -78px -284px; +} + +.actions-panel__update i { + background-position: -1px -480px; +} +.actions-panel__update:hover a { + background-color: #9fbf0c; + color: #fff; +} +.actions-panel__update:active a { + background-color: #c0e60f; + color: #555; +} +.actions-panel__update:hover a i { + background-position: -41px -480px; +} +.actions-panel__update:active a i { + background-position: -81px -480px; +} +.actions-panel__update--active a { + background-color: #c0e60f; + color: #fff; +} +.actions-panel__update--active i { + background-position: -78px -480px; +} + +.actions-panel__logs i { + background-position: -2px -129px; +} +.actions-panel__logs:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__logs:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__logs:hover a i { + background-position: -42px -129px; +} +.actions-panel__logs:active a i { + background-position: -82px -129px; +} +.actions-panel__logs--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__logs--active i { + background-position: -79px -129px; +} + +.actions-panel__db i { + background-position: -2px -362px; +} +.actions-panel__db:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__db:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__db:hover a i { + background-position: -42px -362px; +} +.actions-panel__db:active a i { + background-position: -82px -362px; +} +.actions-panel__db--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__db--active i { + background-position: -79px -362px; +} + +.actions-panel__suspend i { + background-position: -1px -50px; +} +.actions-panel__suspend:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__suspend:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__suspend:hover a i { + background-position: -41px -50px; +} +.actions-panel__suspend:active a i { + background-position: -81px -50px; +} +.actions-panel__suspend--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__suspend--active i { + background-position: -78px -50px; +} + +.actions-panel__unsuspend i { + background-position: -1px -11px; +} +.actions-panel__unsuspend:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__unsuspend:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__unsuspend:hover a i { + background-position: -41px -11px; +} +.actions-panel__unsuspend:active a i { + background-position: -81px -11px; +} +.actions-panel__unsuspend--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__unsuspend--active i { + background-position: -78px -11px; +} + + +.actions-panel__loginas i { + background-position: -1px -244px; +} +.actions-panel__loginas:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__loginas:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__loginas:hover a i { + background-position: -41px -244px; +} +.actions-panel__loginas:active a i { + background-position: -81px -244px; +} +.actions-panel__loginas--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__loginas--active i { + background-position: -78px -244px; +} + +.actions-panel__download i { + background-position: -1px -401px; +} +.actions-panel__download:hover a { + background-color: #9fbf0c; + color: #fff; +} +.actions-panel__download:active a { + background-color: #c0e60f; + color: #555; +} +.actions-panel__download:hover a i { + background-position: -41px -401px; +} +.actions-panel__download:active a i { + background-position: -81px -401px; +} +.actions-panel__download--active a { + background-color: #c0e60f; + color: #fff; +} +.actions-panel__download--active i { + background-position: -78px -401px; +} + +.actions-panel__configure i { + background-position: -1px -441px; +} +.actions-panel__configure:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__configure:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__configure:hover a i { + background-position: -41px -441px; +} +.actions-panel__configure:active a i { + background-position: -81px -441px; +} +.actions-panel__configure--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__configure--active i { + background-position: -78px -441px; +} + +.actions-panel__mail i { + background-position: -1px -323px; +} +.actions-panel__mail:hover a { + background-color: #afafac; + color: #fff; +} +.actions-panel__mail:active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__mail:hover a i { + background-position: -41px -323px; +} +.actions-panel__mail:active a i { + background-position: -81px -323px; +} +.actions-panel__mail--active a { + background-color: #55c9c0; + color: #fff; +} +.actions-panel__mail--active i { + background-position: -78px -323px; +} + +.actions-panel__delete i { + background-position: -1px -206px; +} +.actions-panel__delete:hover a { + background-color: #ff3438; + color: #fff; +} +.actions-panel__delete:active a { + background-color: #ff5f5f; + color: #fff; +} +.actions-panel__delete:hover a i { + background-position: -41px -206px; +} +.actions-panel__delete:active a i { + background-position: -81px -206px; +} +.actions-panel__delete--active a { + background-color: #ff5f5f; + color: #fff; +} +.actions-panel__delete--active i { + background-position: -78px -206px; +} + +.actions-panel__stop i { + background-position: -1px -560px; +} +.actions-panel__stop:hover a { + background-color: #ff3438; + color: #fff; +} +.actions-panel__stop:active a { + background-color: #ff5f5f; + color: #fff; +} +.actions-panel__stop:hover a i { + background-position: -41px -560px; +} +.actions-panel__stop:active a i { + background-position: -81px -560px; +} +.actions-panel__stop--active a { + background-color: #ff5f5f; + color: #fff; +} +.actions-panel__stop--active i { + background-position: -78px -560px; +} + +.actions-panel__start i { + background-position: -1px -481px; +} +.actions-panel__start:hover a { + background-color: #9fbf0c; + color: #fff; +} +.actions-panel__start:active a { + background-color: #c0e60f; + color: #555; +} +.actions-panel__start:hover a i { + background-position: -41px -481px; +} +.actions-panel__start:active a i { + background-position: -81px -481px; +} +.actions-panel__start--active a { + background-color: #c0e60f; + color: #fff; +} +.actions-panel__start--active i { + background-position: -78px -481px; +} + + +.l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-star-orange, .l-icon-star-blue { + display: inline-block; + vertical-align: middle; + background-image: url("/images/sprite.png"); +} + +.l-icon-down-arrow { + width: 7px; + height: 15px; + background-position: -280px -128px; +} + +.l-icon-star { + width: 35px; + height: 35px; + background-position: 0 -85px; +} + +.l-icon-to-top { + width: 35px; + height: 35px; + background-position: -330px -68px; +} +.l-icon-to-top:hover { + background-position: -366px -68px; +} +.l-icon-to-top:active { + background-position: -402px -68px; +} + +.l-icon-star-orange { + width: 13px; + height: 13px; + background-position: -178px -97px; +} + +.l-icon-star-blue { + width: 13px; + height: 13px; + background-position: -134px -97px; +} + +.media-top { + vertical-align: top; +} + +.l-unit__stat-cols { + padding-right: 10px; +} +.l-unit__stat-cols.last { + padding-right: 0; +} +.l-unit__stat-cols.graph { + width: 200px; +} +.l-unit__stat-cols.tiny { + font-size:11px; + line-height: 19px; +} + +.l-percent { + border-bottom: 1px dotted #ccc; + margin-top: 1px; + width: 200px; +} +.l-percent__fill { + background-color: #aacc0d; + height: 3px; + position: relative; + bottom: -1px; +} + +.to-top { + display: inline-block; + position: fixed; + top: 92%; + right: 3%; +} + +#vstobjects { + margin-top: -1px; +} + +#vstobjects .l-center { + padding-top: 20px; + padding-bottom: 30px; + font-size: 12px; +} + +.timer-container { + margin-top: 4px; +} + +.timer-container .refresh-timer { + border: 2px solid #9f9f9f; + border-radius: 14px; + height: 14px; + width: 14px; + float: left; + margin: 2px 10px 0 0; +} +.timer-container .refresh-timer.paused { + border: 2px solid #9f9f9f; +} +.timer-container .refresh-timer.paused .loader-half.right, +.timer-container .refresh-timer.paused .loader-half.dark { + background-color: #9d9f9f; +} +.timer-container .loader-half { + border-radius: 0 14px 14px 0; + height: 14px; + width: 7px; + float: left; +} +.timer-container .loader-half.left { + border-radius: 14px 0 0 14px; + background-color: #fff; +} +.timer-container .loader-half.right { + margin-left: 7px; + background-color: #9f9f9f; +} +.timer-container .loader-half.dark { + background-color: #9f9f9f; +} +.timer-container .movement { + float: left; + width: 14px; + height: 14px; + position: absolute; +} +.timer-container .movement.left { + z-index: 10; +} +.timer-container .movement.right { + transform: rotate(180deg); + -webkit-transform: rotate(180deg); +} +.timer-container .timer-button { + cursor: pointer; + text-decotation: underline; + margin: 7px 0 0 38px; + width: 15px; + float: left; + height: 10px; +} +.timer-container .timer-button.pause { + background: url(/images/pause.png) no-repeat ; +} +.timer-container .timer-button.play { + background: url(/images/start.png) no-repeat; +} + +.uppercase { + text-transform: uppercase; +} + +.title b, +.title { + color: #ff6701; + font-size: 12px; + font-weight: bold; + padding: 0 30px 0px 73px; + line-height: 30px; + text-transform: uppercase; +} + +.title { + display: inline-block; + float: left; +} + + + + +/* form styles */ + + + +.vst-error { + color: #BE5ABF; + font-weight: bold; + display: inline-block; + height: 16px; + overflow: hidden; + padding-top: 6px; + width: 630px; +} + +.vst-ok { + color: #9fbf0c; + font-weight: bold; + display: inline-block; + height: 16px; + overflow: hidden; + padding-top: 6px; + width: 600px; +} + +.vst-ok a { + color: #2c9491; +} +.vst-ok a:hover { + color: #ff6701; +} +.vst-ok a:active { + color: #f72b44; +} + + + + +.data { + margin: 0 0 90px 0; +} +.data-col1 { + width: 148px; +} + +.data-col1 td { + padding: 10px 0 0 5px; +} + +.data-col1 tr:first-child td { + padding: 59px 0 0 5px; +} + +.login-box td, +.data td { + color: #555; + font-size: 15px; + padding-bottom: 3px; + font-weight: bold; +} +.input-label { + padding-top: 20px; +} +.data input[type="checkbox"] { + display: inline; + cursor: pointer; +} +.step-top { + padding-top: 42px; +} +.data a { + text-decoration: none; +} +label { + cursor: pointer; +} +.vst-input { + background-color: #fff; + border: 1px solid #cfcfcf; + border-radius: 0px; + color: #555; + font-family: Arial; + font-size: 19px; + height: 28px; + margin: 2px 6px 0 0; + padding: 7px 3px 9px 14px; + width: 360px; + font-weight: normal; +} +.vst-input:hover { + border: 1px solid #909090; +} +.vst-input:focus { + border: 1px solid #55C9C0; + background-color: #D7F9FF; + color: #333; +} +.vst-input:disabled { + background-color: #ebebeb; +} +.vst-input:focus:disabled { + border-color: #f1f1f1; + background-color: #f1f1f1; +} + + +.vst-input.long{ + width: 580px; +} +.vst-list { + background-color: #fff; + border: 1px solid #ccc; + border-radius: 0; + color: #555; + font-family: Arial,Helvetica,sans-serif; + font-size: 19px; + font-weight: normal; + height: 43px; + margin: 2px 6px 0 0; + min-width: 138px; + padding: 8px 1px 6px 10px; + background-image: url("/images/sprite.png"); + background-position: -185px -604px; + width: 270px; + appearance:none; + -moz-appearance:none; + -webkit-appearance:none; + text-shadow: 0 0 0 #555; + color: transparent !important; +} +.vst-list option { + padding: 6px 1px 6px 15px; +} +.vst-list:hover { + border: 1px solid #909090; +} +.vst-list:focus { + border: 1px solid #55C9C0; + color: #333; +} + + +.vst-textinput { + background-color: #fff; + border: 1px solid #cfcfcf; + border-radius: 0px; + color: #555; + font-size: 19px; + padding: 5px; + width: 560px; + height: 90px; + font-family:Arial, Helvetica, sans-serif; + padding: 9px 1px 6px 14px; + font-weight: normal; +} +.vst-textinput:hover { + border: 1px solid #909090; +} +.vst-textinput:focus { + border: 1px solid #55C9C0; + background-color: #D7F9FF; + color: #333; +} +.vst-textinput:disabled { + background-color: #f1f1f1; +} +.generate { + color: #2C9491; + text-decoration: underline; + cursor: pointer; + margin-left: -3px; + padding: 0 3px; +} +.generate:hover { + background-color: #ff6701; + border-color: #ff6701; + color: #fff; +} +.generate:active { + background-color: #F7D616; + border-color: #F7D616; +} +.vst-advanced { + border-bottom: 1px solid #2c9491; + color: #2c9491; + font-size: 11px; + letter-spacing: 1px; + padding: 2px 2px 0; + text-decoration: none; + text-transform: uppercase; +} +.login-box .vst-advanced:hover { + color: #ff6701; + background-color: transparent; + border-color: transparent; +} + +.vst-advanced:hover { + color: #fff; + background-color: #ff6701; + border-color: #ff6701; +} + +.login-box .vst-advanced:active, +.vst-advanced:active { + color: #fff; + background-color: #F7D616; + border-color: #F7D616; +} + +.login-box .vst-advanced { + border-bottom: none; + color: #2c9491; + font-size: 10px; + letter-spacing: 1px; + padding: 2px 2px 0; + text-decoration: none; + text-transform: uppercase; +} +.vst-checkbox { + font-size: 19px; + margin: 2px 6px 0 3px; + padding: 5px; +} +.additional-control { + margin-left: 17px; + color: #2C9491; + border-bottom: 1px solid #2C9491; + font-size: 11px; + letter-spacing: 1px; + cursor: pointer; + text-transform: uppercase; + font-weight: bold; + padding: 2px 2px 0; +} +.additional-control:hover { + background-color: #ff6701; + border-color: #ff6701; + color: #fff; +} +.additional-control:active { + color: #fff; + background-color: #aaa; +} + +.additional-control.ftp-remove-user { + padding: 2px 0 0 0; +} +.additional-control.ftp-remove-user:hover { + background-color: #FF3438; + border-color: #FF3438; +} +.additional-control.ftp-remove-user:active { + background-color: #FF5F5F; + border-color: #FF5F5F; +} +.data .step-left { + padding-left: 50px; +} +.hide-password { + color: #2361a1; + margin-left: -36px; + padding-left: 3px; + z-index: 1; +} +.toggle-psw-visibility-icon { + cursor: pointer; + opacity: 1; +} +.show-passwords-enabled-action { + opacity: 0.4; +} +.ftp-path-value, +.hint, +td.hint { + color: #777; + font-size: 15px; + font-style: italic; + font-weight: normal; +} + +.ui-button, +.button { + filter:chroma(color=#000); + cursor: pointer; + border-radius: 3px 3px 3px 3px; + font-size: 13px; + font-weight: bold; + padding: 1px 16px 3px 16px; + width: 108px; + height: 34px; + color: #fafafa; + border: 1px solid #9FBF0C; + background-color: #9FBF0C; +} +.ui-button:hover, +.button:hover { + color: #555; + border: 1px solid #C0E60F; + background-color: #C0E60F; +} +.ui-button:active, +.button:active { + border: 1px solid #D1D70D !important; + background-color: #D1D70D !important; +} + +.ui-button:focus, +.button:focus { + border: 1px solid #90AD0D; + background-color: #90AD0D; +} + +.ui-button.cancel, +.button.cancel { + color: #777; + border: 1px solid #DFDEDD; + background-color: #DFDEDD; +} +.ui-button.cancel:hover, +.button.cancel:hover { + color: #fff; + border: 1px solid #999; + background-color: #999; +} +.ui-button.cancel:active, +.button.cancel:active { + border: 1px solid #D1D70D; + background-color: #D1D70D; +} +.ui-button span { + color: #fff; +} +.ui-button:hover span { + color: #555 !important; +} +.ui-button:active span { + color: #555; +} +.ui-button.cancel span { + color: #777; +} +.ui-button:hover span { + color: #fff; +} +.ui-button:active span { + color: #fff; +} + + + +.unlim-trigger { + cursor: pointer; + margin-left: -36px; + padding-left: 3px; + z-index: 1; +} +.optional { + font-size: 12px; + padding: 0 0 0 6px; + font-weight: normal; +} +.data-active b { + color: #9FBF0C; + font-size: 11px; + letter-spacing: 1px; + text-transform: uppercase; +} +.data-suspended b { + color: #de5543; + font-size: 11px; + letter-spacing: 1px; +} +.data-date { + font-weight: normal; + color: #555; + font-size: 11px; + letter-spacing: 1px; +} +.data-dotted { + vertical-align: top; +} + +:focus {outline:none;} +::-moz-focus-inner {border:0;} + +.login { + background-color: #fff; + box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3); + font-family: Arial,Helvetica,sans-serif; + margin: 10% 0 0; + padding: 0; + text-align: left; + vertical-align: top; + width: 500px; +} +.vestacp { + color: #505050; + font-size: 10px; + text-align: right; +} +.vestacp:hover { + color: #2c9491; +} +.vestacp:active { + color: #ff6701; +} +.login-bottom { + height: 50px; + margin: 0; + padding: 0 26px 0 0; + text-align: right; + vertical-align: top; + width: 474px; +} + +.l-unit.selected { + background-color: #feef9a; + color: #555; +} + +.l-unit.selected b, +.l-unit.selected strong { + color: #555; +} + + +/* MAIN MENU COLLAPSED */ +.collapsed .l-stat { + padding-top: 20px; +} + +.collapsed .l-stat__col a { + height: 0; + min-height: 0; + overflow: hidden; +} + +.collapsed .l-stat__col-title { + padding-top: 2px; +} + +div.l-content.collapsed > div.l-separator:nth-of-type(2) { + margin-top: 93px; + position: fixed; +} + +div.l-content.collapsed > div.l-separator:nth-of-type(4) { + margin-top: 138px; + position: fixed; +} + +div.l-content.collapsed .l-sort { + margin-top: 94px; +} + +.l-content > .l-center .l-unit:nth-of-type(1) { + padding-top: 260px; +} + +.l-content > .l-center .l-unit-ft:nth-of-type(1) { + padding-top: 260px; +} + +form#vstobjects { + padding-top: 280px; +} + +form#vstobjects.suspended { + background-color: #EAEAEA; + padding-bottom: 30px; +} + +#add-icon { + width: 45px; + height: 45px; + background-image: url("/images/sprite.png"); + background-position: -378px -107px; + background-repeat: no-repeat; + display: inline-block; + z-index: 3; +} +.l-sort__create-btn.restore #add-icon { + background-position: -378px -250px; +} +.l-sort__create-btn.edit #add-icon { + background-position: -378px -154px; +} +#tooltip { + background-color: #aacc0d; + border-radius: 15px; + bottom: 6px; + color: #fff; + font-size: 12px; + font-weight: bold; + height: 26px; + left: 12px; + letter-spacing: 0; + line-height: 25px; + margin-left: 12px; + margin-top: 7px; + padding: 3px 14px 3px 27px; + position: absolute; + text-transform: uppercase; + z-index: -1; +} + +.l-sort__create-btn:active #add-icon { + background-position: -425px -107px; +} +.l-sort__create-btn.restore:active #add-icon { + background-position: -425px -250px !important; +} + +.l-sort__create-btn.edit:active #add-icon { + background-position: -425px -154px !important; +} + +.l-sort__create-btn.edit:hover #tooltip { + background-color: #55C9C0; +} +.l-sort__create-btn.edit:active #tooltip { + background-color: #3BF0E6 !important; +} + + + + +.l-sort__create-btn:active #tooltip { + background-color: #D9F210; +} + +.noselect { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.search-input { + border: 1px solid #ddd; + height: 21px; + line-height: 28px; + padding-left: 7px; + float: left; + width: 0px; + visibility: hidden; + -webkit-transition: width .2s ease-out; + -moz-transition: width .2s ease-out; + -o-transition: width .2s ease-out; + transition: width .2s ease-out; +} +.search-input.activated{ + width: 150px; + visibility: visible; +} +.search-input:focus { + background-color: #d7f9ff; + border-color: #55c9c0; + color: #333; +} + +.float-left { + float: left; +} +.float-right { + float: right; +} +.display-inline-block { + display: inline-block; +} +.width-100p { + width: 100%; +} + +.l-sort-toolbar table td { + float: left; +} +.l-sort-toolbar__search-box { + float: right !important; + padding-top: 3px; +} diff --git a/web/edit/server/index.php b/web/edit/server/index.php new file mode 100644 index 000000000..0c2a5640d --- /dev/null +++ b/web/edit/server/index.php @@ -0,0 +1,160 @@ + 'The uploaded file exceeds the upload_max_filesize directive in php.ini', + 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', + 3 => 'The uploaded file was only partially uploaded', + 4 => 'No file was uploaded', + 6 => 'Missing a temporary folder', + 7 => 'Failed to write file to disk', + 8 => 'A PHP extension stopped the file upload', + 'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini', + 'max_file_size' => 'File is too big', + 'min_file_size' => 'File is too small', + 'accept_file_types' => 'Filetype not allowed', + 'max_number_of_files' => 'Maximum number of files exceeded', + 'max_width' => 'Image exceeds maximum width', + 'min_width' => 'Image requires a minimum width', + 'max_height' => 'Image exceeds maximum height', + 'min_height' => 'Image requires a minimum height', + 'abort' => 'File upload aborted', + 'image_resize' => 'Failed to resize image' + ); + + protected $image_objects = array(); + + function __construct($options = null, $initialize = true, $error_messages = null) { + $this->options = array( + 'script_url' => $this->get_full_url().'/', + 'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/', + 'upload_url' => $this->get_full_url().'/files/', + 'user_dirs' => false, + 'mkdir_mode' => 0755, + 'param_name' => 'files', + // Set the following option to 'POST', if your server does not support + // DELETE requests. This is a parameter sent to the client: + 'delete_type' => 'DELETE', + 'access_control_allow_origin' => '*', + 'access_control_allow_credentials' => false, + 'access_control_allow_methods' => array( + 'OPTIONS', + 'HEAD', + 'GET', + 'POST', + 'PUT', + 'PATCH', + 'DELETE' + ), + 'access_control_allow_headers' => array( + 'Content-Type', + 'Content-Range', + 'Content-Disposition' + ), + // Enable to provide file downloads via GET requests to the PHP script: + // 1. Set to 1 to download files via readfile method through PHP + // 2. Set to 2 to send a X-Sendfile header for lighttpd/Apache + // 3. Set to 3 to send a X-Accel-Redirect header for nginx + // If set to 2 or 3, adjust the upload_url option to the base path of + // the redirect parameter, e.g. '/files/'. + 'download_via_php' => false, + // Read files in chunks to avoid memory limits when download_via_php + // is enabled, set to 0 to disable chunked reading of files: + 'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB + // Defines which files can be displayed inline when downloaded: + 'inline_file_types' => '/\.(gif|jpe?g|png)$/i', + // Defines which files (based on their names) are accepted for upload: + 'accept_file_types' => '/.+$/i', + // The php.ini settings upload_max_filesize and post_max_size + // take precedence over the following max_file_size setting: + 'max_file_size' => null, + 'min_file_size' => 1, + // The maximum number of files for the upload directory: + 'max_number_of_files' => null, + // Defines which files are handled as image files: + 'image_file_types' => '/\.(gif|jpe?g|png)$/i', + // Use exif_imagetype on all files to correct file extensions: + 'correct_image_extensions' => false, + // Image resolution restrictions: + 'max_width' => null, + 'max_height' => null, + 'min_width' => 1, + 'min_height' => 1, + // Set the following option to false to enable resumable uploads: + 'discard_aborted_uploads' => true, + // Set to 0 to use the GD library to scale and orient images, + // set to 1 to use imagick (if installed, falls back to GD), + // set to 2 to use the ImageMagick convert binary directly: + 'image_library' => 1, + // Uncomment the following to define an array of resource limits + // for imagick: + /* + 'imagick_resource_limits' => array( + imagick::RESOURCETYPE_MAP => 32, + imagick::RESOURCETYPE_MEMORY => 32 + ), + */ + // Command or path for to the ImageMagick convert binary: + 'convert_bin' => 'convert', + // Uncomment the following to add parameters in front of each + // ImageMagick convert call (the limit constraints seem only + // to have an effect if put in front): + /* + 'convert_params' => '-limit memory 32MiB -limit map 32MiB', + */ + // Command or path for to the ImageMagick identify binary: + 'identify_bin' => 'identify', + 'image_versions' => array( + // The empty image version key defines options for the original image: + '' => array( + // Automatically rotate images based on EXIF meta data: + 'auto_orient' => true + ), + // Uncomment the following to create medium sized images: + /* + 'medium' => array( + 'max_width' => 800, + 'max_height' => 600 + ), + */ + 'thumbnail' => array( + // Uncomment the following to use a defined directory for the thumbnails + // instead of a subdirectory based on the version identifier. + // Make sure that this directory doesn't allow execution of files if you + // don't pose any restrictions on the type of uploaded files, e.g. by + // copying the .htaccess file from the files directory for Apache: + //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/thumb/', + //'upload_url' => $this->get_full_url().'/thumb/', + // Uncomment the following to force the max + // dimensions and e.g. create square thumbnails: + //'crop' => true, + 'max_width' => 80, + 'max_height' => 80 + ) + ) + ); + if ($options) { + $this->options = $options + $this->options; + } + if ($error_messages) { + $this->error_messages = $error_messages + $this->error_messages; + } + if ($initialize) { + $this->initialize(); + } + } + + protected function initialize() { + switch ($this->get_server_var('REQUEST_METHOD')) { + case 'OPTIONS': + case 'HEAD': + $this->head(); + break; + case 'GET': + $this->get(); + break; + case 'PATCH': + case 'PUT': + case 'POST': + $this->post(); + break; + case 'DELETE': + $this->delete(); + break; + default: + $this->header('HTTP/1.1 405 Method Not Allowed'); + } + } + + protected function get_full_url() { + $https = !empty($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'on') === 0 || + !empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && + strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') === 0; + return + ($https ? 'https://' : 'http://'). + (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : ''). + (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME']. + ($https && $_SERVER['SERVER_PORT'] === 443 || + $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))). + substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')); + } + + protected function get_user_id() { + @session_start(); + return session_id(); + } + + protected function get_user_path() { + if ($this->options['user_dirs']) { + return $this->get_user_id().'/'; + } + return ''; + } + + protected function get_upload_path($file_name = null, $version = null) { + $file_name = $file_name ? $file_name : ''; + if (empty($version)) { + $version_path = ''; + } else { + $version_dir = @$this->options['image_versions'][$version]['upload_dir']; + if ($version_dir) { + return $version_dir.$this->get_user_path().$file_name; + } + $version_path = $version.'/'; + } + return $this->options['upload_dir'].$this->get_user_path() + .$version_path.$file_name; + } + + protected function get_query_separator($url) { + return strpos($url, '?') === false ? '?' : '&'; + } + + protected function get_download_url($file_name, $version = null, $direct = false) { + if (!$direct && $this->options['download_via_php']) { + $url = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file_name); + if ($version) { + $url .= '&version='.rawurlencode($version); + } + return $url.'&download=1'; + } + if (empty($version)) { + $version_path = ''; + } else { + $version_url = @$this->options['image_versions'][$version]['upload_url']; + if ($version_url) { + return $version_url.$this->get_user_path().rawurlencode($file_name); + } + $version_path = rawurlencode($version).'/'; + } + return $this->options['upload_url'].$this->get_user_path() + .$version_path.rawurlencode($file_name); + } + + protected function set_additional_file_properties($file) { + $file->deleteUrl = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file->name); + $file->deleteType = $this->options['delete_type']; + if ($file->deleteType !== 'DELETE') { + $file->deleteUrl .= '&_method=DELETE'; + } + if ($this->options['access_control_allow_credentials']) { + $file->deleteWithCredentials = true; + } + } + + // Fix for overflowing signed 32 bit integers, + // works for sizes up to 2^32-1 bytes (4 GiB - 1): + protected function fix_integer_overflow($size) { + if ($size < 0) { + $size += 2.0 * (PHP_INT_MAX + 1); + } + return $size; + } + + protected function get_file_size($file_path, $clear_stat_cache = false) { + if ($clear_stat_cache) { + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { + clearstatcache(true, $file_path); + } else { + clearstatcache(); + } + } + return $this->fix_integer_overflow(filesize($file_path)); + } + + protected function is_valid_file_object($file_name) { + $file_path = $this->get_upload_path($file_name); + if (is_file($file_path) && $file_name[0] !== '.') { + return true; + } + return false; + } + + protected function get_file_object($file_name) { + if ($this->is_valid_file_object($file_name)) { + $file = new \stdClass(); + $file->name = $file_name; + $file->size = $this->get_file_size( + $this->get_upload_path($file_name) + ); + $file->url = $this->get_download_url($file->name); + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + if (is_file($this->get_upload_path($file_name, $version))) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } + } + } + $this->set_additional_file_properties($file); + return $file; + } + return null; + } + + protected function get_file_objects($iteration_method = 'get_file_object') { + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + return array(); + } + return array_values(array_filter(array_map( + array($this, $iteration_method), + scandir($upload_dir) + ))); + } + + protected function count_file_objects() { + return count($this->get_file_objects('is_valid_file_object')); + } + + protected function get_error_message($error) { + return array_key_exists($error, $this->error_messages) ? + $this->error_messages[$error] : $error; + } + + function get_config_bytes($val) { + $val = trim($val); + $last = strtolower($val[strlen($val)-1]); + switch($last) { + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + case 'k': + $val *= 1024; + } + return $this->fix_integer_overflow($val); + } + + protected function validate($uploaded_file, $file, $error, $index) { + if ($error) { + $file->error = $this->get_error_message($error); + return false; + } + $content_length = $this->fix_integer_overflow(intval( + $this->get_server_var('CONTENT_LENGTH') + )); + $post_max_size = $this->get_config_bytes(ini_get('post_max_size')); + if ($post_max_size && ($content_length > $post_max_size)) { + $file->error = $this->get_error_message('post_max_size'); + return false; + } + if (!preg_match($this->options['accept_file_types'], $file->name)) { + $file->error = $this->get_error_message('accept_file_types'); + return false; + } + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + $file_size = $this->get_file_size($uploaded_file); + } else { + $file_size = $content_length; + } + if ($this->options['max_file_size'] && ( + $file_size > $this->options['max_file_size'] || + $file->size > $this->options['max_file_size']) + ) { + $file->error = $this->get_error_message('max_file_size'); + return false; + } + if ($this->options['min_file_size'] && + $file_size < $this->options['min_file_size']) { + $file->error = $this->get_error_message('min_file_size'); + return false; + } + if (is_int($this->options['max_number_of_files']) && + ($this->count_file_objects() >= $this->options['max_number_of_files']) && + // Ignore additional chunks of existing files: + !is_file($this->get_upload_path($file->name))) { + $file->error = $this->get_error_message('max_number_of_files'); + return false; + } + $max_width = @$this->options['max_width']; + $max_height = @$this->options['max_height']; + $min_width = @$this->options['min_width']; + $min_height = @$this->options['min_height']; + if (($max_width || $max_height || $min_width || $min_height) + && preg_match($this->options['image_file_types'], $file->name)) { + list($img_width, $img_height) = $this->get_image_size($uploaded_file); + } + if (!empty($img_width)) { + if ($max_width && $img_width > $max_width) { + $file->error = $this->get_error_message('max_width'); + return false; + } + if ($max_height && $img_height > $max_height) { + $file->error = $this->get_error_message('max_height'); + return false; + } + if ($min_width && $img_width < $min_width) { + $file->error = $this->get_error_message('min_width'); + return false; + } + if ($min_height && $img_height < $min_height) { + $file->error = $this->get_error_message('min_height'); + return false; + } + } + return true; + } + + protected function upcount_name_callback($matches) { + $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; + $ext = isset($matches[2]) ? $matches[2] : ''; + return ' ('.$index.')'.$ext; + } + + protected function upcount_name($name) { + return preg_replace_callback( + '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', + array($this, 'upcount_name_callback'), + $name, + 1 + ); + } + + protected function get_unique_filename($file_path, $name, $size, $type, $error, + $index, $content_range) { + while(is_dir($this->get_upload_path($name))) { + $name = $this->upcount_name($name); + } + // Keep an existing filename if this is part of a chunked upload: + $uploaded_bytes = $this->fix_integer_overflow(intval($content_range[1])); + while(is_file($this->get_upload_path($name))) { + if ($uploaded_bytes === $this->get_file_size( + $this->get_upload_path($name))) { + break; + } + $name = $this->upcount_name($name); + } + return $name; + } + + protected function fix_file_extension($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Add missing file extension for known image types: + if (strpos($name, '.') === false && + preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) { + $name .= '.'.$matches[1]; + } + if ($this->options['correct_image_extensions'] && + function_exists('exif_imagetype')) { + switch(@exif_imagetype($file_path)){ + case IMAGETYPE_JPEG: + $extensions = array('jpg', 'jpeg'); + break; + case IMAGETYPE_PNG: + $extensions = array('png'); + break; + case IMAGETYPE_GIF: + $extensions = array('gif'); + break; + } + // Adjust incorrect image file extensions: + if (!empty($extensions)) { + $parts = explode('.', $name); + $extIndex = count($parts) - 1; + $ext = strtolower(@$parts[$extIndex]); + if (!in_array($ext, $extensions)) { + $parts[$extIndex] = $extensions[0]; + $name = implode('.', $parts); + } + } + } + return $name; + } + + protected function trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Remove path information and dots around the filename, to prevent uploading + // into different directories or replacing hidden system files. + // Also remove control characters and spaces (\x00..\x20) around the filename: + $name = trim(basename(stripslashes($name)), ".\x00..\x20"); + // Use a timestamp for empty filenames: + if (!$name) { + $name = str_replace('.', '-', microtime(true)); + } + return $name; + } + + protected function get_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + $name = $this->trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range); + return $this->get_unique_filename( + $file_path, + $this->fix_file_extension($file_path, $name, $size, $type, $error, + $index, $content_range), + $size, + $type, + $error, + $index, + $content_range + ); + } + + protected function handle_form_data($file, $index) { + // Handle form data, e.g. $_REQUEST['description'][$index] + } + + protected function get_scaled_image_file_paths($file_name, $version) { + $file_path = $this->get_upload_path($file_name); + if (!empty($version)) { + $version_dir = $this->get_upload_path(null, $version); + if (!is_dir($version_dir)) { + mkdir($version_dir, $this->options['mkdir_mode'], true); + } + $new_file_path = $version_dir.'/'.$file_name; + } else { + $new_file_path = $file_path; + } + return array($file_path, $new_file_path); + } + + protected function gd_get_image_object($file_path, $func, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $func($file_path); + } + return $this->image_objects[$file_path]; + } + + protected function gd_set_image_object($file_path, $image) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function gd_destroy_image_object($file_path) { + $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ; + return $image && imagedestroy($image); + } + + protected function gd_imageflip($image, $mode) { + if (function_exists('imageflip')) { + return imageflip($image, $mode); + } + $new_width = $src_width = imagesx($image); + $new_height = $src_height = imagesy($image); + $new_img = imagecreatetruecolor($new_width, $new_height); + $src_x = 0; + $src_y = 0; + switch ($mode) { + case '1': // flip on the horizontal axis + $src_y = $new_height - 1; + $src_height = -$new_height; + break; + case '2': // flip on the vertical axis + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + case '3': // flip on both axes + $src_y = $new_height - 1; + $src_height = -$new_height; + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + default: + return $image; + } + imagecopyresampled( + $new_img, + $image, + 0, + 0, + $src_x, + $src_y, + $new_width, + $new_height, + $src_width, + $src_height + ); + return $new_img; + } + + protected function gd_orient_image($file_path, $src_img) { + if (!function_exists('exif_read_data')) { + return false; + } + $exif = @exif_read_data($file_path); + if ($exif === false) { + return false; + } + $orientation = intval(@$exif['Orientation']); + if ($orientation < 2 || $orientation > 8) { + return false; + } + switch ($orientation) { + case 2: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + break; + case 3: + $new_img = imagerotate($src_img, 180, 0); + break; + case 4: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + break; + case 5: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 6: + $new_img = imagerotate($src_img, 270, 0); + break; + case 7: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 8: + $new_img = imagerotate($src_img, 90, 0); + break; + default: + return false; + } + $this->gd_set_image_object($file_path, $new_img); + return true; + } + + protected function gd_create_scaled_image($file_name, $version, $options) { + if (!function_exists('imagecreatetruecolor')) { + error_log('Function not found: imagecreatetruecolor'); + return false; + } + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + $src_func = 'imagecreatefromjpeg'; + $write_func = 'imagejpeg'; + $image_quality = isset($options['jpeg_quality']) ? + $options['jpeg_quality'] : 75; + break; + case 'gif': + $src_func = 'imagecreatefromgif'; + $write_func = 'imagegif'; + $image_quality = null; + break; + case 'png': + $src_func = 'imagecreatefrompng'; + $write_func = 'imagepng'; + $image_quality = isset($options['png_quality']) ? + $options['png_quality'] : 9; + break; + default: + return false; + } + $src_img = $this->gd_get_image_object( + $file_path, + $src_func, + !empty($options['no_cache']) + ); + $image_oriented = false; + if (!empty($options['auto_orient']) && $this->gd_orient_image( + $file_path, + $src_img + )) { + $image_oriented = true; + $src_img = $this->gd_get_image_object( + $file_path, + $src_func + ); + } + $max_width = $img_width = imagesx($src_img); + $max_height = $img_height = imagesy($src_img); + if (!empty($options['max_width'])) { + $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $max_height = $options['max_height']; + } + $scale = min( + $max_width / $img_width, + $max_height / $img_height + ); + if ($scale >= 1) { + if ($image_oriented) { + return $write_func($src_img, $new_file_path, $image_quality); + } + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + if (empty($options['crop'])) { + $new_width = $img_width * $scale; + $new_height = $img_height * $scale; + $dst_x = 0; + $dst_y = 0; + $new_img = imagecreatetruecolor($new_width, $new_height); + } else { + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = $img_width / ($img_height / $max_height); + $new_height = $max_height; + } else { + $new_width = $max_width; + $new_height = $img_height / ($img_width / $max_width); + } + $dst_x = 0 - ($new_width - $max_width) / 2; + $dst_y = 0 - ($new_height - $max_height) / 2; + $new_img = imagecreatetruecolor($max_width, $max_height); + } + // Handle transparency in GIF and PNG images: + switch ($type) { + case 'gif': + case 'png': + imagecolortransparent($new_img, imagecolorallocate($new_img, 0, 0, 0)); + case 'png': + imagealphablending($new_img, false); + imagesavealpha($new_img, true); + break; + } + $success = imagecopyresampled( + $new_img, + $src_img, + $dst_x, + $dst_y, + 0, + 0, + $new_width, + $new_height, + $img_width, + $img_height + ) && $write_func($new_img, $new_file_path, $image_quality); + $this->gd_set_image_object($file_path, $new_img); + return $success; + } + + protected function imagick_get_image_object($file_path, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->imagick_destroy_image_object($file_path); + $image = new \Imagick(); + if (!empty($this->options['imagick_resource_limits'])) { + foreach ($this->options['imagick_resource_limits'] as $type => $limit) { + $image->setResourceLimit($type, $limit); + } + } + $image->readImage($file_path); + $this->image_objects[$file_path] = $image; + } + return $this->image_objects[$file_path]; + } + + protected function imagick_set_image_object($file_path, $image) { + $this->imagick_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function imagick_destroy_image_object($file_path) { + $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ; + return $image && $image->destroy(); + } + + protected function imagick_orient_image($image) { + $orientation = $image->getImageOrientation(); + $background = new \ImagickPixel('none'); + switch ($orientation) { + case \imagick::ORIENTATION_TOPRIGHT: // 2 + $image->flopImage(); // horizontal flop around y-axis + break; + case \imagick::ORIENTATION_BOTTOMRIGHT: // 3 + $image->rotateImage($background, 180); + break; + case \imagick::ORIENTATION_BOTTOMLEFT: // 4 + $image->flipImage(); // vertical flip around x-axis + break; + case \imagick::ORIENTATION_LEFTTOP: // 5 + $image->flopImage(); // horizontal flop around y-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_RIGHTTOP: // 6 + $image->rotateImage($background, 90); + break; + case \imagick::ORIENTATION_RIGHTBOTTOM: // 7 + $image->flipImage(); // vertical flip around x-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_LEFTBOTTOM: // 8 + $image->rotateImage($background, 270); + break; + default: + return false; + } + $image->setImageOrientation(\imagick::ORIENTATION_TOPLEFT); // 1 + return true; + } + + protected function imagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $image = $this->imagick_get_image_object( + $file_path, + !empty($options['no_cache']) + ); + if ($image->getImageFormat() === 'GIF') { + // Handle animated GIFs: + $images = $image->coalesceImages(); + foreach ($images as $frame) { + $image = $frame; + $this->imagick_set_image_object($file_name, $image); + break; + } + } + $image_oriented = false; + if (!empty($options['auto_orient'])) { + $image_oriented = $this->imagick_orient_image($image); + } + $new_width = $max_width = $img_width = $image->getImageWidth(); + $new_height = $max_height = $img_height = $image->getImageHeight(); + if (!empty($options['max_width'])) { + $new_width = $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $new_height = $max_height = $options['max_height']; + } + if (!($image_oriented || $max_width < $img_width || $max_height < $img_height)) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $crop = !empty($options['crop']); + if ($crop) { + $x = 0; + $y = 0; + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = 0; // Enables proportional scaling based on max_height + $x = ($img_width / ($img_height / $max_height) - $max_width) / 2; + } else { + $new_height = 0; // Enables proportional scaling based on max_width + $y = ($img_height / ($img_width / $max_width) - $max_height) / 2; + } + } + $success = $image->resizeImage( + $new_width, + $new_height, + isset($options['filter']) ? $options['filter'] : \imagick::FILTER_LANCZOS, + isset($options['blur']) ? $options['blur'] : 1, + $new_width && $new_height // fit image into constraints if not to be cropped + ); + if ($success && $crop) { + $success = $image->cropImage( + $max_width, + $max_height, + $x, + $y + ); + if ($success) { + $success = $image->setImagePage($max_width, $max_height, 0, 0); + } + } + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + if (!empty($options['jpeg_quality'])) { + $image->setImageCompression(\imagick::COMPRESSION_JPEG); + $image->setImageCompressionQuality($options['jpeg_quality']); + } + break; + } + if (!empty($options['strip'])) { + $image->stripImage(); + } + return $success && $image->writeImage($new_file_path); + } + + protected function imagemagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $resize = @$options['max_width'] + .(empty($options['max_height']) ? '' : 'X'.$options['max_height']); + if (!$resize && empty($options['auto_orient'])) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $cmd = $this->options['convert_bin']; + if (!empty($this->options['convert_params'])) { + $cmd .= ' '.$this->options['convert_params']; + } + $cmd .= ' '.escapeshellarg($file_path); + if (!empty($options['auto_orient'])) { + $cmd .= ' -auto-orient'; + } + if ($resize) { + // Handle animated GIFs: + $cmd .= ' -coalesce'; + if (empty($options['crop'])) { + $cmd .= ' -resize '.escapeshellarg($resize.'>'); + } else { + $cmd .= ' -resize '.escapeshellarg($resize.'^'); + $cmd .= ' -gravity center'; + $cmd .= ' -crop '.escapeshellarg($resize.'+0+0'); + } + // Make sure the page dimensions are correct (fixes offsets of animated GIFs): + $cmd .= ' +repage'; + } + if (!empty($options['convert_params'])) { + $cmd .= ' '.$options['convert_params']; + } + $cmd .= ' '.escapeshellarg($new_file_path); + exec($cmd, $output, $error); + if ($error) { + error_log(implode('\n', $output)); + return false; + } + return true; + } + + protected function get_image_size($file_path) { + if ($this->options['image_library']) { + if (extension_loaded('imagick')) { + $image = new \Imagick(); + try { + if (@$image->pingImage($file_path)) { + $dimensions = array($image->getImageWidth(), $image->getImageHeight()); + $image->destroy(); + return $dimensions; + } + return false; + } catch (Exception $e) { + error_log($e->getMessage()); + } + } + if ($this->options['image_library'] === 2) { + $cmd = $this->options['identify_bin']; + $cmd .= ' -ping '.escapeshellarg($file_path); + exec($cmd, $output, $error); + if (!$error && !empty($output)) { + // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000 + $infos = preg_split('/\s+/', $output[0]); + $dimensions = preg_split('/x/', $infos[2]); + return $dimensions; + } + return false; + } + } + if (!function_exists('getimagesize')) { + error_log('Function not found: getimagesize'); + return false; + } + return @getimagesize($file_path); + } + + protected function create_scaled_image($file_name, $version, $options) { + if ($this->options['image_library'] === 2) { + return $this->imagemagick_create_scaled_image($file_name, $version, $options); + } + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_create_scaled_image($file_name, $version, $options); + } + return $this->gd_create_scaled_image($file_name, $version, $options); + } + + protected function destroy_image_object($file_path) { + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_destroy_image_object($file_path); + } + } + + protected function is_valid_image_file($file_path) { + if (!preg_match($this->options['image_file_types'], $file_path)) { + return false; + } + if (function_exists('exif_imagetype')) { + return @exif_imagetype($file_path); + } + $image_info = $this->get_image_size($file_path); + return $image_info && $image_info[0] && $image_info[1]; + } + + protected function handle_image_file($file_path, $file) { + $failed_versions = array(); + foreach($this->options['image_versions'] as $version => $options) { + if ($this->create_scaled_image($file->name, $version, $options)) { + if (!empty($version)) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } else { + $file->size = $this->get_file_size($file_path, true); + } + } else { + $failed_versions[] = $version ? $version : 'original'; + } + } + if (count($failed_versions)) { + $file->error = $this->get_error_message('image_resize') + .' ('.implode($failed_versions,', ').')'; + } + // Free memory: + $this->destroy_image_object($file_path); + } + + protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, + $index = null, $content_range = null) { + $file = new \stdClass(); + $file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error, + $index, $content_range); + $file->size = $this->fix_integer_overflow(intval($size)); + $file->type = $type; + if ($this->validate($uploaded_file, $file, $error, $index)) { + $this->handle_form_data($file, $index); + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + mkdir($upload_dir, $this->options['mkdir_mode'], true); + } + $file_path = $this->get_upload_path($file->name); + $append_file = $content_range && is_file($file_path) && + $file->size > $this->get_file_size($file_path); + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + // multipart/formdata uploads (POST method uploads) + if ($append_file) { + file_put_contents( + $file_path, + fopen($uploaded_file, 'r'), + FILE_APPEND + ); + } else { + move_uploaded_file($uploaded_file, $file_path); + } + } else { + // Non-multipart uploads (PUT method support) + file_put_contents( + $file_path, + fopen('php://input', 'r'), + $append_file ? FILE_APPEND : 0 + ); + } + $file_size = $this->get_file_size($file_path, $append_file); + if ($file_size === $file->size) { + $file->url = $this->get_download_url($file->name); + if ($this->is_valid_image_file($file_path)) { + $this->handle_image_file($file_path, $file); + } + } else { + $file->size = $file_size; + if (!$content_range && $this->options['discard_aborted_uploads']) { + unlink($file_path); + $file->error = $this->get_error_message('abort'); + } + } + $this->set_additional_file_properties($file); + } + return $file; + } + + protected function readfile($file_path) { + $file_size = $this->get_file_size($file_path); + $chunk_size = $this->options['readfile_chunk_size']; + if ($chunk_size && $file_size > $chunk_size) { + $handle = fopen($file_path, 'rb'); + while (!feof($handle)) { + echo fread($handle, $chunk_size); + @ob_flush(); + @flush(); + } + fclose($handle); + return $file_size; + } + return readfile($file_path); + } + + protected function body($str) { + echo $str; + } + + protected function header($str) { + header($str); + } + + protected function get_server_var($id) { + return isset($_SERVER[$id]) ? $_SERVER[$id] : ''; + } + + protected function generate_response($content, $print_response = true) { + if ($print_response) { + $json = json_encode($content); + $redirect = isset($_REQUEST['redirect']) ? + stripslashes($_REQUEST['redirect']) : null; + if ($redirect) { + $this->header('Location: '.sprintf($redirect, rawurlencode($json))); + return; + } + $this->head(); + if ($this->get_server_var('HTTP_CONTENT_RANGE')) { + $files = isset($content[$this->options['param_name']]) ? + $content[$this->options['param_name']] : null; + if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) { + $this->header('Range: 0-'.( + $this->fix_integer_overflow(intval($files[0]->size)) - 1 + )); + } + } + $this->body($json); + } + return $content; + } + + protected function get_version_param() { + return isset($_GET['version']) ? basename(stripslashes($_GET['version'])) : null; + } + + protected function get_singular_param_name() { + return substr($this->options['param_name'], 0, -1); + } + + protected function get_file_name_param() { + $name = $this->get_singular_param_name(); + return isset($_REQUEST[$name]) ? basename(stripslashes($_REQUEST[$name])) : null; + } + + protected function get_file_names_params() { + $params = isset($_REQUEST[$this->options['param_name']]) ? + $_REQUEST[$this->options['param_name']] : array(); + foreach ($params as $key => $value) { + $params[$key] = basename(stripslashes($value)); + } + return $params; + } + + protected function get_file_type($file_path) { + switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) { + case 'jpeg': + case 'jpg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'gif': + return 'image/gif'; + default: + return ''; + } + } + + protected function download() { + switch ($this->options['download_via_php']) { + case 1: + $redirect_header = null; + break; + case 2: + $redirect_header = 'X-Sendfile'; + break; + case 3: + $redirect_header = 'X-Accel-Redirect'; + break; + default: + return $this->header('HTTP/1.1 403 Forbidden'); + } + $file_name = $this->get_file_name_param(); + if (!$this->is_valid_file_object($file_name)) { + return $this->header('HTTP/1.1 404 Not Found'); + } + if ($redirect_header) { + return $this->header( + $redirect_header.': '.$this->get_download_url( + $file_name, + $this->get_version_param(), + true + ) + ); + } + $file_path = $this->get_upload_path($file_name, $this->get_version_param()); + // Prevent browsers from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if (!preg_match($this->options['inline_file_types'], $file_name)) { + $this->header('Content-Type: application/octet-stream'); + $this->header('Content-Disposition: attachment; filename="'.$file_name.'"'); + } else { + $this->header('Content-Type: '.$this->get_file_type($file_path)); + $this->header('Content-Disposition: inline; filename="'.$file_name.'"'); + } + $this->header('Content-Length: '.$this->get_file_size($file_path)); + $this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path))); + $this->readfile($file_path); + } + + protected function send_content_type_header() { + $this->header('Vary: Accept'); + if (strpos($this->get_server_var('HTTP_ACCEPT'), 'application/json') !== false) { + $this->header('Content-type: application/json'); + } else { + $this->header('Content-type: text/plain'); + } + } + + protected function send_access_control_headers() { + $this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']); + $this->header('Access-Control-Allow-Credentials: ' + .($this->options['access_control_allow_credentials'] ? 'true' : 'false')); + $this->header('Access-Control-Allow-Methods: ' + .implode(', ', $this->options['access_control_allow_methods'])); + $this->header('Access-Control-Allow-Headers: ' + .implode(', ', $this->options['access_control_allow_headers'])); + } + + public function head() { + $this->header('Pragma: no-cache'); + $this->header('Cache-Control: no-store, no-cache, must-revalidate'); + $this->header('Content-Disposition: inline; filename="files.json"'); + // Prevent Internet Explorer from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if ($this->options['access_control_allow_origin']) { + $this->send_access_control_headers(); + } + $this->send_content_type_header(); + } + + public function get($print_response = true) { + if ($print_response && isset($_GET['download'])) { + return $this->download(); + } + $file_name = $this->get_file_name_param(); + if ($file_name) { + $response = array( + $this->get_singular_param_name() => $this->get_file_object($file_name) + ); + } else { + $response = array( + $this->options['param_name'] => $this->get_file_objects() + ); + } + return $this->generate_response($response, $print_response); + } + + public function post($print_response = true) { + if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') { + return $this->delete($print_response); + } + $upload = isset($_FILES[$this->options['param_name']]) ? + $_FILES[$this->options['param_name']] : null; + // Parse the Content-Disposition header, if available: + $file_name = $this->get_server_var('HTTP_CONTENT_DISPOSITION') ? + rawurldecode(preg_replace( + '/(^[^"]+")|("$)/', + '', + $this->get_server_var('HTTP_CONTENT_DISPOSITION') + )) : null; + // Parse the Content-Range header, which has the following form: + // Content-Range: bytes 0-524287/2000000 + $content_range = $this->get_server_var('HTTP_CONTENT_RANGE') ? + preg_split('/[^0-9]+/', $this->get_server_var('HTTP_CONTENT_RANGE')) : null; + $size = $content_range ? $content_range[3] : null; + $files = array(); + if ($upload && is_array($upload['tmp_name'])) { + // param_name is an array identifier like "files[]", + // $_FILES is a multi-dimensional array: + foreach ($upload['tmp_name'] as $index => $value) { + $files[] = $this->handle_file_upload( + $upload['tmp_name'][$index], + $file_name ? $file_name : $upload['name'][$index], + $size ? $size : $upload['size'][$index], + $upload['type'][$index], + $upload['error'][$index], + $index, + $content_range + ); + } + } else { + // param_name is a single object identifier like "file", + // $_FILES is a one-dimensional array: + $files[] = $this->handle_file_upload( + isset($upload['tmp_name']) ? $upload['tmp_name'] : null, + $file_name ? $file_name : (isset($upload['name']) ? + $upload['name'] : null), + $size ? $size : (isset($upload['size']) ? + $upload['size'] : $this->get_server_var('CONTENT_LENGTH')), + isset($upload['type']) ? + $upload['type'] : $this->get_server_var('CONTENT_TYPE'), + isset($upload['error']) ? $upload['error'] : null, + null, + $content_range + ); + } + return $this->generate_response( + array($this->options['param_name'] => $files), + $print_response + ); + } + + public function delete($print_response = true) { + $file_names = $this->get_file_names_params(); + if (empty($file_names)) { + $file_names = array($this->get_file_name_param()); + } + $response = array(); + foreach($file_names as $file_name) { + $file_path = $this->get_upload_path($file_name); + $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path); + if ($success) { + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + $file = $this->get_upload_path($file_name, $version); + if (is_file($file)) { + unlink($file); + } + } + } + } + $response[$file_name] = $success; + } + return $this->generate_response($response, $print_response); + } + +} diff --git a/web/file_manager/files.php b/web/file_manager/files.php new file mode 100644 index 000000000..c11cd917e --- /dev/null +++ b/web/file_manager/files.php @@ -0,0 +1,359 @@ +'; +//print_r($files); + + +//$_REQUEST['sort_field'] = 'size'; +$_REQUEST['sort_field'] = 'name'; +//$_REQUEST['sort_field'] = 'atime'; +//$_REQUEST['sort_field'] = 'mtime'; +$_REQUEST['sort_desc'] = 1; + + + +/* ++- copy file / dir [ recursive ] ++- rename(move) file / dir ++- delete file / dir [ recursive ] ++- chmod file / dir ++- chown file / dir ++- create file ++- create dir +*/ + +switch($_REQUEST['action']){ + case 'copy': fm_copy($_REQUEST['source'], $_REQUEST['dest']); break; + case 'rename': fm_rename($_REQUEST['source'], $_REQUEST['dest']); break; + case 'delete': fm_delete($_REQUEST['source']); break; + case 'chmod': fm_chmod($_REQUEST['source'], $_REQUEST['mode']); break; + case 'chown': fm_chown($_REQUEST['source'], $_REQUEST['uid'], $_REQUEST['gid']); break; + case 'create_file': fm_create_file($_REQUEST['source'], $_REQUEST['mode'] || FALSE); break; + case 'create_dir': fm_create_dir($_REQUEST['source'], $_REQUEST['mode'] || FALSE); break; + + default: + $pwd = $_REQUEST['path'] ? $_REQUEST['path'] : __DIR__; + $listing = dir_list($pwd, $_REQUEST['sort_field']); + $writable = is_writable($pwd); + + $pwd = array_merge(array('/'), explode('/', trim($pwd, '/'))); + + include('templates/filemanager.php'); + break; +} + + + + + + +//echo $_GET['sort_field']; + +// if(in_array($_GET['sort_field'], $available_sort_fields)){ +// echo '1'; +// } + + + + + + + + +/* + upload_file + ++ list_dir ++- copy file / dir [ recursive ] ++- rename(move) file / dir ++- delete file / dir [ recursive ] ++- chmod file / dir ++- chown file / dir ++- create file ++- create dir + + view file / image + download file / image +*/ + + + +function fm_create_file($filename){ + if(is_file($filename)) + return array('error' => 'file exists', 'code' => 1); + + return !!fopen($filename, 'w'); +} + + +function fm_create_dir($dirname){ + if(is_dir($filename)) + return array('error' => 'directory exists', 'code' => 1); + + // TODO set parent directory mode + return mkdir($dirname); +} + + +function fm_chown($filename, $recursive = 0, $uid = FALSE, $gid = FALSE){ + if(is_dir($filename) && $recursive){ + $dir_handle = opendir($dir); + while ($item = readdir($dir_handle)){ + if (!in_array($item, array('.','..'))){ + $new_item = $filename.'/'.$item; + + if($uid !== FALSE) chown($new_item, (int)$uid); + if($gid !== FALSE) chgrp($new_item, (int)$gid); + + if(is_dir($new_item)){ + fm_chown($new_item, $recursive, $uid, $gid); + } + } + } + }else{ + if($uid !== FALSE) chown($filename, (int)$uid); + if($gid !== FALSE) chgrp($filename, (int)$gid); + } +} + + +function fm_chmod($filename, $recursive = 0, $mode){ + if(is_dir($filename) && $recursive){ + $dir_handle = opendir($dir); + while ($item = readdir($dir_handle)){ + if (!in_array($item, array('.','..'))){ + $new_item = $filename.'/'.$item; + chmod($new_item, octdec($mode)); + + if(is_dir($new_item)){ + fm_chmod($new_item, $recursive, $mode); + } + } + } + }else{ + chmod($filename, octdec($mode)); + } +} + + +function fm_delete($filename){ + if(is_dir($filename)){ + foreach ( + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($filename, RecursiveDirectoryIterator::SKIP_DOTS), + RecursiveIteratorIterator::SELF_FIRST) as $item + ) { + if ($item->isDir()) { + rmdir($item); +// mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName(), decoct(fileperms($item->getPerms()))); + } else { + unlink($item); +// copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName()); + } + } + }else{ + return unlink($filename); + } +} + + +function fm_rename($source, $dest){ + return rename($source, $dest); +} + + +function fm_copy($source, $dest){ + if(is_dir($source)){ + foreach ( + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS), + RecursiveIteratorIterator::SELF_FIRST) as $item + ) { + if ($item->isDir()) { + // TODO set dir perms + mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName(), decoct(fileperms($item->getPerms()))); + } else { + copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName()); + } + } + + }else{ + return copy($source, $dest); + } +} + + +function list_dir(){ + $dir_iterator = new RecursiveDirectoryIterator("/path"); + $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST); + // could use CHILD_FIRST if you so wish + + foreach ($iterator as $file) { + echo $file, "\n"; + } + + $size = 0; + foreach ($iterator as $file) { + if ($file->isFile()) { + echo substr($file->getPathname(), 27) . ": " . $file->getSize() . " B; modified " . date("Y-m-d", $file->getMTime()) . "\n"; + $size += $file->getSize(); + } + } + + echo "\nTotal file size: ", $size, " bytes\n"; +} + + + + +/// fast removing directory +function rmrf($dir) { + + foreach (glob($dir) as $file) { + if (is_dir($file)) { + rmrf("$file/*"); + rmdir($file); + } else { + unlink($file); + } + } +} + + + + +function dir_list($dir, $sort = 0) +{ + $sort_order_for_filename = SORT_ASC; + //$available_sort_fields = array('size, type', 'mtime', 'atime', 'owner', 'group'); + $available_sort_fields = array('name', 'size', 'type', 'mtime', 'atime', 'owner', 'group'); + $sort_order = SORT_ASC; + + if ($dir[strlen($dir)-1] != '/') $dir .= '/'; + if (!is_dir($dir)) return array(); + + $start = microtime(TRUE); + + $listing = array('dirs' => array(), 'files' => array(), 'dir_names' => array(), 'file_names' => array() ,'count' => 0, 'timeout_exeeded' => 0, 'time' => 0); + $dir_handle = opendir($dir); + $dir_objects = array(); + while ($object = readdir($dir_handle)){ + if (!in_array($object, array('.','..'))){ + $filename = $dir . $object; + $time = microtime(true) - $start; + if($time <= LISTING_TIMEOUT){ + $stats = stat($filename); + $mode = explain_mode($stats['mode']); + $perms = decoct(fileperms($filename)); + $item = array( + 'name' => $object, + 'size' => $stats['size'], + 'mode' => array('owner' => $mode['owner'], 'group' => $mode['owner'], 'other' => $mode['owner']), + 'perms' => decoct($stats['mode']), + 'type' => $mode['type'], + 'mtime' => $stats['mtime'], + 'atime' => $stats['atime'], + 'mdate_human' => date("Y F d", $stats['mtime']), + 'mtime_human' => date("H:i:s", $stats['mtime']), + 'adate_human' => date("Y F d", $stats['atime']), + 'atime_human' => date("H:i:s", $stats['atime']), + 'nlink' => $stats['nlink'], + 'owner' => posix_getpwuid($stats['uid'])['name'], + 'group' => posix_getgrgid($stats['gid'])['name'] + ); + }else{ + $listing['timeout_exeeded'] = TRUE; + if(is_dir($filename)){ $type = 'd'; + }else{ $type = '-'; } + + $item = array( + 'name' => $object, + 'size' => FALSE, + 'mode' => array('owner' => FALSE, 'group' => FALSE, 'other' => FALSE), + 'type' => $type, + 'mtime' => FALSE, + 'atime' => FALSE, + 'mdate_human' => FALSE, + 'mtime_human' => FALSE, + 'adate_human' => FALSE, + 'atime_human' => FALSE, + 'nlink' => FALSE, + 'owner' => FALSE, + 'group' => FALSE + ); + } + + + $listing['count']++; + + if($item['type'] == 'd'){ + $listing['dirs'][] = $item; + $listing['dir_names'][] = $item['name']; + }else{ + if($sort && !$listing['timeout_exeeded']){ + $listing[$sort][] = $item[$sort]; + } + $listing['files'][] = $item; + $listing['file_names'][] = $item['name']; + } + } + } + $listing['time'] = microtime(TRUE) - $start; + + + if(!$listing['timeout_exeeded']){ + if(in_array($_REQUEST['sort_field'], $available_sort_fields)){ + if($_REQUEST['sort_desc']){ + $sort_order = SORT_DESC; + } + array_multisort($listing[$_REQUEST['sort_field']], $sort_order, $listing['file_names'], $sort_order_for_filename, $listing['files']); + } + array_multisort($listing['dir_names'], $sort_order_for_filename, $listing['dirs']); + } + + return $listing; +} + + +function explain_mode($mode) +{ + $info = array(); + + if (($mode & 0xC000) == 0xC000) { $info['type'] = 's'; } + elseif (($mode & 0xA000) == 0xA000) { $info['type'] = 'l'; } + elseif (($mode & 0x8000) == 0x8000) { $info['type'] = '-'; } + elseif (($mode & 0x6000) == 0x6000) { $info['type'] = 'b'; } + elseif (($mode & 0x4000) == 0x4000) { $info['type'] = 'd'; } + elseif (($mode & 0x2000) == 0x2000) { $info['type'] = 'c'; } + elseif (($mode & 0x1000) == 0x1000) { $info['type'] = 'p'; } + else { $info['type'] = 'u'; } + + $info['owner'] = (($mode & 0x0100) ? 'r' : '-'); + $info['owner'] .= (($mode & 0x0080) ? 'w' : '-'); + $info['owner'] .= (($mode & 0x0040) ? (($mode & 0x0800) ? 's' : 'x' ) : (($mode & 0x0800) ? 'S' : '-')); + + // group + $info['group'] = (($mode & 0x0020) ? 'r' : '-'); + $info['group'] .= (($mode & 0x0010) ? 'w' : '-'); + $info['group'] .= (($mode & 0x0008) ? (($mode & 0x0400) ? 's' : 'x' ) : (($mode & 0x0400) ? 'S' : '-')); + + // other + $info['other'] = (($mode & 0x0004) ? 'r' : '-'); + $info['other'] .= (($mode & 0x0002) ? 'w' : '-'); + $info['other'] .= (($mode & 0x0001) ? (($mode & 0x0200) ? 't' : 'x' ) : (($mode & 0x0200) ? 'T' : '-')); + + return $info; +} + +?> diff --git a/web/file_manager/fm_api.php b/web/file_manager/fm_api.php new file mode 100644 index 000000000..b8e40fa20 --- /dev/null +++ b/web/file_manager/fm_api.php @@ -0,0 +1,70 @@ + 0 ) { + header("Location: /error/"); + exit; + } + $panel = json_decode(implode('', $output), true); +} + +$fm = new FileManager($user); +$fm->setRootDir($panel[$user]['HOME']); + +$_REQUEST['action'] = empty($_REQUEST['action']) ? '' : $_REQUEST['action']; + +switch ($_REQUEST['action']) { + case 'rename_file': + $dir = $_REQUEST['dir']; + $item = $_REQUEST['item']; + $target_name = $_REQUEST['target_name']; + + print json_encode($fm->renameItem($dir, $item, $target_name)); + break; + case 'delete_files': + $dir = $_REQUEST['dir']; + $item = $_REQUEST['item']; + + print json_encode($fm->deleteItems($dir, $item)); + break; + case 'create_file': + $dir = $_REQUEST['dir']; + $filename = $_REQUEST['filename']; + print json_encode($fm->createFile($dir, $filename)); + break; + case 'create_dir': + $dir = $_REQUEST['dir']; + $dirname = $_REQUEST['dirname']; + print json_encode($fm->createDir($dir, $dirname)); + break; + case 'cd': + $dir = $_REQUEST['dir']; + print json_encode($fm->ls($dir)); + break; + case 'open_file': + $dir = $_REQUEST['dir']; + print json_encode($fm->open_file($dir)); + break; + case 'copy_files': + $dir = $_REQUEST['dir']; + $target_dir = $_REQUEST['dir_target']; + $filename = $_REQUEST['filename']; + print json_encode($fm->copyFile($dir, $target_dir, $filename)); + break; + default: + //print json_encode($fm->init()); + break; +} diff --git a/web/file_manager/fm_core.php b/web/file_manager/fm_core.php new file mode 100644 index 000000000..61871b1bd --- /dev/null +++ b/web/file_manager/fm_core.php @@ -0,0 +1,201 @@ + 0, + 'PERMISSIONS' => 1, + 'DATE' => 2, + 'TIME' => 3, + 'OWNER' => 4, + 'GROUP' => 5, + 'SIZE' => 6, + 'NAME' => 7 + ); + + protected $user = null; + public $ROOT_DIR = null; + + public function setRootDir($root = null) { + if (null != $root) { + $root = realpath($root); + } + $this->ROOT_DIR = $root; + } + + public function __construct($user) { + $this->user = $user; + } + + /*public function init() { + $path = !empty($_REQUEST['dir']) ? $_REQUEST['dir'] : ''; + $start_url = !empty($path) ? $this->ROOT_DIR . '/' . $path : $this->ROOT_DIR; + $listing = $this->getDirectoryListing($path); + + return $data = array( + 'result' => true, + 'ROOT_DIR' => $this->ROOT_DIR, + 'TAB_A_PATH' => $start_url, + 'TAB_B_PATH' => $this->ROOT_DIR, // second tab always loads home dir + 'listing' => $listing + ); + }*/ + + public function formatFullPath($path_part = '') { + if (substr($path_part, 0, strlen($this->ROOT_DIR)) === $this->ROOT_DIR) { + $path = $path_part; + } + else { + $path = $this->ROOT_DIR . '/' . $path_part; + } + //var_dump($path);die(); + return escapeshellarg($path); + } + + function deleteItems($dir, $item) { + if (is_readable($item)) { + unlink($item); + } + if (is_readable($item)) { + return array( + 'result' => false, + 'message' => 'item was not deleted' + ); + } + return array( + 'result' => true + ); + } + + function copyFile($dir, $target_dir, $filename) { + // todo: checks + // todo: vesta method "create file" + if (empty($dir)) { + $dir = $this->ROOT_DIR; + } + + if (empty($target_dir)) { + $target_dir = $this->ROOT_DIR; + } + copy($dir . '/' . $filename, $target_dir.'/'.$filename); + + if (!is_readable($target_dir . '/' .$filename)) { + return array( + 'result' => false, + 'message' => 'item was not created' + ); + } + + return array( + 'result' => true, + 'bla' => $target_dir.'/'.$filename, + 'bla2' => $dir . '/' . $filename + ); + } + + function createFile($dir, $filename) { + // todo: checks + // todo: vesta method "create file" + if (empty($dir)) { + $dir = $this->ROOT_DIR; + } + file_put_contents($dir . '/' . $filename, ''); + + if (!is_readable($dir . '/' .$filename)) { + return array( + 'result' => false, + 'message' => 'item was not created' + ); + } + + return array( + 'result' => true + ); + } + + function renameItem($dir, $item, $target_name) { + if (empty($dir)) { + $dir = $this->ROOT_DIR; + } + if (is_readable($dir . '/' . $item)) { + rename($dir . '/' . $item, $dir . '/' . $target_name); + } + if (!is_readable($dir . '/' .$target_name)) { + return array( + 'result' => false, + 'message' => 'item was not renamed' + ); + } + + return array( + 'result' => true + ); + } + + function createDir($dir, $dirname) { + // todo: checks + // todo: vesta method "create file" + if (empty($dir)) { + $dir = $this->ROOT_DIR; + } + + mkdir($dir . '/' . $dirname); + + if (!is_readable($dir . '/' .$dirname)) { + return array( + 'result' => false, + 'message' => 'item was not created' + ); + } + + return array( + 'result' => true + ); + } + + function getDirectoryListing($dir = '') { + $dir = $this->formatFullPath($dir); + exec (VESTA_CMD . "v-list-fs-directory {$this->user} {$dir}", $output, $return_var); + + return $this->parseListing($output); + } + + public function ls($dir = '') { + $listing = $this->getDirectoryListing($dir); + + return $data = array( + 'result' => true, + 'listing' => $listing + ); + } + + public function open_file($dir = '') { + $listing = $this->getDirectoryListing($dir); + + return $data = array( + 'result' => true, + 'listing' => $listing + ); + } + + public function parseListing($raw) { + $data = array(); + foreach ($raw as $o) { + $info = explode($this->delimeter, $o); + $data[] = array( + 'type' => $info[$this->info_positions['TYPE']], + 'permissions' => $info[$this->info_positions['PERMISSIONS']], + 'date' => $info[$this->info_positions['DATE']], + 'time' => $info[$this->info_positions['TIME']], + 'owner' => $info[$this->info_positions['OWNER']], + 'group' => $info[$this->info_positions['GROUP']], + 'size' => $info[$this->info_positions['SIZE']], + 'name' => $info[$this->info_positions['NAME']] + ); + } + + return $data; + } + +} diff --git a/web/file_manager/index.php b/web/file_manager/index.php new file mode 100644 index 000000000..3ae1295ef --- /dev/null +++ b/web/file_manager/index.php @@ -0,0 +1,15 @@ + diff --git a/web/images/add.png b/web/images/add.png deleted file mode 100644 index ba782da16dddfe0038542736b5bd6b9b50afaa47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf zIIw;V;9>XSVPSA&?RnugDYeN)$ez(lzkzdufq{X|kwqUBFNOg%Y-7o7Fv*($WHETU L`njxgN@xNA)}bu) diff --git a/web/images/b.png b/web/images/b.png deleted file mode 100644 index fcf0ab0f11c03ee90a5ec58a77acbd40330c9734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4564 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 diff --git a/web/images/b1.png b/web/images/b1.png deleted file mode 100644 index 8e0a38b05f8b82fb82a4b36c468fcacd809d053f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6428 zcmWkzcRZVI7q(YFqgq-cr7ddI+twDNR*-nDNMer;Ma){&7_~}iZJ|Ypoq?#?+Nz7b zh!G*RN@K;IMe(J7JkR~dec#tP=Q`&(%Pv$qi0;n3NC=~g0Rv$1WF0qV4XHVz(dM{?v8An>Spi!}Zpk#}*!Sm%{T~YB^mPa{g-a z0p%?G-l=_nag`xJ>#ub?izgAMZLYBat!H_ERiLeebWB7JFmMl-{8VSwJ9ARP&bCfa z4EWc?G5@=Q;S7C<>Ki+UJ5jpfRK>*2KMaVp*;8uNe+;{6_9jmVhpS%d43cs&sI^tE zW+@(l)OEz&{ebqTMSpo1np!!FT~dwdn0ltT#nQpJU8kMtKf z2RjV8+%luz#u?`6J{`Xq6K!DnAx!gT_h$PGDp$VcY*5 z)m{~H+IE(aJ@R#p;TK22Fb4mYSJdvhv@!&Sb6gv|1oJ?1k=eNZ(##;#va?CTY|OpX zRB#j;lgK?rT>JXhwGuPLMFs?acIkC`!~cc`?WnO*IC&-{+cv{1;>L}dRruWr*B@zz zzwXsb4Y+78{$1HYFFrFIb?7Y33cA2x%D(U~UC$VX{dN1Vd&-uKz@o)y@D@$4>gIv~ zzmO+tj4-)W6BHoQko28Q4|Ho&V5Vuv`Ub+83(;<#S!}(D2+q|bK`N7>T%I9kxx$H& zp4g-eKWX>s785jBLw|%}d2dBkqlkV<3Q#KB4kn_miPy8jl%*hUvkxDw@q*qoI)We) zVG+4fycQs^otTc*Ed51&1T;n%$j6q0D3HM*2Z4*;SBXj|8TZsFAONX00y&d3yIu_m4fqq{)GA zs*P=&Ys>#a=I-(4qDg(jRav1I8I|TR5Zv$#jF1+-FGpId&C`S0+2G)C{f*#~p-Rr&e|2_ep9PsQ#p{ps*s ztt=gb&R_b~4^0c(@%Z7gBEkS{ZFE@9HasgXv;o2QwlMoz2Na<}NFmC44#Uv5=wW_1 zv)gM#stc5zE%Kt(fcFf!E&6AWeDy9nMi57V89E+Q_UH3~m`^=)8`$-}mghPJb+Y)@ z7&UPIs({;?^#g@1NIO2^3TpBR&Nwdq$O2#Z+(15LkMnpn8o|T@2pN-NntYhW$JuzL zY=XRzo<8)eJ6tvK&(z{~cfMD-#kdIiX5j>n95Ivyec78}khEFA2VY`w=YAc@WG$3T zF$4K<_gq2ct?0~(NYykrLPP4sYv=txI43#Oj(PISU1k}N59Y!;D`a>Qsm)MgY14V9 zkO{{atCtPNc2hubPrvVfs-t~0Gt8F9UhyLvzIwSC96LB&_DxkH>6VjyN3N8ZkFqs@ zFEt3@!~(3zb^PJvEtMk7j9gK%k4!~6C^kw(W8x+liMeovGN(?nj@NiSD=$|RQ^Lo* z$8wXWTk3&%{*dt6L)#8oGPjbd)Om94e0g*k`ECu2^?w^1Wp>RZ7g5iDt&%>d^f=@J zytRze)*VBzl&j1wL%hF2xt0@>ZIzDjG8J}!;W*t!B)Olk*YSNNzKGMhSyX&t*iHFqo?T1<~$lvEfph9 zHs13}JfFDXo`8QR;hjs@dgZkZNJb6lZn#1SIkBp@T=;fitnJN!^f51i6>5Z(sU9Bu z*i-qIB%l`_^AMHlHalv~n-Q$|gm%|O!!S5*yzsi5{D%ik2h2$xW_l^*M}WMAt&=0M zApqY)=gs80q1}w^3|B2!aKRH#Ap@L>*MDJRP4?U-TKkXM9o~VU$0<@d$t0#c?EUCD zlmr^vh){@8*ih*O%Xs6Pvr-Fv&|OP9lrX`Yv}Gm~vlQhMZjc3_=A@&Q^H{-xNy{g! z=o3{zXjp-0@e*A**09kBD$06sw19sMm5&{fv+jw(xOjL$V)bQG<~QxOW5>+ZuL5pM zIS5c;-lt&+4~u&&UXmB~;8hQbGVRf@!wEJ>H0Iz#ChmVc)*ySahgKMB(s^-7K(XM;aE{&3Ut6clWdag2WYvnahp3#0FroxQH+z*yW_$sxV zT})}wqs8&Mtgx?7nf;X&B^5vfJn|UXHm8vyn5c~eBYeL_-O$puFEzdX>0Mu^QgvVz z*YeVaa_mI!g+{Ogq1bZ=LnL-JXAGUAV*!r+0#^U59pL)S!WQZoRW( zK)#tf@Wa8O$o(INo1Ti%!!G?8mXgz#T`4&R(jNX#ks?2?`Ct)@ODip7F(3165lvz)Em7UbW;WnCR3@*>6 zC4e}7fC<3t&PUe>rBs1*wKrEjdLV1(YvnJvuS)KL+bT_w*NH{{`#As-2A*pP`lr_i zJ-UPYIrCj$^y$(2w~V&pkLTEcvi^PN#tgcT-Yk3A>Mo!4h}ePcZu72I=CLCM7bGJm z8syyFr-H4Dzn}t>novz@qdcXP4~&fit>Vfw36atZnF#*kUw3;D7EkulDX z)J{Pyxd-;EANjcT_Y_xXsTA;Uc#oiz7&blemtWhlETrA!wp4?DgYGAr^LrLmQ~BqG zy!=V8{63YQ;8!5DQ9HpRMhE=_*KJjHR5&D2;fj|P)2-bM9DzE*;}BnUH$r##^j zuv}XL<5=8hV-Gl>;r|YZ8sZkkWl+^h;oC zv$d=t8~<|qefiiSv%_}dj22+gjcM_m9$rEu52v99;;(dm~ZT~ zrG{n;k0JsUsSrE*3$P*r`S6IsWDUU<8p-j^cgD@m87tHRI4myt?X87`VQ-RNs*y4#y4jnIv-rCfvO@O|=?&L_zP=%n9p6swa0rF-Y| zwA8CEy?3&y_67s-vVx=*y=9NVT1%BUl+NG*$eTaNnS_cLURI!pby9gT<8W zIkT65npI*lE+G#yhRjjPX0Ebve^p2DxVaRChyvgM|1l$-Q{$e;8^m;BWx0fXh-cri zL$%4&q4hmR@xuCU^01MaZ;w?kAl&uFUEur+zoSlcYOO9#uck#M{)QSpeaF4zHoG`% zOpF5-hd}7hqbbr2YF@W)Qe~y9P6N#)VuHA7LsYSkFA)Odvw^d#`5H%51qaKSO*(!X}gqSD1r52Pv-v3)-J~ws-%O{LE z;Ku3~TT;=Hj9IYr3}UAhnV1U6J{r05&$xzg8jpq%H_(L;{IPy7<7)AwA3wko^DY?X z=QC0*L|t&*!FDJ?F6O(SUC^D{IqK}?y=hnKSA?Z_I6K3uC5t_=qIYjqWb*3uFUi432mTt! zY$)Iw(8czIXJ9`Gt%ggBVEb2UVnOEc%P4SJWZ z*TX})ha537O)3;N0+o@xXC8T8P{U~-A6%<$o2sx@o^n_CMXAE+P@`Wp-!3n!sb=|8 zeRRoEy*T#4;J`xUm|v}fX6BkmX^`i$XorEj&!(T95rsf=OM5(%OUB&LOP9YsvMCo{_Q(no7z7&i7d>8zSC0-U{unQkuIohvYL2AJBfQBbDK55!7 zm)A=YI_FaN3utG`K8wwy*Hicy4nkBS2yOe}@-xIKygRHzl}#+!E)SK|$lg_q;#FI3 zeUhyhu4{@b8Dj}X%;8y*3_SoZq64;o0VU>5J6cx$2yC{CPm^P_50wm0={F1!lNyyZ zDe@IugYRseivIidVs)aiY#g5w-tL-7Z?bMU91f-yKW}qnQ4Ct6zFm@RY!(r4cz_FL z)vt5N!-?5VjJwQAuI*N#=)x6QVC~)0)nY4et z{{#GwitO;)OPjMt6HyztOD2)sO^?U;y@JrUy+xmSUn7V4&qOOVu){haF{O_;f~JT@ zw%jK_3oDgd{+S>TR!wD&HG8zvsZwF70?2|?VzK^6w?l&CMryG+-WiFN-v94{3zUhbOgcKaK4-Y6S^csf? zR+~=0H%=5tW<^g_;zO?J%PBT!vgYIUB1<3G^LOqf+NtPXkn*~s>X4kC!y8p3!j?nfHsMuPKr8k&!~$Sb0-Tgp-uyj9c2Vj)?@f^0bt z*Pd!OH!wo!Pq@bt=!k3x+|vU!`kD2FSdJKQhN#1|d^n_0{3ht3Gx zpIkH**E4;H`G;aR|T>D8XKobItpbjRJHTU)8HOj^tDs^@eF;_>@F#hOszUr+h%;8 zEXd&oDe1aiA*<}$+XWuNz4CfJfu`lF-*+UTL@Qnx+m+@SKJ|9|O0XHWE zKPM3PrE+BcZyg6>3=_UsPZ$?h1QKK}BxCuV)oH3>Qn@e$7mB}`0ois%)cJ+-5jw|Zl2yDRI+ll`^nUdV@vX}tNl zC`}t~!^dAo<&%L?(~ChYHLKopqfY*0pE#lrVX&6xl9&I_=!M)ez@>tzPe^4CSUhK`e|}nE08fsHj*>O$@9kXUBgBBRwTm!{`F2 zsQA`Q4Rm2o^FkNwY$eP&4ZhD`DzT@&q!Z-_LlRu9zR?_by1Kt-U@f*XXv@vbbvo3( z0}ohS|4KfOYL6})wN*U89}NDxOc!Z6INEul)dnA#?i@Y!x>Q-(?)923)FN+C3jf*I zJ&5XgmOnaO`w#HH+wSwc%RkWt={tA-0efb;Mi^Rgr<>0XR^Za!j6t?Rq+d`jLx=TSqLe>)}TA7Jy@9g)TA zjf11DsQQRpwq3&44pvHXwD|aGYk{S3_~pUHa#-{Bf@X!~`DxSzsIb~4yZN}MHBWvD35A2uwnLt?R~Q#YNOvQ{lg=Qy%`)JjgaDk{fo> zPxdpNINCWdw&H*Er5E}4JzJ370foVIm_n%4<)rAJoks!he`~~ljY9N(uq-@2pyUwW zEs-xMN?e1MHYo4k7vAckU=>w^|CzO~;NM0uhayQb$@nCfqN}m$gyN1RMLwMaZ*J@9 z>f_b`M=IJn0l6QV?5`;>vtn8jMG=MWop;zIk#A@;3iWcuGJse%M`M=sBPwt6OfU;Jo%vdQj9~he7jZ?CLA&OzT zwqgtF>_lx*hpknkAqZ$=Yr5>Pra(J8ML*}J9`KA~)$1_iyhpSTKPbbu#HV$R_V&fdCk=c&XbJZR2_B@_&-GSBbKR;pfL1yO0Nzq7hcIU`xW^KhZAW z#diie5xnBM)r=U0(G|5_L|{A5#i7|Fu_Z4vW7$s|R30K!u(alMaRM(DLeXc!WgLjW zX)TYvmHM-(UUMvt>HqStS)ExW*W`x!9xEwqsxEvo<^O1L>hHBPjjLhJ4UY{z%q^mg9$ zAxOdite?{3zRy7KIBnlxhFj-5eSDJ;SdMzl{-RToR&CZ_q6pcAJaa!dexVoJeo1T*i-r-=8L8g`R+I5Tk%pUSuSTT0Oe50WM0JW6Ce&trs6p*yGO-- z3)y0h<(~KmRQP6x%9Jt93GVlSSC?zY6!tP?L)Yyw%yQG{MRBoqu42RH!%7~X4EE`^ znrPiVr#LK4ArtK|Bq7f00CNAiPGPrG_;gL&Cy!DY|Ll3$Cek^jsS?q=IEfD+jO2!3&2)qIqx*>QfJp`U|25>B(o!jr_Am<><&rRQ@>syk(1s^)sDy5uw5Jf$s`bn2_7p5P_?+-%Wk-E1 zV{*AIwtJhE20u6TtAA%)J&~sBZa-jYL_vLoZ zDbZ|dS?0*z^E65bDwUhfi!Dyns^jnM;Pg&gxnrR?EgQ(Z_3ybf!hJMDghG z2+UBE@w_^Ov?~4HFtRx!(o7y0L-XG^YH!@T2>yFt>FKN>VnyrbsX_g5vpK)x=7U_? z@iLa8)kRVC#}DR<_Z1ug>@gm5H#wMT*@O!l|0m z^pw~blM5z)F5%sN5I4RKg;&x>d-Y>I50PI3*)=BE{5JO_-ZxXf-rSEeM<4U{?RBLs zXu`44PG=c>kz`#Rp>E+@_wj9jqVdqY!~e|>#2EQkmC_3`l@;79juE)L%I)A|S8Z@- zj=hR5i4yqS4e-#(Dix{7Dqb3i0_#3t%~7j6DK&i6_%8BFLMhSGhI-g~kh`t83pW16 zymIREO>SUmspmF!?bIqG*XI!$r?F&{RpCXpGOi&>B>~3xGNeaw}gBUDr ziegzSI2UjYU*Noj-|KHRMC4{l%+M;JzK4WaKA^2}i8GJ%8sWQoOLc-3s8XNxEO6#b zwCpyfT-fnV&CkU#cW+>7v-M9CT)r`7u3Mt{I`Vfbv8(cBm4$6)gNk@9OOrWELQ^GS zNr!_!F+5CJ5lP#?*l^71aP-YAxMx<5l&Jij>|}V?1}_yTf1~+$x3ns-r%Z8R!9-iY zvmh1E-jI=VStcdm6AJT1999EecjCQFaQ&0MSkkh1@AU>cMB|v+Ss%|zfv_U}bRdEA zIwQYZ_m7SjEH1_?9bse|E!?(1wY~XRkH24%Zs0P~NY=CAC#$>=qjECH1N3CjSJ5^E zziwDcYoD?)#RVL!xea9oc@YFhXexX$SP? z7GYY)BZ~Ir?Bp1tWY~olBjpx`532JVi-i(p7;Nm6^+WEKkw}ACf2-)|Dhaa5`(ZL8 ze@*pwo3p_W&olcdld-n8qp>F@(mwS(#{i{{LI_3iw`JcvtNV3(xxm%Z{qPzS6H7Y^ zlI38>Qm$${YCTdmYrkdRF3O2EGt!ofw3Dbt5YD`N$4R849Jd}vA*ymxZGm67$67+$|i^UhLJ;Eo26jPbR7Rse`p3 z8)sMJOCn6s28fJcVApoKx&bzv-|o$x_ysVj>PxJXstA4tZ6z8sl`#+|JMPn5ab!@Sku z-F){g#c70|E-Ic=Z0JaRxRu}|WW#|fSqnLD7U52(qeRThlo%5OApB{WJwyC>a)QAh zyKd*i{{ZU3b_&_8#=KP(w>;n@$4Et$0n&A53I58DTf3+l9lKBQuR++7#)+w)lYc33 zyVTdAE+rD$cr^EZHZ>G0V2l{jH8%H5Rq_a1Jp{u)&uzUu-b5uPyR>T%E{_wPC z7=Ypc{utLa6_n!DH{v$9OatWj3dHg04iKkwFP6vs$^hs_A!js*@zh}-HzG#Rl4uZ) zY;OB3hdwfkQgNvM!|z3y&;-XzY3N#+N92lJ(3;-(Zbul${TAFeRZlIeP_R))eJJpM zktzCp=jdiwusNE3pyO*<-1>q_Du@|o&WOzQs4!u1t(|O?x@)rtYYn>{C^d{(@kvFP zK8FZaipw&XG4lXZ!F4@gOaCZ*pA3V3Gy}@9gdJW(UL5@F$jrm%4-9WoY&M5X(0hsr z+fuvGhBx5u!u5?g19jf+-KB=KpuF+R(W(X8v`Gq}WyGPKsZR|Jlz}s=tb>}ZjOw|{ zROY6PC0FyK!xs=4ect^qi#lB{3?=3Y@CG$p<^{}pDO=&MGgLp$A_BZ zmW>{M%3`nUOeJs?meC9_iu|HRZ5e3KbI;322C-djIronE$~@)&7F6�EjZ!h{Jw1 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 VmU>K^DE~dEObsmzYV_RV{vSubx7q*z diff --git a/web/images/background-dots.png b/web/images/background-dots.png new file mode 100644 index 0000000000000000000000000000000000000000..9720be3b09053f63c6490a729aa1220a3ba237b0 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg0mEBk#`X#sQLjN6iWKq1Kz*N775{M_8syb=cIqSVBa)D(sC z%#sWRcTeAd@J2pypdwLE7sn8e>&XcR82{B~{<3dTk&uvJnA#+v7TB;h5~zT|)78&q Iol`;+0B@=+cmMzZ literal 0 HcmV?d00001 diff --git a/web/images/db.png b/web/images/db.png deleted file mode 100644 index 7317de69ee5bd11dc3ef436ffe93d9baa7d41301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP*5S+ zBgmJ5p-Pp3p`n?9;R}#%xyZnf8_&S-B8P#&2B=XwqWL*{1yHTEr;B4q#jT{0va)#x z4;(0HXlzuR)Y#bA$tb!frHQL3X<|wO5F{lgBzQCzJxdNeaNy8^0|qbFGVn0WUdi=l TRzN#9&=>|!S3j3^P6>$j+1|*LJgQL70(Y)*K0-AbW|YuPgfn0lX{+sjmviaw+4#7d-A+RE z!UaQv^!a(7^BRlmBD7XDK4)ELp*7w3ow!BfdYk;fwT!%b7tPu5z~gn_TmJSn!Z-Rq R)`OhN;OXk;vd$@?2>`FAOxged diff --git a/web/images/disabled_bg.png b/web/images/disabled_bg.png deleted file mode 100644 index 2eff4f4299b7d151a615c0809000cfecad6319dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPqyAYoVixg*{JWxoo#5JPCIX^cy zHLrxhxhOTUBsE2$JhLQ2!QIn0AiR-J9H>av)5S4_<9c$61FH-V50BIfCN?0IbA;O< a0cgHu8>3QPnzas4A%mx@pUXO@geCxDaxDb_ diff --git a/web/images/document.png b/web/images/document.png new file mode 100644 index 0000000000000000000000000000000000000000..0847f096db0d223ea7dcdf07cfe2a27736cf50dc GIT binary patch literal 445 zcmV;u0Yd(XP)W0`+C0?N!*kJ3P2qh6!V>{ekV=E9h;-vFg=kw?LZHuO9 zfb4cUy}@t+!}ey3`7~O?%Y4p>(5~RZ<#IAv>~XOsHwHAq?Ez_;!g9U7$EiU7u=}I~ zXe|tFs%!TBZU^601!Y-6Q4}1XXR`&?U1RxG51j+}V9$rvpiwC1Zdg&Xj^ANmx!C$MBk_c@LndgATw4Q7F;Y_5fNbC!uS9 zA#@1U`Tz$Bs2SRme30M(kbMc5bR7&p0*vYifbW3sf#1gu2{5m`66)G@VC?&PAS?lE z{Sv4He5xUcXlwlvYzG4n%6lc?x8=FLgJTfUsr?1`%JWm#X8WP&=ZQ8ll)g23x7Gow nvfQ4J#}DuiL&(<7e*_o+u~W$PsQlS`00000NkvXXu0mjf=m^5U literal 0 HcmV?d00001 diff --git a/web/images/download.png b/web/images/download.png deleted file mode 100644 index b9d2057c89c3ca90859ebe3803e8dcbc28a7f5be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2880 zcmV-G3%~SKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001MNklSj6a>-teGVzW5~)*H;M5h+1ZB_)6;J_XxCjbx;=np5cM?J% zHd^hBw3OtWVZcy2xHw4_+8x%y6%TX~F;@~1PrNV%dfW~kmV`I%Xtoez!f!`fFyfoa eu$Dd*!hZnGS{9}hCKGf30000hBcIl4dgI7&qT&e;~F_AZT}k^pZf1>$j+1|*LJg0mEBk#GK^}4W%^Z)?fkJYgE{-7_*OPDjF;z?Ze0_!ln@&S# iqZY$mE-lG!K8D^qoUPG*>UV%D89ZJ6T-G@yGywokC?$#j literal 0 HcmV?d00001 diff --git a/web/images/filemanager.ico b/web/images/filemanager.ico new file mode 100644 index 0000000000000000000000000000000000000000..7ee3192b42695f3013d9f051c56791790899b9d9 GIT binary patch literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYI*xgi+LA4bHA6%6}<_&g literal 0 HcmV?d00001 diff --git a/web/images/filemanager_favicon_3.png b/web/images/filemanager_favicon_3.png new file mode 100644 index 0000000000000000000000000000000000000000..35068d91ebb73ed39772a403dbedddda9b391af7 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq4=10cUdxpm+(04864!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aiAi1PZ!4!i_^&o5}z6bTeoM4mW3uJTJR<`Z4O&={k z>w-I-Ewob?E#>X44$rj JF6*2UngGunL@WRR literal 0 HcmV?d00001 diff --git a/web/images/flat_icons.png b/web/images/flat_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..631f3b3c55405a9eeb6ba8f83c7260dd704afe3d GIT binary patch literal 9853 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 literal 0 HcmV?d00001 diff --git a/web/images/folder.png b/web/images/folder.png deleted file mode 100644 index 41dc4e4e20d9311b7dfcaa62c5ffa278067327c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP*5S+ zBgmJ5p-Pp3p`n?9;R}#%xyZnf8_&S-B8P#&2B=XwqWL*{1yHT6r;B4q#jT`2|Nq-F z+Z}lE=FOe+2M#E(Jbj;>kPy+arh(OSQe$J|LC&tk2eQJE~|)z4*}Q$iB}r(ra# diff --git a/web/images/login-as.png b/web/images/login-as.png deleted file mode 100644 index 06a5b712291ceceba6d85d47a2f9c2f261549831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PI@&H|6fVg?3oVGw3ym^DWND5#L^ z5#-CjP^HSi(9q1l@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqi#U8`JOJ0Ar-e`&K~4E z0kT-66Xq diff --git a/web/images/mail.png b/web/images/mail.png deleted file mode 100644 index 1281299b94a8d479d84a346d2b84b43086d3088b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRM!3HF?&tBaM5-9M9EM{Qf76xHPhFNnYfPxCi z9znhg3{|QO3=Pc;3}1kB%S8r;+;|3t7dZ?JHr)&i(h<$i*(-o*i#%N%Ln>~yTrlK1 zmdKI;Vst06V%(?f?J) diff --git a/web/images/more.png b/web/images/more.png deleted file mode 100644 index ce30922674e008540b835e17cfeb4a53a921cdca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP*5S+ zBgmJ5p-Pp3p`n?9;pcxK{gQ#9)PRBERRRNp)eHs(@%%~gN8NyG%{*NkLn>}1m6Vm; zJJTRtlbV>2@ZspQ=G1_3Ee`piJ^`2YX^A0-a}buj$@&&(jUg7dVd74tt3 N-_zC4Wt~$(695o_G6Vns diff --git a/web/images/new_window.png b/web/images/new_window.png deleted file mode 100644 index 4e190c59437744fa86011e5d320c7040e655eefd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<79n0U`BfzjpMgS-o-U3d5|@)x z92%>2JTZg538;RuLfozhr4806&w9W#ttV0DRLbeESp?75@u;*Wn})l=J)uHN=km0?Rz5+ z_%7Ff5c%(_0u+>$mH(qv`WCGCUE%*Ff9qHJ4+8k6|KI$60A!Tpzo)dKq~w3n|0|K? z|LUV4FaLcLB^klegzrx}(@7DaWasGU;p*z@XlM8R{5Bk|tjx{-+xvL9dieO;`MdfD z2M0%mg#~}VqI~?n-NvqtQNiCaAO9#HJ6F3f|0oYD1IOSnJ7YWlFe`s^b02dL11n>z zD05eHJ7Z&?U`Kze7#}NRa|0g_E03^X^Dx~Qt6<|8e}5}GpC}KXC}Ul714o14U;|h4 z@2qbD9>y`jVPR3`rPrG&AYkYulA=P&ZlJ8mkscdOvmsm{Y{V|ZAtQ;rLZn>n>gudy z!82u3SFFyLtTq`VvP#Xea$g^M65Y9qn52-7Aa@r$1o(q&2VT4@_~zF4-@zNAPsZcO^utWcw0%Rkf+Cc@tT0U5!VU-yA9zm4C1%oyUzmn&3)P zxzl0^sjoZm0jnKb*{WsLxqMTHnPRjqVnb>P#w+SoJuelj9MklZR+nDrC)pNX{?+4` z9mJU|+TT(Yavg7GC|jyDP9&g|mF1y7JaA9DXN`5tE1z4Dc=Fa87~yh`T4hgC@)Jf& zOmeGbaAQC?gxGFO)=d0maea)vl%4l$I|tACnT?VHo&}yy?}ILU4#qn{%mmB1r9^58 ze(i{={fB^?j5OC6EZY%c7L&L=8f@=rK=qPRs{Tw6x5FCN&hT+~r-cYpRMs~H78mso zGW*9&&j#k1pxYp4571DX+iE|y<7HAaSa}%$y3HqjOC522c&N5DJ1BOZRaz67SFL@{ zeUq%)$tg~ZK`Yt(_R+ww58?2o*3`PQnuj#>&dornXRC)ZQ;s8|b<4WOoyw%I^~kQk z7Vz}`km1Wy+`y>XA7{zF*Ar@8R;cX86wkzbhsdOCrb7wfN=!5Ik9P^fmCwFrvMl%& zN^A|b&ckU!Y8Vq;I#Ok)-a&6#_=CGG3VIA`Z2}-e)MFE^QI%>rVl5cuO?&zmr|i}a;zQHlQ@#LBSnP<)d>{_{MUgA4UBBefrQF-@0NIPGp3sS8 z{&cN3S%+#hpd%2-0MVDE%3aJee0lsDda+rE@-)`Gk2dgLl%n1psKU6lopkBu{IN+e z%z-841NuR)JdOi#H@*&UFGtzqR@*qfb5;xJe*BlW3*ZVAuH~?Lzu!qHBLa(ouS~Z3 z!>X2DMJM?;JlrFVLW^ZjLkKo9_*!t`)B}dt;2K4BV18ethB2b>5K9T;Xq9}=PWik& zVNTz?-np}l?A-dpJ5nuz#ReqFPxIB< z1U8YQKD3V=Q-_Dcak7tZ8RX*?hr18#zPQ^APeNGDEi=RC_UESknHb^GevC`OH;7&K z0bgp0DHah8e@mFy2lEhq|0sU<>MD;p(_y9%#1Oz4fmQLWG(Pn&lb*!`D>ayMrCuD< z-;38k5NO-0*d21X>UL z$pGWS1O5=-C{^i}9QAIb6L7otV59q6SgLlbCvAqky|CNPOoh~g)w1esX2+xO(`nw5 zpTy%hQ=iw|4NV=hhC4rO@h<-?d~zS)C#U(i;IZG6<EruyG1-$T2zvlF?FoXX1>6wrJDklp59N^|F6T4mmBNG;!OT=>+3c4ajcB(m0 zsIlaOK8)c3np}sW*o}V7>#jlJUKrhdy-M;_m*ikcIj$#!WAt=b6s?AZLx~MO1ksW* z(nihLl+%$tLuveFAbM|_vtcaB(o-^~jdTivC)5Uuz5IBtmVE}1jZLy{*r~Ll9>3?G z+LSu075)6BJg0CT&!8;y#cL_mlM6a8Vap(bA5?mFI!9XujN&k|o z5^7m7g(oMR^}403!Cm{Xh&T)Cnrf&s)C?HKXu_lJk=Nj?lOm*)nL~{;R0ha;Ow<+C zLWtsjaBfF~jTgcWtIzP7vMjnDIdql5wE>O zHo6(V9D?cmlbPi&mphB=OB>s!tcVMsuOdN72$8Zpc&k%rq^^)pF zeAGf&sO>L(9wR1yat2&Dk{AinC?n#@hHL~ut;)?L>;}0Yu~7wSp=_j3OFM#SGY7x6 zM_lD2gNK4*eXdSOQf!Q29sHF0X}w6=Ruhy&aj@-gmkDpL(^U}~!2KTI=C!pZbxERr zt?#IxbaPa{)(5~-u%QX+z7XO(P*t&Zfo#stM?m8PPNcSH*flv z>w;?1C7F&rT`F9i@{fp`u>@O~G3J7@478-T+Bq1~z(6dyYfY2F^-Xi#qw#S=au&Y3 zuP@eY?*yC5Iw$AC1b^=*uD1)vcw@VclQv=yhB=)3gaUs|080C)^SFQ8B`M;Sz@YKLJGRSi?-nnG+S*5AZ+ZsE z&80<7mi#s~=f?~YwwX!pSdDY^w96R^>-{C0b}k)kpaEP&ScyEkUNea5i<0D-`;>X| z+&I(861jV|@Nsr#Q@WqZaAa!I5K0Ap^?eArWo#l`k|g)uRBS$rosV|FR_2E{{era> zdWY)SgfFj#ENa!!;1}Oki2OU}kle4x9TTA)^bz6I8E<8?&sb~LzSVQuYf#Na5-^w( zz7eB!%Jk!jN>Hl`^63vMM-i}M0=w|B#~Vbp7peo&ou;QhlBTP^eCI6t@0klF+=kH_2Pgr zab=mAzGZM)rVKS4WhNU@jWUT=C&WP6vI-|)&$FzZwG>N>fI*Ksw;U`!1IKxndImvf z(9ZOf7yqt&KSzu(M=LHeV6Zf(;De~5Bc@VYDA76plaO1`n<}!$$nxEso@luHQFfE{ zkd1srto2w+khzMAE;+PuwKCLO6K?iH#MU8em>DRj(*c=x>zC|K5nG&o#nN`Cp$l!{ zJ^k5PAnfbd7> zVO3}4liIdF8E22rp>lkaoI$zZMs9}Sm`JASoG>hZ&>~T9?=fz^wCuhG^V*2^EPpO> zqjYb{fj?%q`3(P;JRwLAYUz)}6;pXgEwq4?)8r160n6OZ`SMyFB=k7Cn&!YRlgXG> zGlia}oM{d&Gg{1GQnX}YkUsAQJN;;#sNWvpK1zp4Jrv=?>B^u=h^bE6;1Q8;sPg{wh#a~gkxMPr*r%4r^vp=elO!*w7wK_=q7o_7 zL2mQ!8}E**ijj?-zC!d@`WzWP>5_FkW22KpsWngD1iDHEF5}~i-(Q0cJ(S4>xHhB8 zjo&fMpQm+2YbSWM;QgOqs4!0%XOS?(3y&_uDL& zlg80}=p>?I#~XMdXcth2AY1t(&T`<(4N)Vcpel-q&hS>D#|1IwU}QnbT7HxcUiGLq z>W~Zm$ibAGpjX~up)=e{Xs=FLN+%+O(1j6K*S+cQNPG|fqe^s@qH1r#taEM2#Hyl5 zwg5W8{%UgL`)J!$g}vvIsr|7*xb55KW{+9)7y(DW)5k6Ef@SzL#)F|-8X|BZ(v90( zzDo%^J)NEIDJAI3jeMde7ZTs%RW-u_zcEw-fP-Q7jeV%PO6;2!riesCeWvuea`|me zlN>>~zzcFBt%MOi_%5Bpw;wKi+;pS(ex6WT_AgL*ux=dn$`W0CbMF+Tnz+L>B$hgov1{t0GhJ=T zIV^ANxz~ZVJ96ilh1~Jkml}nhY+TJ9l#(-`Wy!T%aFgSQ#Q7AEG|bPTXSN7Ye^H4~ z*bSG-(+d`0VRAv@Oy3A={oxo+8;Va(6&&UIDPJO6yYl=r)%; zLUz`91eq|>&j!TMy>!OjVQmmdS8WfHG-fYEqikp@ z*ht>;TkE%Wg(3@nv#QOxtkRwm-UzYco(m-FeHJW7SHv-P$`k!dRa&e{R~K$m@)?G@ z(5o{-&t07YT16YBoJliVc}{6L?Yd=eN65Lm2ZHbvwX;ZdkT(brQ?Ee#o;1O=&l?2t ze(utgZZh#U);Fh3Z=mU`ZjD8VAvp$SSU7djeF``GcXU+Ekpe3MOE1jNhFczV&tE8pxWglOt|iF0=G+M*ECh&U4O$rwvQ%5;j-EHCRN=^ zxEZ~~_B>%$rJV^evW#aQjO8=jy1rlZ?-gHPP@kJW6*=y3NE-?tZrehH3f45hRQq24 z=C`2(K0!7R(I#72w%m2_q@){L1)~i=%fj_um9dc$cs7+_LVGX9mogTRP zbAvFtrt|k4)4pe+uJTChFF^$3g- zJ0}X7c|1D!OL~VJo7z+UhJKK?q86AAWDAS%k_(r;e0QVE+P+Fj_Q;Eqa|Q65pCI9H zg2)w>Yh|G1uqcheB~oux*{({pgE=TeuL$dZj5DxKJp_Adux(}0=o60@M3Pg~9&Fa? zRLBK1_zCit8VXr8t&}@Q5!}6^Gn6JnSkyGKZF{>5@S9SQKbar)m*^^^Yugja1W1o5weJqgJj)U)#U^6t!l9 zb5_k3v(IKV#eZ*qs9#*BFBlYax#n!S*h&7WYn-@$;=PT4mjdpQ-82w_WRa1Dl?KkK z$sID?(w4_6lb+{qmD+1@16_5(ApRa)(Z7T&`cG=#5b;8~eDR=+3BO`NKowvj#1)BX za%DJ#v~dyA%am`RVClab%Qh*VM56C~HknpDt{1}#K&$2M)}B?Y;UmENp%phlZN{Iy zt&5^6)LBZfox_4Q^+0ZsNJA)nMYp{>1D}ZnY?(?6+6V9DeX=3 zY!9eQU@!$~jwfzIu74;6gNFA`Qo<18<+|zPCU38e4k&Fk;r8cNXLU`UjdD`Ap3k=E zXoAh_xxNDwA4J#N+qmulab>xUQZGtWW=qI21+In9>u{@=V9V}$rCy#XXis<}-YhU} z{}%JQXX|eZ%*br&HFmTt#OY0|em3-I6IVP&qHk?Wx@V?}#$^T@{%En2jpH+SCvi`d zVxk6eh?49ISjK4t0uvm*eCWZm2z_sI5vt3Ua*x^TjO#KU*YX7ZFlgJA@8Vsey{9}h zs}`lAIgZlxFmNG=kJI}m8i)2w2Dn#t|Hgl<@UX1w-0$D{i<7X7k@DO~`lC)a60eS?n*pmt_(p^D9}5K-E}9LN>}`&~kfumuaDVa?tT=q- zyG{M~{0_{^ine5;b1E!|W?YV68e17FRdNPw9aVE!$o5H_rULovII$TsfJW8)<1}Bn z^=oJKpR49JsDHrS2q@>Ck99@ahPGjhGhpKFv;oCcFZH`0EEu>vd|}3~Mz)Twb|<$R zE(?cKhsalva(u^yNrKxv&GL!xq2_1;l^D$d%)aB7K`OTZ*imTs>Gy12(SG<(yi z3`x2lQ7hOr+VCv;-F%xCYJMIK&@7gxQ5Jpbpt&kcDy|G=>YSdu8J#G5 zvj^MpCKE#pzJBz1nmhemo;69NzMxIlZ4`@r~J`B)8)O<3_z|L$LnPuv&P%j81@oN_c}4^ zAhgP=Y-_5hYY$y;rux!}b{LnxT$5Zyt7hpURFRqXTozlj(#9q7;c|L0oq7~i&oyzr zrSykXT%jZW(hP#aIuACJm}R$)w??x~%(-OT2J}eRf@@h`(FDo33yoNSor&P?gkN!#jlrU96m_*)lFZ(l9+$D)z+Jbel z=TFT!q4DPdYy#X|6AcRl{gciDh$BRM4}0m%*Hg}RbR|dQ50a%Nn%s@}x5a}%)B@no zvV+r7==Ii3I@zfGY9VLKI9gvi`g;<1#>FO*O$jq;JdCwmZbAO!{iqZ_8hq;5a>{YP z%u7SKHwUl0rJ7PM%gqaA4(%fx+!aljY=XKMlWACr&NYeok*ar+9;P=TaF&sSzQlL% z#D9ew>e`vvZ4v9(N7)c!M8nxay=aS8^EVz3kd`4|Xc9TC__frkP)IIYTt1UsR-<6t zQe@Uk`9z}(w>2V%(G+;S2qAZ=b`2~v>R}wjoU!3?G|HP8q$p?W+`Y3mK8kn1BJPqX z`jf?*qu|aWovwxI1%4@cQGXB0{})(=!|Zl4;l?Ha^l1^Pho6IlsiyY3FXuUGKVf{y z+9a|x4SG9+Yi%HZj9`5tZW{9mwlf*LEo%zPqRc<((-&*q^Q?;NjcbK{4r-xC+J#+z zek*T~Qj~0S{~+kbe{Ck>Pe2(OQm3#qi8qE*G3n_swdO;2SZ_X$UFmwpE58cx!`Ia_ zLL%Uq>6YdVJ+w|lUZ$ajmp)Exrq=oI{1idM9+dF zt0|eU7X|%Zyr%Wc@XI!s0X~U*74!?g>_S1Ra{#5}auhr@J6U&NGqvO1 zz5tsm-u*3yxM4~VC`P(67%;KPrP7M5H7Rizt#@^L{%Lv0(&|HsCODV5LdWD*``tmfRIK$ zYJqK9TKy|d&{GJI4MELO36Jv?fj#ndQ#Gr1rQ30%5UNIlvm892T#0IpCLII$!SgL? z#CtsI2}T5q5$zJS5nx`Wu3r_x4PK4@#^%u}V^tls<_qGTNUDCtLL@i4WT&djuw9hC zkeL3{5CNqJ|P#Q-;LcjopKT_5|}5@R~E&!#p-{a3}R7ASnH$~h5( z??ho6QvH|3lO<81^(6I5D&mRL_-62yOCiQe1rop1!%~C4e3%6B{RH<>;X<0V&k|x; z(7*UH+G-F1G7#1^7LL;9qM@u*g%Wd_Wn=Q4^6s-_*H$Edo$A$1-m2g_m)~@9Sw1{F zV)O*gpozM8s?~`NR6~)ZMy(sKd9Uz|h`X_u3vW&RL*5R*O&MxBBMG;6=fckP7_S}z zL{6ol^fK99}dvCbj*0J`M~kf0hY|5E&QmUMeY$!!hxu2~}67nhT@TB|3o#rr`H zL8QXwahcx@U8sX*>Q2X#$2t&0%p|6Iz7#X7 zG~n5H-_!g9{jy$0_F|-0-zVuQPSRO8czsVr1{awp7)LWu^7UKYH5W>UU@gZK%TOZw zFrBqygn-L7ZgM;VWia0=Erq3d2X3N_XpO;PSb{FbjCCD`e$hHpVYVTo3VB6py~Mh- zo<+kq=HA$Y8l}#4(C*$lI6hJjI`3#(%IcCZw}$5flk5m zvH$)Hr^Q~-robBf5PO8)AA4PjB)rl@YITNHRuZ?Vm)gl<4wgYBMpJiIW_77&tuxvq z>Kf1TVIBGrnRBXKoY%KkH7AdLK31BlmY(wYENuAaZjOsMsE4fGsu6`kU0^%=ILm|J zB!|i!L~6E>_OADLx6xi>D*VRROua=6F-&kRPGxP-wS3pBRkW*vAklG5&x_c(BF0P5gP1#q-C$B?{2LorW`_;C@*o^|BtF1Z=`t}`wV*I@#szlg& zt#-;dCkd8)KzR`oia-9>aw=&|f{iHTCX7JVzcR9W{qjaBYq5&~tHh9qjV3y2veb>0 zOm3RFTPY|d40>k5dWHol=E;aKJm{P9OB7%?xBE6zE7_uJH~DfiSo21Go;#T( z0Erpo;YT;#M7mjj8G|&JW_sBkIeMgDbB;(iGeQSAX!q8J0k7fHNZ;;C^a|#D^Nn^N0@HH<$3E%4= zHmCry@Y)Y0@GPoWm(k{W_Fi;LC33T*6Im&FOh$>JA6qkAO89650=hlQN$;-cmd5>` z-0W6O`TYNOVVzpFpCtAWsA|}@=MWsFM>I+TrzF;>$^&I@&7(=-R8+$+7?^RNsbvaV zId&0Kz+O>~QBwrMSK!G1ZoC*xcE{c|E7u^w&cz*|Y)Q>B%O-@Q1MxLeXi zYjr0~qhYDOnOHI|<27r4i1ms5)iiyT0$v9O`k{cBT&pma7&S5}9YK|wAGLKusO zS8I1#Lw=Cee35F)fCAj`DVMTsyPp%R)&sSLeqZyoeopaMRkEyc9F3`*bxOQl!rYc6 zlq7d3qf(w-34powmn#t$Cn9eC;H~u`fA*CHpE=r`H$8v2yF=1rh|r_X^H>icVLBlu z)d#OZpY?{^@}ZtllHputsoK~ZUx;5v(z@zVqkNS!BJOh~ohs*^25r@nSj2i7w3|9< z-(bpgNb&;iX_!F~*P>?rWBp5>xD3;|e`yBmMbR|Jz=S1HGQ`IwJ*6A6VUc7WT6EdK z)M~PzT0&vCQfWPLQ9->hKE3k8!2^HNEy<#py+212&oTt`S>V#d>hJ4(N0F-Zz{8L* zh4>_z6`L!axiL5Gkn!EC{&*WHQS5PQLoRvm)vv#dM2$XcveM+|(F50@LVNjKg^P ztM)^S2hvBn9v3GG5y04#_iis&5JthdDl$IKRO}X#_E6xz@XdKvCd!{M+D|aFJX5t_ zLIufhK*ONRTEi25K6~o*{k^|WdIdIR=P9!lsYS!o^Oa_*mFS{6Mp-CDs;xA$G5r9S zQopRnb?1N@l^ue~S%p&ke30alb6lJ3g7=0ygs_-mZ`6Hdss{1%Mc4`|;O_^Fz4p6Z zK1G`sWiu4;tP|!6&z#OQ$$?(Ib2HKJ0kgA+LkDXY z!4lX}?ETD#@f<931S%WUBdz-{36<}T%COn|ga-~jKJEJQ5=rxL%dw&|h^ zk?E^u;H26d1_Dn!V`6x5I00TNHy99(VWy_%HxyDq?9o^7{_rP`?!hZTMD(EZa7Hrq za40AvlZ8wtm)6gv(^7^IuVL$dqgMvp)6(;<)FsK=c`0}Q*3IHB(1emvJQ2JifM72U z4;?~N2#!i_(6na347}!1*~vLa9BIjA?``z3lG*{%-C`6*IFR_?x%aZ=&YyKv4%yVv|T4b@B&YYTQvy-{bA z$(rNKvZQnWqHfw|Ff3T$$J@`^m#%K0Jy-JqFj*cU*`d>Hqkjfw9JbZOB(Y(9g#djf zCO*_UZQxcL;1x&k=dd;bD*H_M6m_YvNwOcQ-wrB;izQKQ-1+4JQk=n8fG|_aeMWqU zLsnyKCmt9lS~uLAF1GY@ahotXHnj~@^Qre=kvVFYp_}t=Ay|Q-I#;LDzhkVgssJq; zgB$&DQI&qjlToyW8G@E|0F{38^P$5}ED=4)q{)yUuQcNO2Ftr%u2;&sS-JP7BVa%3 zvCS@>L1aF1?StEG%S25_mYaPgU$e#Ydv`Q%Z=*04PQfq8Cb!-RT*9vA=%-0#+>4f)D7vOkB z&~B3z4H57p@@&c?O#^6&UJIvOBlwU?V`K{ zM82wZ7HIoc&@sxJ(zsUZu!nJgcB1iAy);_3}5$TF(bKceE)6(4BtR@ zOX_@;#X<-#ph*aZ4Tl)?{9n$++h>6J5iS^ZP__W{k3_r8I^83>{z!eLKOPpXD)ilp z<&9m&)p`rgn-1-G&WZ6<&PI|=CshfLGIUK4f(fVbQY8>a>MrC;In96iVACv4aA2~c zIYEx2)sVP?dZ2OiCV6A`h{`2*Re>Er(tM~>3L=UXREd_s9t+Zcuj|KEL+DE=#s=^K zv*JUc@p$L@QcqCt-q=SCb8{m1AbqY8YF9;L!V<6COw}k}%{dd&GzIUtha2&@uWhV) zMh?8f?-u?K*~3vc`&X?l(Gx|qK(pzVCzpcl2)r^4JCOzp!6)2z3@FvHO!g!}yF8Ss zgLkLHlT2zjQD4Knrd7{^xyeaa{>orOz1WsZgX5S#OS6(0UGiO3YY4GCMK&K0_H?r^d{|zrcl_(*gXh&MC7p-fh5JInz&|=e(?u^aSQ72H$2JX3N_CBINt`af zz|$3RBD-%&VRA&A#+ycK9YX1UcW+Um=ISe&yIY+gPE2sy~bFD(sG?TcKK+s1H3ft{8_NJZ^rfMVbqtu^go}84M*d|Qf{bQ z(e&dg@MMp3*6#`LF(JjP*=4x+iI{m`J9LtqsatNRc-$e;FM>UtCDhTWFvq^uH7SXI zWpIZcIJQNx98hO#URmUXz(#Vul!Z|ga(xloRA#!Kz<(}pt*+e-u#Me^K}!VsMG7C` zh(-ZsDJI30I2QRY$+P8impdlkX?wM&#deb)&pW4MrBw2_n%>!R@^jjumd}%3$rX>c zFavp^NN=N$=Xx!)vC^tG<5-@H&PxbWbF*2>|Luv50H#ZqfpRHMX^4k;>ElpN+)07k z3Sn~dK&7CU>AOt9WG#Y{m6FA23`W+BN4y>esK+C~DGUEDZUxGihWNAnzs&N9V@S;> z6&)j?JWkT~EtdqBtHlp>&=RG-JIA(*?%LPHXgB~Ejj2FFqf>WqUBDcl6o=>>z_#X30J0V|ILogm`-d5x8Kw`&&X=q& zIr+09J*a5GLd?bAf8!+n9Ma8&6QWD*_)_$fTQbOB2?byS{Rq!4uj-KzMp=BIHo?*~RiVlkhY6~2j#aP2P@;y=XgU^Q7&o$+R zaim{MR;lwtjcTNVXiuH?(dhO8tQGf%8Z6x1orQ8 z)4(=6m?9LobPwm-PiWK)yHHI2@j51Zai{Ng>;_&q=ynQ+9~-wM4;w`>lzjXl6|_Qf zf2Vsh!7**3d5T2v((ILo#cv6<8SzJqisXfhy*8rDvbe8@Dq1Ztumj#I zi6=n&EdSu&xKLZj;*0mB8Rm%<-O<E#4LSn>rgO zip8~VZKuN6^@RnBKBjnCWJeoqbNzYy(9%PcX1_R zb}mE!+mgEqc>DKS&rUKEmzUvvdl`rbra0aQ;Rl5u)uIln^;xKwEJb*t$6yc1QMBO|hvzmTi<_M#%{`O; z`aoL%EmT}1GN@3nzw1#${)A8l^_k1qf4 zQRtemXP*s~r-k>TQW=P4ob{9s?7}}dJt(K6crUe;z+^QlhEspQYNS^I*aAuT+6xdzK2 zfP$_on9G%uAZLlsF+U8x^BpaGf4Kzu%rvW$LPzh8yU0eq4y2CO5)KTVEeFs3X$X7p zK$wM|DX!GpEuRbBM6mTxm-TIPO0(~-6`}DDfv-d;haCwGo_c%cZ9UUj<~AgtvzR__ zt%20KDSeg;6243#Q1%EBC?F;7Z_96+QHOAj@9uthwC4G^#E4LVKDGK+tL)lzVa@HO?XvMwG~zUT*6piQqZtap$2a=i2yUDI?w%nYR{ zl2{2~yjP2A$C7pgr!Y|4Bhi3`qq;B=0mQ-Rx5o2BRhpNNOFmFa!(F>OI`xq(j|hTZ z-PPQ53_v*?x-1FzA;di-X}2_kFL2YCHkvvm^OK2i`r?=z`PKf z<(x`YzA{oj)oS@@H%Y$H@?)aMe9Wmmd^Yv##0l}{KyagkC;YjvIsh;w%!TZpS?_^; zu1X5xEX7UXNK5#fk&1=XsNya5^it|UiLH3M6XZ|kkFnU5kmpM}BMtfv*6mx;5RE&P zZN|>DCa8gL;cDHUU=~Q;1sALV^YfD2D9Bz^V_tYUyza`hwn1C9i6I=}N$6(kT9RS` zG)Y74DsL9AC#8+r4NtIR=6J-466G3WupZuDcU`6W*ot9W5%2fAo7`{)^5)>P=Zo{u zoY-UuRDK>9%GZ=C!N}!ZwGW3iq`^aUek<>rJUJ1+_tw@|t&>1qBI&&GECsTbJw10A z7xkkXAdH{GZqz@+!CI#*(gDLGJjW-RCz-~LghTGrCu=Bo3!B^$>V#VnWbf0x(>ntn zQJ}b+TujcorC#Nrnzx(Y@soxQ3z<$0YJb7JG(B`hbZ8=-KZ<#bS_->f>gfxJw$Dwx zEjl5w{JGx0ObND{*!X^NvLi@Iz^590%xjC(p;LPb?N~WyDxt=-y3`D3$W1+9(K%~N zIOM7RY{4_K-#_X1>l)?#jV1){@0@6{|2z#mdG^0$rW5Q`a+(~0ZRu&5vUKZb}j&4V6xEjM$pi@`KM+x;u z1s3O&_V8n^N0b1as$GjHRMmWnd0vi^*>azJp>YL@4nr_`cKkBGHtW<;s@C;Egi%~~ z?aroB#FCc#%lWN@;8>*P#^)q#y^C11##L_zA2)ug)_e#aDobd@+1r{*Wg~a!tUeBl zb$=q2OD}HKPdpOt?lwr}6UH#N!?TXrc@=wkiidgvKLUy#n(=JNpG%nQtIbRd2Csx^ z@2R=(ZvHqim7W&^uD>IuxQjmruJr@^*(@^L^~Vh_^U zo!rz^I6^hS2fE;$l$49;a5^*V?+wK5Tr?)+CEHNCESUQ^N6iV>`FlOYcawf=7W-*c zF7T<4xk?`}=6d0wmAbnYcf5iMH{^@iN@~qn(4vL%lc8!kftm({tO$tOg#Vq&tU3-56p0 zAI3$#aK>8%ESUM~@LrtD*f>@*i)GIdcVC+hQ=($l30rLTD-cK4MBwYQe-zn(Ev9sE z9a(+1qMVyfRrj8f=K%MhubH@VPa-?2uW5W&0$+>wy@3S%??_Rkw|DyorHakf_^2jX zBiGW&PWVZmeeRm@5s}9G z)z{TG4}98uSbeQv5cunXVTOl`+ChtxzW|eTzUam_mn?CT{G0AKgU8y=8Te{3Lxt$j zokP9?BB(9WESJ7OIv1oQk{r(g<5M5FFT4?!D7q}|TC5rSLzV_RHnDALtD9IA6iesZ zq5P8GRY4N*MRe&m?`^~3ZKho8o{b#a+uPeiSB7R-CT)s)+8Hj=*0=l?m#e#Mufl`#5*?ZFqxfmZGXwI|lb^#D^lZYz;#OYf<3C88sv6CG0H$aOvywv=GpW(7y2dFY z@fHZ%QOvfES7=wl^1;r=luX3+&uBA?9NpHv;u)Uv{`=E$hz59dU%5yXBHw%@=B}(ZsVW^XH|XX} z#!~oqaTpvVw8!YTJd(z@l?zKbU=ve4rVC5|bmrk|W8m{!8_JwWL;#O6dkAAUmeroa z126oGblivM9jmSJ7Sep!7N3*#)3hDqd;l)cKkIh>G%tSu!7zB!&ErXvV3)Y~ zfzzWvY5&LSGCRn4dAhNqwi<|>hoVU4ebiTgu4I8z1a_tg_hYwYOeTlg96$s3{UZi; z5Ew2GJiWq?zFCUK?xT^+d908to!xA8kWPPpkjH_QpZ4N&#!K?ss-J3 zY-2oS0y)*`G`%6o0Y#J+rM8@jyHkER~z*cn~%xPd3*$~euhx0 zb?+rBsp5QY?oDD2y06+qWG9P54=Dh@o3&2Ud&U&s3w6ELTy+p4bUnMo`v2)euL;(LChC;#hBSHLv>m7$06QP-e;eLZV61;LSRQ7A znsqm39M}BpO2GlAP~-M0k9;`$M-&cixdDG4sSeH%P}XK1)4$D<25VhR<4JU_f^JwK zc*v|vwRQL7@b#nCLm`Y=;nZQEQqCAM>ZYnxkV8g616zAxqSvMslT zMv6dZlz?#;jJ{TH>?N5-?7oAF&)b2{T_kk~ec>>Zu3uxzeG!U?q(r*i-rm~I!zPyR zz^<9q+ur*~XdBhnKVCg&I8D_$bo!@__Y9~FQ-+d}$Hd%p;mJJZz!rtcd}kP_k+*nH502kV9d@7=(yf-Et|0Qb!(`7 z2PHpu29|`)6RA|^bxiTEg#KuCP2EQDhf_@|Ia9-j8%?-X+NQhvSTvQn1h2bXl97Y` zu24Tbdh~(~xb)ofOg$5fRTYr}F-VfC)9zc)I`;%3_<=ByhEt*+o~o!yZFVC+2B z+E{$9#|pvYT_2`U?a?Lq{d|USrsFR)V(9I~mn6_cb*t@hD2yd%Ub*`|#BLD;j^OO_ zFADB2U-mQ9aH=VF+DfU)%U3Ut%iml;sK_J%`O`M9qsD;kZA1-wV@7SV5fN*(j1oPi-$E8e^AZ!6kqcE!ef)=0 z%5q4#6J6CHzAo>Nka048^s&FC6F2e!aK=lcIt?W1Or{2kVgZkPr;sDDrs?)}tMA|G zMOtW5b%94)3o4%AjgczO0%gvYc3I3d&1Z%}qoU?k+37&6=#zIQ3?q><` z1`|z*THzK`rXH&v-EB16yb^R-`z9dFLbNu7nV z5A>uZf#_ccdT!b6Z+lz;OdsWr%A4Q}G`091^%evx-V6KqT8%Zf`#p=L8lOA2?Fa3X2@$a#_Rcy)E*R$4D*_I;cQ<9EUupx*+zKm=}jrm!&Xropmq>pc0r z05;-1EG-ciBY!KSYpdt~$36<{P*@J8z>d~U?{Yi+c%%8!Fvpm7&YS|a>LS>gJ z*>sZpKW2}!3F}+z{5FudgLP{kj_J>sXzE?FhxU?)UX9(^ya}9(3k733D6Ysmfs3>` z#lX9S7<1|&_WLRQYEoDvL}CrfLGqi1lN(7f-%cJIUvf{qStxe=;6_W`C?d#3!7lta7TIv%ofHfklb_Qq zLjn1pS~6tg9)&g)8fRbQ0rrm|ZgxrZ1pguH15Zw6{LdtTzPsG4Y6<*0$ynuNdJ;5` zIO&<`Rdv)u)M@LYoWBLDQym59%8=$!iOJCWu!tf2+th`WP`{N2Da{7^f^&&Yp>S_H z@1zi0>*Zr8AF0mUOs!aSgp;X;8x+H-*D&cB4HYuTqTk?FYRjiueQZl~tRMcrD#|AY znyiSDp#7iKa3N8jNyV7q1 zAsy)i({9T}wRr0Inzq~51FLMBt4pVZ$$WkcXtC;Ows8gO<8P8%1 zB(q};~z1wOazqZsec-&>R?!FNk7;>-1Zb%y<;$hI?o}jd@4y3aKX7^W3FnY`r1;2%C^(=XYZ|2S`5B=~DQv{ARn^$|+;)d|_!tN*>yDQH(MGiN!X23Td{ zj4B?jb`MW?4__$rJK-;duFyz7*-ChKoGV?^@ZT`vnSC_~gvi@joo};oWA4&j%>t*ztcqH$wG*4f$`RiJS{{h)qoGb+PV&@GOxZLK-eUHIWU#;4|oWi^w#PeigbRy#uVCWAh~iy8U}G6VGI`TdJE#BU$KQSXV;M zr~)w-QZxN-1{Y(1OYT7$LB0meR>0SUy&?~}5rgLxy@J{P~9ydutK ze^0g^%lzlS!B48Iqq2LTs<9ln6Z<6q%XIpJ-Wj#l`7pZL9%?Y4o*SZX4NmZq`5Ecg zVc~pewUAxkagiYLlbYJ_qqVMU2-TGR;fLl6(sy}yLGL{UuPewa52@*y`2AUZIs6RJ z1?wqp|BY(*6`4B&s$4c1zb@wWSRO3inp8y}L3$qkf;Op5ZkAe0vyGt(VLoOSUTfi_ z)4hUK%I4{=da0~()Tx5d$_&PH*Z1x5(ekX?~fP8@NIDC21Uay6*xmv^OMp9(xG4pzjQ?y_JExC5L8GSCPWNxDn5rJkgIH ziQ(kH0&-$n;rNVJ)EDdyC%_)K)c|b$)lLPSp(%djJ67OEQAND02A>LURH~pvJRGarLO;H`}Ac*w*V%OQw z3G$gjK9tCf=8-l%NX==dK@;J*-wSbG1DHZ1-Qvlay5od?P*L=B*^xp`VOw!R|t@-cqS#zm~w zs~^*`hHj{x^gU8_%7CW&5Ig!Yre(CFz_$17V+b!e5vwdJmAm|#KOA~GeR-h5{BZX_ zpP6NGE{APH(o{O;c=g-Ey<uK0+5caIQNw6g+=7%%;BODXD< zgCG|ZJ7cvN!-_1U!GR-reY@@1);3rUt0zETy1ug`zP*{wyXRRtRa$1Q!!2ePnQpl=#_uxQtu#PRR##-O z8t*_4VLO01&#z8`C(5&wY_JVKmPxXsX21iSr=Jo&=w7cesdt9|k+XGAj^uz9WMbk3 z^WVu-AD^y=8BX>0{9nC*S_NWu93LyN|JVOfzx=-x0dNKN&UmzXa`^v=ve7)-=sz%r zyyi%Ds=5rDRe0V8IJ)9RDzH{;0Od?TEn` zTcg;jDrm%UaI74xxEbh|4X(GN-UuNZbGoxNr^rXgl|FFh2rA3mld@)4O`ZAZU2-j5Z=2dyX5ox z`h;hfce#2BX~*~LDpn#gjc9^&fLonmYOr&?dMIY!Er@ity5&>O`vjwT8$AcEDt$}o zrjI!OSfJrTm{MNpI8eN`t@E%z!9Hi_J7L{Fit4&)5|WwiZ6lhfdcr0&+Q9K4FHb3mu(w#?!}7pHH(SQ=bkDIW4Ab`8L;P+1m14 ziAVEswp}~<^E*Dnr<~j^If*H97MRgC!=+-sas^AIuyPLoNv@w=uJbzNH~uF8d*GYZ znIy12v#H}G7SV^I+GGpe!M`7P%=9xt@-dX^KhQq+!k{Cnv}64_|HYx^mdW18+WZ(# z@d`(W)OWwvD%h1GglqQQY}z%3OOG;yS-7I^>X9DTK}82~FDPhH!?_X0IoUtwlw)J! z`hZOACJSWj`37)8EI{;+&H#V|bl4Ds?H2}_QrCtrarI}pppJGkUCsnqBVAd48Yv{2 z$aY<%>r@Ns?!#oT50+AtzQ%QGwc2pS>1Vam!l!DXs$MU{oP8sd>jnNj=Si4%XO$hP z;)h|WIxIz*B}thn7XmEKxu$o(7nk^L2vwZI+AH`PZ*-A=$nvQ>8!ivP&k(LZr3{H^ zey%+49PgnwHEm?-eOb%E6y*0q3~!F~_oQUYKo6QLEj|U#laXv)=lDzL`a96Cb`STR zt(&t!>F&x-kzjnm7wZU&R?-w4^OcPEYFm&-1@J!#d+Xf!+1BNap1v7+hD$xGjAN={ zyZUrBXE=yK_lsb?DMBxVccrxDoeT5QvVN}E{2=7%vg`Hxww$%i_9W#tHErDa1Z8}Z z!)St{y}*)xUi)-d_YWi--rmdOZ0G!;CbwO&YUg^4KJ|f@@Y3J;(zD-e=>nR!6r@3mcPXFA>d(xq4cIF) zi~fhLq2|c#H;<~{VeYtg63Ck9bxF4u4YyRHDvozegU<{l4KcmTVR@pkEFi_go$Mc< zx;u(7KbCiYu`8O5zx#~OM-hpIzkbY83caEKMwTz?j!v7Nj{iVcMV)VG72LU}R#BL` z?iN6XUcd3mnYi>+*H@t~i-fkJ3$Hi)671brb0iNOH0W(~3*gXW3|6!7{|kjPTary$ z^!`!ck9Fm~_g)eg+EiRd++N)Wazr?B_g#XVPOL39by3%jU{iCg3iuR_n+jL8tPjf0 zr_ovp4K`>aWcSrq52r)dEM)QV>*iD71}Nv?uCf4|sq>{E0T5P9?2&Ehu{PFaTvoXg z!w^Q-59jN5oQGPw%aHl2#kqiX$!9I?K+`TZq6K_gEbqwpsN2(WIY}`vJ)iVMDjZAs zb813c{#?YsLaWM#PlWGkU4#ApWbg4Wj^*(8v2D&g^4(yx8B{*jXu4AT{XNmJ$SY{U z95gc`;58Ds%EE@8?92(dBR3*RWpFCagqOIwn=2;L>49Bg+Y01wgBOt5qQiOF3@L!B ze0<==h_qFz&aW3jmEa-ckfX}z&C1Pop)FTBQ|DEXJ*hJI=}Xu%hRdmSWZyK>!g{L) zeBu0^3p@hKO=V;?xgJ>%Ih~}hr}<*9|d_&E(s>&(vj#u6I_= zIkp=%qg&x#a)xZ5Pw>jtA?zK$pD|kZ8&zq!ytO(j?=mOb&70QLh={ldSHq2fUyv{65uj<=Hbj%A z6k*p>InnTn)#^(GUdSB4 zQ;BKF1MZn6kau^@IiQuSwc|<7@0uY681oxN(>QP0k1fNFVkCsF4o-!`GLY48YexEXd{p9WanpIG3LVS z7XM9!cEjyR9}UD=18M^o_SL@a!JWamwxjXx_agnPgJ58teoD#Dr%L0|Y%C|=Ab_32 z$YpoGYFbtWZrP6({xa zOrLP_15PFHbytJMo;OmTm$J)u-3MoB= ztQY@txz_h$a0mw5K?AFxjj?0qC56CRxg4T;Wfg!ROhTJ=6}m=u!i|1d2b?3&lO#r% z7R#fek~H=spvE$`MqO4+Xb+%V>0P|Rce;*G|1j?~^A^##S);?h;m#*te?Bd#OWyQ5 z)v%)fghyQsx3V6BH(8c9xKFC5f~jKYzF=-E`uI&NEmi=6B|rEq?EBC9`DMaOkU~yxX1QK zd^Q;w!ni{aKiWTB>eZ`%fp~Y<4HnI|ywSyX_p|HY_09RRCgvrCr+vHq$1 z23l&h8Bx7A1D9<5Zm(V|ARv^c_eqoHqOG#HP;NrNf7{Np`m1!>5XqVG1xA+khVQ08sU|-(Pd|;6E-eKOJz||dxrf!i`k-oED zLW$hq-g=Y1@Ct&-b7xoQpq+@@k$R0POqRZ^e9MsD2v087LVTU-t+)?J@12|p_Ot)X z)BFEMa-G@T_fFm1Wg(2Nx;SI1yu}HprZt?V#%$6_q_rSh&vZZzpShP!>z0U=6G3x2lcjksyeW>A!?)~iLT$&`Pr6)EA1m-7GPIy?D3EhT zbupAa)Ox-qW+Om%!HpdP-03uQjo$<9YM6%&PVeVEP=t7bhW3uwneXlUVdUgu`^nPx z0K4QI9Qz2_Wu6`M1EH%Y#=e;2@#z z+WUL;{e9{3seqa**-X93R1#5_W4e%$PaE?Bd=BTSh>k5nuzQ{*D7knP@B`U(j25Ms zHezlm`!73JH^(}PY~$#06hcmjrd>vf*V?pe>D`nX(w!0d4%tt;M#g%6`sM1yYxOJ4 zA5%&Z%==o2c2TWz)i24ZsnJE)x{^W^o@y#sh;WXqstz!=j?V-;8ofw!Ut74ZolhlO zxm#>WtG+pqt&g!ZMjqsd<6|bpLm7Zp2FbMtyrw4fOWJO6J%{vu>xB>ilY}wi{4~!G zfJ~=zy_VF!CCIYPMtTVn!8wRL;SC$3e`*`W6i%%S4(8)m62B^}ZR<&^^EGcZCU%rI zf2Emnzn1SNA%_&$le&&{HZa$aQAzGxbBu_Ix^^r03^QuXr$~{xusNzLf`&zXf(BDeXqemgas|*naOkN~?2Ix z9gl|ZQrfhluS{)+UtE+AAN3*#o1cI5`)Exh74ur@wefO!{E0lb)mkjf@&x;Sq_#IG znoHvR^~o%`Dl*)dW$NN=!@(RJa=IQK0VsYO_MFlrq5c;Ko-LO!0x7}B(Ym;o83>=4 zA4Mr^N|i7?Y1@_eq~;UPP@fw4dIS={*kRgn~RTk$8-;Hmhn(y{4gNPPxc5vtFTN3d+GYZju$cGfiJz#*8;&$a*A_Y1}_#Hkx zQ8v0c=7h*t!`YBLr>vP9nD%eR4L|(8)S+2h)QSBuGXHH?8^Z_Bj@NUH{=A6h!w%p( z8X68`R6jy*FT8v{q_I@Vd6|lkw;``3fwez?emCt(D|bUGPqE%WJuiRrv*X!*y8U@C zl6~UAkS1u3DTjRdA=Nff{d}yGYx>qK*dPvt((vAy*7!!a-U!m&!rL{I)`6bc-~Y82 zye^${VJuM_5m`-C%?R(WgrszPVyUHvwQY4OKz8{%E3UK_n0w1nQ1zgvj@^WNVsun5 zzq~#CI#KOLMunZ80)e`{P0H~ZTis7XmOVWWn!}gF#SiK}NZI!rD>Uu@wNfuissAhZ z*AM2=G4*k9?a@MtAak6ZI>Du*V9{WMY&;xOiO{}Eo%8WNTr+p;=)9`9dw+cy9p`I{ zH&fa_rT1{(L;msIW1Q>!$tjHLVe1mmHUwE43cY4woZgkY)HM{nE6=jL&JjYgNg(XlL* z%$o!D1J4QeGm?^hI%)l0*8XPbT1v$lo!pG@p9+ULwJ}RIgF23!|0(SGV7_I;A;9S4 z_n&7PQykbG(6g4Qv~i9l8Fd7lpD3NtE#b^Y#zkKN zIq(X1mh)IIJ!yb3kMoG!bADd__oeo$vsOU1G!hq*_*y|-_-~lvQjK_;lH>TwjT0Uk z2AU2wX>mOD>l5ef=ZP_RM$5biF_Z$JY7`pI8lhXsP^LXQHoL=b5I2httDGhRZH>Iv=7F|uS&s3pzNu2ZuESIb>Xx!j@Z?^69L zYqLx>bbg;&N0;J9Pgi`ytWAikxj{LWdBkt$40J34Pa=l8ch*oR*D91566iRcaleU| zP&cduY8>9g)Zd#MJMTF?8sdhBtOr2TDw($*%(K^8TXhFp?Iqy3IbcuQ-1dg|D39%t z>x|pZ{kMx$hrT3{sCLO5E*?aMduVhUZHuyjw*_b41E=pQxPJJ4Bw~a!+X6SQe{1`X ziPtIBPVK&|H1q} z#!fCmjP|uy#}FuK?(@}B2P;WArko`dSq7b%&omo*@Bo;I7Z<1AtkP?Pli|-tP)@f9 z>DB62!^C&3;pg4u($Z(oFX>znxX+%?%zw#R31?THSA~;kLnm^Pk3&q=g2v@b`?A>;Po}DwY^Gx+NHkWk~h2W*mwBj zpSQj-3Nl?0f`|Zo~bjQl;~A+FdIp7vmXc8Jr`xJSxBTAYG{|QqdErBU+_y` z6Qd#O?6C6giOL&)P5sOK>&Eo?xwy;eJ`qOS$z+X9&4eI!>APMP`kcAmo+t+DPJ`Nb zvuhQ1eqTTTa2Rk4VSMp*EWmNjyGQh2_`qioc#ucApGz^!6gsVDsFb-$vP+YgGkvx= zWb;!%6bIgIw-fO2bX_Vf;=03=OS+aM-zt1(g52_#q*!Q0U&(*xVC5MVkz1v4UCVC1 z=x(Gv`Sb4jYx9><+KH0qfnZ&kmxLV;V-5}1JaOhm2^j#t<^)wYlEJ;d-SjwTxk9;+ zMYD-_zKHX!{UB7q_?{H^F10{ECyLyXN4+AkKW-R&tUJHt(r2;#ux${B{v4^*wgrBB zhT7Yyv(hIOvvvQ|gYJvQq7Aj|sg?EcS3j*sU*Wk!upfEMgnJQHyAC58<;OPkcG;uM zF=Bcb#L}C1G_iiYS8C9k;6!$Xp(njA*I=H;$`v1a|(C`?{` zwx1NIqu%l5kaIr-33FcC&`qhJ^eyr{8eL7D_Jruqm3LcH9t+B!%}Z*bc?!(isCjky z+ye=YFUh<-muh%$1Dolz=o=&tKOEyNg4L2dl>BCa8V6u~MA~B>G_N4yuJHz1+6=9$ zyB@xfzc}VS|46~0wNi+-{cZF&9%J%`TV_UEf}%O-iN6WU z0ongWG(LPC&sDTC51WDD-A~IxgPjle8l$90wRA`{unIpLbpuR9e&5}|(1_B_PMil1 z-<9K|Z|nFikRR@APL~!w4OUIiTC3Y7e}ZsZ=woS3&}EW0AD+b8Y1A__O5_)#6!3bj zTq!A%&MbQZbTX?(x9CU&K(4KFQ7CgVnVe$?R!P%RxX$y7(+}s%^;1oN6}W4a%Bj0e zyO{^-h;phG;X2h*`1yTwrS?SPcxZ3vIMV@tSZCULgRGZ(%VL+|qrWn|$@=;K9@#0i=1j7&H+{wmwkyGePhM z*qd7mJS}Zx0o3ZU1)hJr~J9%<0K1Ysc6*@otaW?zU zYg8wH6Qwbg!2RDZQRb|tF`}vU;|Z=_a_i8`E~S(AydhO+qZ=?hK!C2(7PL;(Nn z8G5psP0l?71ec!k|#+6r==YHr(Y9ky{I+4A=2f<9D#>9v?D z@|~T4x6$8X$d!6wsg@WNxDffWU@b4l17ce_?L-SlxPU`e0*;cr?dPg{?)HE3O8$F^ zzC(~jxkr>f|9o~ygbSTLPDC4xZE!7F@83#MGl17i0@WYrjzV zXmXx|Co~juTB&iBPz; zyVk4;{!k`V#mVnQ!>So|r9!!r7bMb8pT=0ZOXb#9uQ@ug7x(ORqQDIt!Id(19s#gM zx_J%E??<-Xj{eBQd9Pxe6iWUYf36)QOLuE!<0-CV(pK%uZ*k~q)K1;?TO*Pz-3fTp z&cZH~4Lxm+al;}J&LPQw?beaqx)jg27lWt*>jG>+_&)`o*RB`VT0UR~wLA;g8-9?gVggU2a0bC< zb#rzj(^{G3h=5D%Swpw$wC)y|pDWpd`A5{3OmG}$?XbtIu@<((`d{I%wV_QZTdooE zDvkzkK9`c)$hpjwv>RiXdvNghaZiml{i`z{9j56T{@zj@keP@qMo8I;i*`e-QV1^< zt_MIP8{n0+^%JY~c{WKP-n$c~8@86@f^A3OOQkRldtRJEt^b?g9x zw@&57ruUa`bSqNbdyd#G(b<+-xgnVOg``@XtJ_t3qI!INeV2VU2G%ne-i=Qvf!o}F zeRZ`berE5Vcj`^nND;B*t@D;+Omna^Ce>>+q(5*)>>(gpvdyJ*>ot(;#Eg^+G%WWl zl6AR?l`_|;`0(xQ%q_#*j~6Vsbb4shzh)g>OfA_^U;&$TY2H%kZ&yt;(Z8wPm7FZq zNJbh-tLyqSL4S%V7>3Th4OC5x;i?<`SyLm|{wJQ_Gjpo3TkBCs|G2nYqe zBzVb_$G}%7Q;4OE!lNdZrjO1Sa&UtyY>@Llm%%QatDwjRlVWKug61&e$aB?1xzRKW zyV;T&V~s7OKjF}C7nzGa*OPU&@63FoC4%iOrS5HU$0T8RD(P`P0?C@KXh?^2n9W%x90jCkMh9 z*n_r%au@8^Y2l2>8>W4`l;y@FxV>`E5GufS-j?6)TwjM>COmJ6$Px$=HasV1+uH6n z6{H@$ZMcweX2MxN?6!tS(#Z|mCUC7ylAX1viSp7NreiF=-qO&h>To_)fWN&p@@`u8 zJDkqj;NI~;B;@algq>s11RbaVZqarj^Ng_L$S*zm11RPvhXmYEXeM7`0kt2;Gw&Zl zpo0B!d4ZgtkyycqcN*L(Lr+?Tr-VG)au(>?#~Lg;hcTCbusj79;^}b$zrOCEVpA~< zlaft&o2ZN3)CuHw2>Cn0q3K;>piWb!l=mTLFtqi=o0@m?4tgKFkB5>5sZ&ZE{ z=aS#^xrE36r$4Czn(;ymcZ83Lo}&EKvIvuJA2apQwd_pcrXzfYP4RMhETMCO(=K(6 ztYg2|lJR{wHdeEL5`o*r#W=>pG3!>z`aUk7;E&m!rsO?2W_4!u@XTbHyOJ==g(S4A zBq|I$wms+8IkDPWE-piBHki0|97X~rVdUHLDPWJ|3wRhN`#+W*S!))>iuBN!Kg~`)QkzneF;554)AF@jUfgxwJ9neh=|S=tuf*q8 z7|gy|TR`^mc zQYSP#7k(V(NaW@unl$=(%!7;dH7{0cT)@M9$Ly;!Ec#4&o4z2*8qLLYKxn45R-_zo z$-2C|v*IsV=bgAV_V;l-&qitt8lgS;nEt1k39%=3;1K=Or;6vEe|)TVmt`ZLa)5&c z>)JC4;2=i3dqx4BY5)>bLP2Fw7&$SpHXC#0uI=+3?3JBm9n3v3aAQHwZP(h!`K$vV zu0mh9=Iq2c={t|3xs4nQ;dQFJbYJN1OAY*jWP@M@&k%SHdf(z&Xya>ECMBm@ZWY$~ zUm;gZ6p&J{(Iexrp#6Epic^ED)fH-0DY9bbH8?VH|Iq6bvnY}gGvG{f!-TKGi5pqu z)QTLG53%czbEDmO#Mx-?lYUvvF|^ykTr7Eyxga^FoyT@k?Ql7tPDxqRBl~i9T_xKl zP%Bd1CTViV=Kdp&w)RsEq8>4~k5}ivS$;FSt5r$0H8m5jPZ96si&Hw9W#G;9*MmeW zDk*eN1&fwrz-2%j?mA|iFm2%tiq3N+J#)s~47$G7ob-y(VYRPa+E}5p)tYeX2R9?O z))Qt6ZRDGzC<2@C*tWX{QJ&1n?g-v`UPBMPYAGJVRu8w<+gmE>xPU!R&Zi;Iw+ren zIr1pk-b2D~VdV#w4f>2;Ga)@s(W)Xa9a{YsR(zC5dv4psXt>97-q!3q!H?}Cmc#}6 znB@oT7;#I!m$HvAeZ69Nd&7JVHOmq1fv)URII(6D|0RL5>lwYkacg&&@|*(shU1=~ zW)SdF5$;`T*7J-_@7kvE31@E1y8CEtj@<#A{dwA7=y{771@`JsXLbHux8zwO! z+|;Fqcn=2z?HSFmmLo`Ev^rFmyDU zp1%!W&Xa?Q+lRCL9Ic5{w}wc^ZX<(UtlUA^lk>Gid@1nwYz1$sHP)?{^NtYXn_cj0 zw$n;quMPKF+B{4;%OYd`bwTf5F>%RP8Fab#+`;xzH#)?AHa{kE%fNjEim3NuHg1=Y zX1H0X`Peipy_CCMDSBZHb}5xi0Y<7cA-itsBOoVWXReSlYm61tG_v1}lrU; zF_ou8@l-r+XH zJFyfvB-{dTS!$*5odPE}RCV)6soomj504Q>VfRdZehaLE9puvjFYuONpblRXc5q?g z@>xF2}W{ZnVoiZIX`UaP@t_lTuq>CQ`BOX!-0Ld>h zCTZcfYIlw$<~pLpeMS2oekSh1@lP&#BFlo;LH-viwzu9+=nJ1);J&$|aS=np2c#UT zHfGPz>Yg^T0@G&_!GDTkUY^?tXQDPSHt;Zx5kVatYQe0omU~<&AdBn z!Y@$x=6Wc7V!y=eKV&!aUAoP|+US3R$_nmTGQ88twbcsKt}L1G5w>_~h7-{SU*4Ts z?T*~%GP>gh<~;#8byQs{M>v5_#kBqBKVy{S>-prF+F!Ij-)katS3iHLplka?OPfgc5k-q5~F%FqOiNTKfbI zzwy|SzNWD8IG#}|<9V-Jpfi33rlG~1e_6I5LEVKku9&z#0D=SbWA(I ze$`y}zH5Sd(nS*P#6#IMEV8bj=!8hxzy9OWwA`iAEXOzu@Uiyc=BIMs+l?g|``wUb zSQ*OXe)qj_j(SH|L9@c5JCO%>Hkq(%+B->;b{5mz(%n#V>Y7BAyjs*iW-j36^#iPY z9!itR9t3ueJJ+SHJ-Vy=I=Nj`$66bZZEd>IUU-i}f?36+n-r#^COLjfR{^^H0TTg{ zzKukD7=Lr}Wo=obqQz1T;(!nS$R?Bup4QspOmgLLMZgCCYB&WW_bO^X(GbTc%QaXp zPYA-y-C))4xf|*bh42aA=(Tg_wUbVVF$=2ny zbf&#@vHF}dF2lQ{h}u%)w`h;p1$*D-kCjAax*+;P{pj;^CJ9nUC4z3u0vj8h212ym zU*thY86h_F+E}9jPtESUqv_u3GBTsUaXJAW+;2|B$#I@OaK>3{LAzqdXXRo-cwn-1Z#&j3>sXIxsdi#GlYUvO(%uO`cZ3 zs3LpypuaCccHr&6YVC{|gv$8DR@~eEXm;JjEn&a8`|%kZrau94l$pI z*IQ*e@(9>g1qoyaC*sJv=DeW|u64Uzv#j@Bj3_yA$s`KJ`Ir|hp?-QKq_O7K)d(16 ztpsRD8|12Tmrl1OQfo+k!oVjQTujPv8^o|5O+Ytn2r}+pmxe$;(nL<4BfREZdXuC5 ztt8yH^NFRo$+s4_Gjju=qvnV2hSIKa0)QCKmVlk5!UXl!;k$!(cKv}1<%lOVfrKXY zuT@q9EC0LwH6qQDrWjz^RY7~`XiI$Sav8q-g*#8|k?Ui()=h`|OMJb@t2MeAci#~j z9J})4;|V%p?UnB@8PSX*h!*e8X8d`s%#n6udiVMnQnxbnYeRy!&vWpr42UV033YzA zp-Q6l{^-i+v@2NfsHP~ReR_Hv$-icF0GCpoQW}*}RS(RUFJ8Fbo%|bYtg)5H`rp6~7(94SyOlKh)K-LOy#qe5kC`$($hNkGO>cXo`N=;|Qg z`&u(1{;;{3rKQ$~E1kT%wKV7O<`=C(%C=iiMF2pM7vyO#rKxNG;_ARdp80(TVs%rqYi$-bBP$1HY@j}S6&xF3Q{`ia`6kCA{q35UPwkJf+Nppu zkh*crr9)e7N}<>~2Y*rPeD3(%!Cowzxg320=WtwK{6i>qNjR9huh_MbvcPBA(jf&t zG{tXx6jEX+4TB$>9YVbsGH-r1hR-#q+vW>Nj_TGZdG{iG3c|rQGA-=TS&%Y#0bb|@ zJ3vj{{~CX>o(ZqN0vLuIjFO(A`LFkM|TRe4ARa{av*TKawqvu@H24n z9S;HIJ3(^Te=~GbstuXX@Ujm`zpR)XJg;QepYdd&gw7&OM%9ehEwv^moyIgz9Y;Ro zjTcZJ+D+e_gz<`tZ{9FBW`}my&17pvxEEL!l55BqjsTW^^N<7^v|>Tp6P_7S8JN(J zRvvB~hPRfsL;}&`7_E+A4!FGb8V@xiV!=0)ItTUudV$7w_9as4n1G~X$m~6`oZ@xR77FjP-;SZ8=_&CADmiQ08{bPQH*m4TUxi7N@ zwXLibvjg(Oi}eU_kmERJz{F(~H$T{GTYLF;KzZN1Fg}?H>&DqD*pEU_9V{30Fu=|6 zexck9e7sBo&kJ9;@7|)($rhj%^cKKatYJ;rgkH{}LCr7`8qu%W&24wCpwbpt3;7YK zasJ9wc9C7@j$*Y~UOzw5oY>z#U(x1p5`^zJ$uTkEnD&hQWX;U~EfIe;r1t0_^0?xi(iv;D&%~VykAsTFq3@IQzEQDd|3KlD)R8obcfWd-nhg z1G{S=9&BCTyJpS-96#+rJk;s$Nwr#j}t{v6<0Ak@GaClekzLo zJD7BLhm!|8-#=vWJA&&qKy~bKw@HLi>Vn{o(T27prxJA&b2$HY4xDcV(cs)!UdicH zf9*;ajdj$(c4wcgu(QiE2T=d%nRfFp|Mjz%CSyswOm_~u%lPB0nRk+L0os$P%HRk) zZ_p`6D;(pwu}48b&)eJQd`=yGOq5v@xQV3sKdP246q`AT2JxN`IUi}7vdwqieul}&h$D}uGN`zlES1>yY1l8Df4kW6VA%8IVS>IEwZS|jyrgB zmdL=<#JQ7`&_8>7II%7brwRi?1_`#&4+Bs9ho;BOa{3nYoX z;U{>*Z3iQRd?u+oL!SdQ!g^@pCbYd<7eL*aG?m2I&9{dROLO4@8n2sq5@aS4f zdF%$oxnVH)e|Zx*vtoJ~;d2 zIjv0g<(G^h0%EDwH_6m0?Fw0SDjv4}=9=HM;}>i zP0I9jsFCb1L#~KB2^3u_Sb#rg669dZ%T|GJ0lZ|07&#Vzw#6$~z-25~YVEz0|5;K> z&GKzo-X^m$9J8U;nOwr=v!pLBJi{hVPocZ6iqy&$J74Oc^HdkBqHDyY^Ykhb1W6rOSMUDMYv!w%TVtApfSF^vus8Y zbdDdrLdM|-zsegMp}P~V!sfIeejfYYv_nNzszjUM@+W21rw#%FK%qUAcaWNp@8 zMfC)^R!V|tLHN;<+)=behnEBUQ(-tW6$ zkZazZR=e6J!gz>SoBtROUC(jLFx7}ARH}hoUWj|M9$!)x6FfREj5k&QMIGk;tQ#e- zQCI<2uV~CoFO*BhRtCD}WMgiX_=OZQtx$rL%PBJ0~GW)T%+9NmiJBT0A76-}h&>?u#w@ujANpQIa_ zl=0B=wTs#*Ww(0QmE^*?!R2w1Z&GfR3Jb~;4=AS+NpAvSq#Es(kp)~uC zE3e$G`}5{5N2x(5f4LX+d|go>BKL+8gNfq4|h zGT5{=%;CpJ%9KEUWo{i?j&7FO!p8E4nUJq>w}Yrso$}bEk;ZgJ z$&EuZr5-w)9)1U6hbhN zdOk};T_2Mg-vUuTH2c_;+!F(UAK4b$bUS!`3qJP2;jWsJa!~53v47m&oAe#Qdou|K z;>ixemFJiws{n17inpq%a>naq{c^TN$H`*NVwiR$8iH;$DpFgmz}FbEdaV;Cu5dH5 zu7pBmtYP=&b4S|#c~gG%?3q^eS);M3NJPNl*Kpgf zS%0skh}_^`VQ8p_G*$9OY;3`?iwP8e0HM}4DHkM~Nm5aXZ&wa}z>Zzwy!+Z(Wo%sI ztrVrs61}Quc$gVmb;vUpy&{)AN90-^@9m|ZAmP*lla-$ugViL>Y!vEI9f`TRjit5^ zoNo8;8+{sR3SE#5vwg3JJA~I3JrW`WUgX;?@8?vchqw2b(kR`i))S#oh+|Na*<#jk7PG^lrkTQYz062brFOVe>oqj(O+IIG=`+@!g7 zMPSH(n~XAmx|0nN@2Hw9mBR|$N2cb=ahEH8y+i$o+1m$gf}zRjerymi86}Z~-j$_V zHYxg%ZSxmqW11!tG(R4A0aEoWziKniq&N#Sg6xFW@EryIgy-~sU2^a0M7P^ zZz$p*S`vsc`+q}5WxGu=g!0dgXyc-GfMl%Dh8!mGcPD#oI%r%*} zL@I`$jatNOuCkIBqbLrtZ2R7K6hLk6=YiI7kV?-bS`@o<$M{EgE#h2eo{b=B6H6cu z={-i#?zZqUJ*6UmpT+0wu_qZFRBNH551q!B>TOkWE-c= z+hE#V=bf6<8tmV7v>cHX9RVFF4TZg4Q^pu561B;VmyGWdpPQxOK5CxGskm+R#N@3` ztxz1qfTyE!agN+wX}2N=H{^cmMaDQp}U!L&*oPL8QAIfAXd$c(g z9_WVTl&PUiVD5rB!f`q9se}?w7IlYj*`*cM5|eM=rM-k)+ZVqEL;gxYkIwHs^4nk! zrN2=P`kO|1D&g;yB))m(v!Z8!Bv1#wQT?CnttL6uz(^;FPv9;}Egq^9jH`8G2P{(VPs(6Z#-sE_X( zMf_W8;&J%*K0)mQ20(%)#qNh8#UrF^aH>xZLtxR@An%l#qkH@9$U9VgB-dSOC*>f# zan^Z#>ZhcGm=C(uB)bn}8&L4SMA%1MI4T`hy6XrpJ>7w_ploTnN3ug&k$gG%vsq)bgl?oRarG(PK- z@E&m;r$l|SD0|)7M&aQZbeXWvRP6IHMdh+&E@grLW9GpH-G^%JtlGP7;Mf*#lI~j& znzMVmMx5HdIXxDWfM63M(l*IF;+5EJ7I8C+8uAsoccw0_>dQ>Ji>eI#7P6`(4SH~( zIg(pK%VT5{y{D0q?_9{|g*s9F96**5@^T=(U?SYTzd)MyZ1Eg84D7-POp+9faQ08> z*L3i6fbK9RnktZlLz4wEaFm1NQ}A6EF!V*eQQXuVQ->zxdA)ptd1POmgv|Xv!`L{+ zncYzygliH1U6qD;1Zo0GQtzX9w}l}5Be--M_tmm{;*xD7j{;u5r=IAwvcO|E{ZX0e z^AMeUzlt*H=19x}yjB93urP{a+yf=%%pPmE&%xPnPLRvoxhpWZ+9px)xn!1LIRw=J zQj`{E@(MqO>3f}#cBt?pSzv7`gi2kN=t_JEua7dat>B0>;dV* z*rB@)0IyKPEwa&*vra-(2AV^>uuB57lgmkSyWI32$Xs;e5Hv@ll(O9CtlBwodbga*r>*tm6g!o;pIrWokfwQ!im?JiBAAvf|E}y2ZGj? z)9rC<$iY=Pbt){z-T5YNbuR#pGcD|SK8C9}raN=WpMQC?em}}UWDe7*9o0nDt z$J&^aIXuf^ou3cG} z-!lb(z4!wq8f*Kwg%c0ba(IP~!d3UHv*%SK3fu{(ML;Ix$qUe7yr=dU>H0Zh_7Xq~ z-h5syx_E)C4K22d7l`se^l+d*#W3UJ<&*l#ub(=c&yt^+J*vQe|EA6ou_8MM^O?uG zS8Z>Y(^cPp!w3&q3r?x6TDk6)kP!-T&qxk^P$D3uWf_J+mmn)-_Is@cN6H`LN&WzDei$ z66Ei3=c2r9cb0<^TwqqOeM|LP*)#GNBC|}r)En@2p;3Uyd;P_otje8EA{o)$Az2@7NA-DSOux|Xbe1DZ?Rpb9 z>guCOxZo%%EQ?m^lIU$6Y9%iM2#z;nVcM_p5~dWrmxE)Rc^~;We|LrjdC1<8t6^~_ zvN~utVxSG9t5oOzx_)_DUA@zQ!t^~&-LhvcA-0_$D{DKT@Mt$Nbz`}v$o7PKRGb{V zPjZ)NX6vd8>C;9hhSII{|Mh2z!VQ8Tj>3G<9_M=?ITHNlpqG8oAv;Kmjt71-)mN0_ zfb$Aj?;t?KxQY=6_EP=)7F3Q}W<~!GHQb8ROfz}T2o9#vEEtPBSbJ95H@jLGQ~N`D zr84gpYdC8tft`6sE=4q5sF6yaU$$!Yj=t=TH*?0js1Bq|lS4&CgV!x0@Qa$Fwanfb zm04s%D+JIfRpDG(00IB$#jo#KGaPa|!;yVn5j*_7bKtkG4Emzxe?V^dK-ZPsRp2ft z(^!WCgmYY;yoU37jKAUJ>c2x<{k%5Yqo*pd;77{wv=V%Hw=E8hJwPncccmtB( zGiehA8}`1v$}`y2p)>~&W1%hq&p)d88H*M=$-q|Sl2l5bIaDd^xVeO9jSx4vLu zzQjJnTB}3DkHXxZ-BsWJ&jjddY{y~G9vbxl18Z#N>|nLyMSQtuDbTK+v;oO^C^Kf) z+4=BD%Y;s3vsIl&wfg0BYp(^h8OITG#u`0+$b5YuGj<#VM#n2~dovC&AuX$)s2@}j z#lam^1*Lb^fHpbOw4kc^or^O3@1kTOa7dN8c9!Bp$(m7T&$v)kR&+pP=<3ukFwt8r z3zLEo^qoo^b>#{y41v5tSsUXVF`vJZY**L}U~qQMul1^q&oFG@3KxMx#FU9bm-T|g zRScmLU&Yfp+j3s5U9TxI;L;-`MASBWy$j&@Z~RU`BDVk}-`0E$Lyz^dFD@VwSihV- z`}eHD;m|(CR3C3D3R6A)8=qap18E&Y|98(GwR4ToJ6Dkl9B1h$QNWv={_On>*!EFJ zACHR6hK?W+00zT7r@A(3!zsTuy`^f)rwM5j!MFf>DzqjpaW5c6{|V|N0x!>)W5Swk zm-SbBsPKB&l(pA92Z@dd#Fq%_0dTAOXp<@kuz-W}J`~UFi1-ye+ev>v+?0131t#)- zEK|BcWF)N)t(jN2(MI{Kk&8MM<;aSo`rSTuY_}Ffa@OnY$M^Jb&@KTs8c^i`k00UN zoNmDB4w^d^!*B|FRfZ?1s_?02Z=m!?!KiZ|I==vx^NcOEs#<|Uye5AP<`4pAm;lrV z+^^m-u=oWGjp)u=9Nkow?Obh6i0+)r_0ZV^F-l^mxXCgN|yj0fd)Qe>;HyD?8 z446pIvcs&BO3)x0akfX|u8iQ^rAVMy)GPDii9V)T3FpAju`MR0Vbh!fV)Q{yH>&4! zfj5;&(mts+s?s!H{k<23fn&KuqIt(T_g1<{Xa+G|DJ4g#F&o}papNDM8lX6^Gx0K* z9dwwwjDd0yoMZ;*{v59(e|zD)C;u=kS>rqMIQlaz?zr9)gng9ecn7xxg2F`=+OA~) z?2bP`e&k91&C@raO?`J>0T~Rh*4!SU{uyooxn40x%kXAYq;&4Cb@+p04)lF+-m}ok zV8^pyhmOU*i(tc#lczB!v1yz(r|F>YdgITeAFfe^4;WBYOf+DE2}U;|L?fYEc`w@k zbV(hEK?S1V=#im9g9GOrg0N&)38=^Hb^T|Nr9c&QISaQGSC5bSWGv-jM(MvBJQ{*_R0h*Vb zi>meyeZBhI^`fDjHA)8Lp1sc&qRcS9OU{rq5egM-RWpM89@cTc7qmz-zJo@y@_{in z;xKHln=mzy8&#b1lni6FAh?y8s$2)gd#SmiEVyDg@8YO2>-e8gyvAp)iG4aM3XHcE%&>AAS_ta>105=$OSk#dj z^j&IVcaGfdtUCqFBvZv7w754gD@8%QPOrlbDBgXv5P~E?YnShdJrG@GR7ZDmk0bMX zmCHVq_^87WnFa)M0I;++YI^2=*R24S)EoHuR>#3?^ZydQIO#z)X3COGxN(#6pG?yO z6oGzHBNRs*yzfglsD_BuA6kUbnkG>BkxDUpfj!w+%T%554N$V;igHiL_gr)n=EU(qIQ9Ao0h$o>E!z2wSZQ{68UR4**zMI z$#f3!;E5o)w4O2*zdVDARP}WzH@`sDb?)_<&ooqBH}>3#u(E(ho{zyL=Sbn@7jSJf zX>snKpP|bFEFVD60_2OuLi%}@vx};D*-O@GI+8BZ|{qHnLD{QkrZWnzWIcu>ysqrLW76Wq!$@POi`5 zy}(xTC2bDT=@6(4FXqEgycx!`^Uo}~`z1X|8vD);NN(TmjKQ{UW(5yzWtBN zi8SCa+{4$^q!oV7sYcQ%<`VZv=7MshwG;2MgB4da-?{?&@u+6w!8V(X{`~#4-hMDU zjieToFc5bm*@(!Cv7P;2a>zf`7ukRbIoMn62aKv}{c8KHL3N%vr=$_lU@ol)UKOg) zW0Vzokph@l5z}QBHr8o*PwFCtY7&$6`xdMk-eb`gMwR}gcKE2H3XnO3f_31O2UsME z91hT9x7QN$H7Z!~Ly)cbjNBbL-PLq;Pt5@|JD~GYwX&)I2aSp6PjRes4E;q-&=(ig zebHTkfB@TXON9LzuW|5mK?md~knqF%kqn@xenI9OZ-sx^WSn)oFc)FnjP5z|_HPK# zd{=|`l2jSjBXCkAANaDQd$VoQ5@bV_8pR_UTH{;}$Jk#(IUFBQ-E|3QN9e}YbG6?h z+#Mh>VWVx1e5$A8Yt4p`U(h`T1_!-BDVM{;L2iBhCIUWmU|}ci@!F+wEL}v1xJ5!O z;s#TERc$*BEHDKRh1|Qs0adf& zgS|$_X?xhM`)c$0l(S#;TJDFN9FxPTE`~`aia^(=^l*HHs!~Cn;kMJV+iT113(MGNtGa5_zWWc%;qX{yChRHiinP;dLt=}#(Qdi z?NDTB_ri=Fw|ZMv5Y4;}R9*Q+&1M33JN4dTQBEzJT?MUw&=d4;&d+OWl>%^#>y^vk z(!EH=YPtqNshaF@ks8#!&nr3NDUJbvcW&dyJoz!@j7ag6!;h$3b2Ojah?GC)oY`3o z;lNovYdfzI9||{6m4e4J*Ms9jD3$>$pje-yH`FK#&89M41idW^P!Ondid?mYZ9jd$ z8SeFp&1=)m;drVq>2#X19#3YMEMXx5iP~AgpHUR)A^_ovVtUmCX&(A&zE0mR>EPNz zgkUBp2WUvzpb>3T#c1>%vkyoxODw%AWC?N*QI2B-mKeYp+MTc`u7RvPpKO3xT?4ui z#GROioD@a+ltdRdnvlRm3}&{z#DvfjK#a^J5;ZO^VkZL!A+k@%85Kq|J)avNNQ>gg z=~J}63C&=(iA)&^v@dCfwK=BNQ|6l+s zk$dobmF_ohxZ%74G8b_5dd8!%O0g-ZB=GDey{IkX9n6+Lw)d@OrZcg7?<1=u!IBKs z>()pc!0Cm4+IVHUnf|2mkXbU2 zqt5)6crUBCzEFfMDI!;|RA%@&(!D5i5ZJf%f=(l|K2-5wS#%tV_^4{?3APd~71h*8 zw$z~iqslC-FKPic7K$Zec5_*ZPwRRuM{o+`Kk^=V4#a_lr#tQM4R+;7+qZsS3zFegu@?=5lyH{Tc=C0&CDnV9?6OW0m5emgS-pCPh|T|GWRIs2*es6n;!tR zS2qQ)`ecdona*EHu8z2DAetf;W2Eu8$Z8JBkUPqMx>C>5S z*6R$qjRqp^O6Ch79skeAn{Gbu=^SxirNa$`G6Po*J5^+UkLf*(V;3Sq`_j1@KAJnt zEhsd~{B7dw1E6JR$1_dymMZ>qP?hs3gxb)G`5MEfph~s48=w_QE_Ri8H)*iYmqITUQ%&c!<60fxZ-#2tWedO^I2%$m zBF-%u%2B(BZJh6&CQYFsOs3pzVC`W$Z8ml?U7Pize%KsNxX=HaV5^NMO?nz8blebw zVPn)~AV_8ecd*`3v(FE;DURSo- zG`4sd|8(t&2Ei|=_ZFeyJ*AUb^&`u!gfcQUkP20NVm#R{l`fDdfh*nvm|X>1oEI>pLap{?een2clc!~YlmPqI25-h*!5Uz@>6|!c~VzdJAf2?tk<95 z{utc7vL1cQ5PJ1kE(TvT@XlxahcC+P7D-xO5^VN`x zpl0RmpaFka2(UUc1AuiZJDH^y1Ru_zxP+LN&~LJ)(L%B*{To1QjT|G}YJ_uH)sTgG zuc6BtrgP`GhUwq0K&9AW_F41JTes}P$P_?+c#0u35+*!-18*6`DWEUJ<9v+^--SYv zk0L((`i#?zwI{~1GZ3a``X&U&anx}cs`|t}1`;vzhst~Db1vMmfieypIru)I8VdK$ ztVX+Q0*^s_WC4+t%Ndc?OW|$5j3~Z0R9&*Z`nd}tZ+IKPE|UG)s1-K#f|pG>kKU`JbW)hMA;Zw(jWBRLqG(n&Tdaujn};w$hM9NF@wK>w z91eF5Iw_-}7UHuubH6SnXQ%)?s&3M}=`j~&siA5Ni^cK46TEQ4iIWL-VTs+=dleM5 z4n%{4fYS95s#k2~^n;BMo$msXr=F=XL&HQH`fcFHa=;kkkuF2U;d0j`TDDIy-ip`A zpZ!fi>EbYjWC)&nhau~%u$+jfL&SlR=bqzQXBHiQ1xXSu7nE_-kNoaiqzxS*_rUWS zVp46#3%t6I0hKvU(Fal1hw9vY?VTPs>?=%IH46ZCI-Sf;r|Ek++1+%kQGR_CS+8|7 zopi99?L^3(+5=RH3z^$lI`r3TC-u@;#r43)bLbh$h%>3tw}nb4Q6l0Hd-$rHB^EKD zX0Zn@1(Qn1yhrxX3iMzQ%zt3xsBjk3eV55|lJqg;ZC2X}GkLw!+-P~M`3r5?-t#u& zios67nG;?{)Nc2A52++EDl}wO6`GNGdJX$jj3OJ(Z76heA`x4yae|W`1<_yPsZSvU z48)~AVbllV8B!C!#X8;_SR$zSogcIfR6xzl+t6}Uw2=df%7_!4Y!=SkE}64ac?2d$ z{?2OdyK`*2Kg(Umza>Rbn>pQizjB4SRX0OTaD_ISjn#WkNYS^a+q~gk+9B!Yc)EcQ zOFEq(ueaSyNMBK@&hvBy7Z@<*B9bxC!emY!s=O2!+_b`UoKzm*_EN7SD(md{YshYL z&=tvw<1tEeOR>Etv2zJJD}5bDJ#Q1Ffj~~_^k{=bH7CL{d$;4Lc5|b>-RdZfCSj6i zrm5GEzUn|Gx|YtTHz|wH(w{Jf5V63sxS#n}>4FV9iHprbnuI{jW<@ZK1ZHkvYoGA& zhPGg(M);sIW!{(7$_~Q&nh#{|lJ2Pj_$3iJ60}?i-)_|8G#%|DCh%q0-d*DR)4uxl z36Y*pHa6LKIZbw$4rnZ&BypQ2PSAdOXx&8%WGu8Vf2`pqYgkz4ylg z=3@vQ0UO#E$H0$JjU-YV1L%>r7mM)(zN~4! z@0>(UsTnmxT>KhU`V#biX;u%L`)mBY`u!joSo((TJp@Bl?NTR&0XLY~ z;^^-?`?wz8*>=miJj?ddu!DTi=~kz4J1HA(rU?AIAxTg0Wq>F_W(R%P_GS1fh%x|> z6DOE!79PkMw#@}Lr;%Y;6ikHOfT4GRq5u--Tm%PEjI%6V<2IY%+jc_LPN+hhBv1zZbZ^yOTQR{Qv_O810J^2#%_?!*0vF*k?5o)&Ca$b#v zx~K0dDi2LB_1feit8+(TRfI!US%?>*au((HBBE`3-$MyR>vE_M5hi!&9FPX9paTR| z{s8!K_G#!hp_`15E7k|jZS zftyO~K}~(%0yD^9>oE$jru(qIwp_ zHTI2gS0izgVEAX?a_2`ra@!rn^u%k9g4QUfQP36Zo=}p2*2a+f1=ISK2#>eO$nzx6vn#lT)v&;~Yu;VMj{mNzy}+X>mw3Cqm3pHz1?9MFi< zoF8J6CHTy;>RUlrpb7=P#e3yndmCR#%o;`5K*=p_?~+jpgq?>NvRBH4hM@QW&g?kj zZ_Gv(2tEU_Ni`^*A?FDRXJDDA3tU38z)5l==$0JNuwSSk((mLDGlrqjYx(DrrsHs* zP1SwJb$4C7%oAF#%WdkPuK%qziG}MHw`XH|O3k_%-=itkL)?Nd` zzl`*5mYnQ+8e&`)^;dNVgJ$0@7iKA|%#)eFU$Khh0xj7ygXipc>E`n6SO2M==U)St zJI8Ni^Gm#qBt<|sTNY-eY^-_AwFuw$kS0S#N95OhTW7Bi@<$U-wtc-#U-yAbwbMOB!`r$+P+nO^E8oyPvu zEL5|m-WW@S`$Z|C<~8k)^)L^(xW@irpmU+TFWRn9B>4GWq>~;1JSV1@8s=v|AXy_V z)?qiyt{|vmQUM}?sL&`w5!pYvpp2~5R}|(VALFl_K7pZDG+Zl@1`2{5lnE5wLRSoO;Wpn}b4O$ioHzRbs&9QZ zddnC%GwDH@n*b7Vgz6Id5A>D2)?4~}x1`Mh%Pf|ZQ6VXkfTbgGf@HodK@JYW(;U=bk_{*}DW-!O-5h#T+s8G$b7Bp{ zXGWI`@1T5+Mft|%{&)_KKBN92nI=^Lk_1QAiQ zD#JF;Ty1)6S5?rmL#JcT8{0Ky)FL-b{8Qsthmb&{dx0Oc3aApXlU$>EfmdBmlsZex zh{+M8BV4S_JYL!=;CS((PNF^`y_K3GzOsS$KxIlbUljxS$G;i26C9P|DU)Yev6&!} zk>j=0$8sh0YFTpMc<+{wLx-o6D(0>NEvgl`{4ti8~8pC$0~#8&p7X5XI;LaeJn zr`lcD@KB2nt~1t$UBEg;|DUt$@a3pNrBhC?06EqUa#i3>fn(TK=T3uO1Frut)tm zyD}sybCTfMLN_c^9$LhqyG!3YBw7a760Cf@L&G&zSWYI z>bPBeiEnzwn?Bnm8goWJQ6(>~_c*_4O1zJ(4wn%cpx4(t-myN2yb7l8h3p89BZ~dW z>~K)3C%wB805CfAY^kViwx)L20(L^9Wrqrl=!?m&A}}JG*F!Dh(2Ubz#J#?@VXL>( zWT7ts6nHY@;M$mJ7~uS9m%ml8ESRS-vSlJ_M9nd%!XO@D;SS;7AFSdt2OK3J+@S^A z7Ai|Jz_UZ=r@j`>o-bsUY?{)1P}9(@(?-;`sTtScfF<(d_a7xFXY{}`01AUkW^FS8 z3@#yL-T^nKJ`WpIN?2rH77J5#%H(V8S|t2}KDsm9&$*hRlMOO;E^>#t2|p=P@j2^D z;awUab$sVB27QM2A)1usOr}`oiHT4xmAVB&m+AT)%Z#9`QVXwL0mKi&Mnc8YS z=qJ%>bE}!FT6`UolOuBu8KfHNasA2m+{(gHCY>XV>vp5dm)`K@K4xo1YUefH-g_bx5e2xs4nOHUgK;O*6fdf#2o(h$FRDl^m-3yT$Cm6L*@Mt$pj#6~ z&19+KV#(#tt2THHQ$O)z$@K5Y{&DGk^pEc}$L9SbOlANR=B*d83_o=5!UVbO}g1`H>aP$VW~Eowp-vV_|*@(zM8;sML)$3{jfa&Y$sg+g&9zf z51$CppQh9If;UfFHl4(BK2FqnccqDe%0uK-*jq>j*GnC5mAAT-Wz=9&gwI8(2&+&A znIrjOv}uNxR2z14S^6C7%r2v5L`=D7?*x^4>tS02wid>F@3;jvCHK58g5({NnP^YP%+()PqFl&D4H0PlLrQM3 z5L2ZUKy+IPGIYh9bsJ%17wV03eJL`1E!jfIz-a<2njI>;a*be*q=w)$c#LS2u*x8g z$U{gNib8bh=dSy6lxN@6x*aWqT6adt+t-uML$%-V%gyVt)?%_5%)sfr-P&>MbGh*P zyUh;LJoVM96Q@=4=5#WhzDMQO?-VjD+rhr4SjPztzB%qR1no2Tw2AgylO9N$G3A=B zCK5!Mi!#aZ;dj+Jl(Ivv4$ubu@en;|OGZ}J&O&hP7afp=m`kvkdNYLW?-`$haHygW z_WXMXY4ng5-KiG}jy6fYXw;(Zs00C0^3t&TJUJxCswdsNgB zVpR1P!V}vB7`|yqmv0~>*-sHO^u*`#4DCm+QI&l0^2&4*Gig zF>lxQX)wDRVUH7mmeYpVT73o+16M8x@>}_M(v2NauI*I6hk)jG(^Efg)PA%(t?_MR zw=RQzJGo|{u**8Y)A=K25|6O&M!{w^dO%k7HW~O~K6!#59Whs=T*g+!ITO^PK>wj* z55B|d(^|p9gU{ zfVszY=Z6|=GPE7odlV7U_b@_#T}Ta&8E7qi8sHjAFp2>B@FA2_YtO&5xI;*$m5SBG z(e$*lQ;){Tu+tNiL)?R5ud9REILYZa;T>J0&B|m>q=xj(L&5s@b9B7Koe6;Rx;)^Q;wqrNg#U}ItQ z%qNOBof&0XdJzxHKm?PILO8RKO|^Q&I*$DVmdBv;3w2)KERiL^M##qSwX|I?ZsVC* z0|_WYT-m1g&^uMeCIY-Gyb? z!+nht3<&Hf(+O2XfR+TQz>lPa0pFh`#C=BEhu2MW{wlO*)c?X0IRS$+EjqHto}fT= z%8r|B(+hkAWuTArI16@PgQlPH%)bGLRN)6ab=@xA!OZBg+cd2PL$12V^pPcsQBmfsrBpl`Vb5Xt_IG$(c58-g=MCsGwlI^@zXWCtqIVKoi zxCoT*5BeY_ou-;+p9~54)@-{z7#`b=LPZ24s3)4AuD{a(Gff}*aSLengJRZqEvVvr zwQ&7BzuIQps7>!s@ZZ@{?RBwiR0Za;O}M?OpuL(kXWenJmSmlI8nx&k8N_+B3M&-q zdqR97qg3NirGPMlRNWb5qN<+Fs;h=}QSmB|;>Dw9&x(pphaRpxi;xZ^2e~n%o=GfG zC7fw}ThnlH;#nxn2ziQ=QW2M6*8B)G3)3KbM=}AK6Y`#6UkSbdBbfXEzgBTOdJOZ_ zJuo0?AUpy0)Ln^w$gvy=jA7g(UP6a#h39~}HjD6%{p~>~ z^?l-}9-MgNW9pBGyMCHvdUHwH*vTDFD#$+b3K9ZirX)v5y zRpxWX6bJ@D4)hXH&ZJ`-c2;u&ZIm8&cLOi_kpsf#r4a+5(5F`d5Lr{xkXziWkD9hO z$%Nm28Jf22m19jF;IEOKGdEY_ZhLVEcGbD#mOZR@%|RP)%(N?{&TWu2;t33=2>o3q zDJToc51Pfhq=Y0G-un`eiYoMc5UVvK$Wsqd3myO|>HEAFS-`v4$BXOragR}F6;?lZw}oX@Jr(S2c|UfrGybH_TEW<7m)ZMObkJ0mGl*n@q| z0{w_)%blSuqo07~bgEvQ@M7ai@AT zvVJ}1Q{4?aTzV+D*;F`=k$!z;o7-vIbFpfMQmk-aGG*U?$`5k$Kz7JO2|h3+!-IHD zh9fE$jw*96g8>)k8YU}nn4DEQ=(4*IaLxfu;%ljd+7q zlh>tp)+~bRMw=VFF*K2?1T-@lYN#D0d$*cAVZz*;aB@VB$S08+e;OJ9$FQyBnIH7; zFncR7V|`#NFA>56Ez9#k5%l9r(=GyzXAn@td8Yai`H4b85&oT{WQeUhW3Y7O`>>8^ z;nVzgLHhT)RM=4VD{fJ2Qf@-cVsFyTtz{_b4f)|^HPY)l-SS+dl+m2 zhlY)bk6^;t_Sh4nbIE5DC^HPx$lz)A38{cg6R>yH!xiT{1DF%kd(YW*zw7DJe9X)@ zC@t{N8Qdz0Fr}fxa5~?W!m>uYvU7qcW|{>y?gAVi0g!BXhiaUiwmidTg9?zuox?;xgs3pyM?Uj?>?OaVdSZgm|c zjE!V?u4)J~)o)m6t6Lpr$M3$&rSs=b5MdF*@{L@ay=X=cbtepEgzAC<%)qS;M%9j+ zDSf9HvWRQ1F*+|lAmWT9u5`pQQK~Oel4i`W+AwaAT1(+dM9VhqRO~3HTXfV}r%$Iz zC(0*px1Tl}70@0}noaF*z4KP`bYeZXQB(c!TG?5DytB*@YWBqV>* zp=Zy-UJMii)zKqbjT_c z&zas~YFveDh;FB}KAIf_teHFY*{!u9yT@;8(9C9c@60~b*YBpo$HVtq6GQgD#c%_W z7!7JfVqx+?O#URkh0Ci?XMsr;AFmU|&CKBH^>Z=&e3a_Xq&qUSOW=vAO!oe*Q_~>F zgl-2OF^!SpztN1n&A?$^M^tl6XYM((J?Cg~$6f zQsvav963KkQBf2g3tAwX|71hK*%_w$P+!dioE5h&^G=WB)V_->OT|gutk`o7dso-N zr&x=ti1_WuXpbY$|7qBZNI@AAXBe*l^2ToUFLL_BSi<=G5K>ZIr2madj@WPjQ9!Q0 zFG_Rl)PT!g+0J^j$L(W%_PwpQc3_VUZ8yaWfamF|MD-J z@egAP&8T374*f&la9TKHW<ng(c=58;#^Qs#axwnmZM-UxT_>2P< zD*ho>&`fct7;O(dhBSMgpYAeejmeq%?NvADZ0%{)?u0aK8yxf{zxzg)l@B)xow`I@)A6wxwyu0a+R@>~#8Y+S)Aw zyT7NLcH8zJOl{cM1Dn>m)mufA9rF&B`vR<8ANImkO>pRr+8We3G2ZV1-81JpN{+a4 z2Ix*AU(BBR@J#3>T7wU^t1}2}Vic4j5ZH5A9UcO_)%2o^ea198C46QQN>i}VHV zKMs3Ls7XrcHilQIA<~%tanX!lgh4TlV48n2Y{|OUXU1g1whpB$3Nl5%bh^XYkIMaa z05+?`R5jx^puVn8V1j!6Mo~qE(@%K=YHir%W_%)-bGtCRZ}c$N`( zbpBTqJcafLwPchhp5kJ5LHDm-m4EdEk8X(ips!WqyLYnNIv!j%CoE1Ub)n~oFTxph z*Ur-`_)U=0}%MW#;aVgTqoH71B9ILX$Hgiw>v>#SubFq8?FG zf-nHcRT+|l>~v;E2|3KbZ;=fJrtf$%<77akJ?}J-NJNymgz(34bLdfV zD~*l9Y{XmN+x9rBZe0u5AYO21AmV7R4^H22aF5vCQFAVDFMD>`F0r}pVIGu7VsQ`Q zDTlno)E$M@uqdM+w`Eh;oBR>pBDgdD?Q&J^Og)FkIKE$S<;CMAH=;p|uev>Wa0UwW zX-?8Gr&H!_7LtnPMpgf!Kd~obdJu6?oz?DKR>Zl4q$A?jJU^=s?eV@ur|JMf-f^~~ zbrH_15{2NYGK%0?7UINoTPmS3px}XPLA#iTJ*5}W+C~1K=R#l}sR9*IWv6%|k}E{q&DA-71$ceA;diEPnHKcV#ZTS7DZ6NoaMpGLRB^FRx=iha1Atuj0_7H}%OwTh?hK&YJgqZw3K zV>*LlykzwY*FhEse6Vv1%3u*my*GV*KJ~1Oc}!z!s+s>OH#!zcw_}q-N_2Hm9P9(d zo3-Y4mnzo3&6ydOtrbJ5uq(20(aDZ_1nhbOqvmQLCd0~pi@eQF_gouF-}B^$mTE4b z&p0NRRo4Ni3L$e+``vA#dp%3B7I1Y26F|(l(J%y7^+aqTr z!`-oFJeYZ5uu0seowSkZXj$zbXto+jk*|D0a!hvYg;Ol6eHV+vGOLn4;N(-P`o(-HqZDpG_Z(W*<(L1cXJ^OSCCDu&T9bwRXx73v=r;( zm(XsZjz^8|XH@rr(W|%j#dti78xuLDltc{Jn_44X+3@fR%^`>+Ytl*RVJsc+3m#3n zJ(n2a4^+N?MuLv2%o{K)xciQ&IUX8OCr{W2)?{IYE#D z_I^6BZHjL@*7Qd7sMBs#rje?a@-`utaEo(anQ!cJ zIt8ogxLWk|Vj&?3UW!(@MP72(_slkk7W^VF1W20GU>MRu41w!{i5;|&IHQ_E+v;A2 zBIC2tyJB1b1}j9WHIo%=Do*(ZV=t0Z>13`z!?!q@{vKy{$Z3qR8ec*RDTR`oMSU%e z=|LFBMjmF#u)2GF$snj_Q4*L2I41+Wt3Qjvdp}+2w!-yz4IS9+wt6|ySUm_P-L@Zk z{qxP`U~1zo_x}&Z6%jX}HU#ZJ+~?h1g{?x&f@e&saf1VIV*JYd_LOI%re^WKET7>& z?lXavvEQz)B85gHakwWg()S$vwEEwuoKY4@kWkt1pnNr=nU*afbG0$(jcHQB@4nZo zv_Ps>e-p?iOoKdXX64+mR{or-?TdePa!1d=#!UM6bj<_9t-iF zBuQ2#p3QQ7Fb+E2dU&QW(BXGv6=2y&ZfJD!2|IKO8a^X(@`YUKPAH4yLfrcWGL5qW-atXubM| z;qB>IzkVKdeT_`;({@r!#ML-pWKW0;usC2@NYRqG9`->nvQZQe>^;UVjxjTsv30ER zH;`231Ta8W%n|rfBvfjApkjOW>m@f6IH862XV^iSpVH~?ArTkZcxLis%DZWa%=R(Z>VW^QDx!Yj*nl9PXFEdJOY*nhy z!HzyC(ly(_wQqM|!eLyUI|+4r(AW3H-MfJlsx6MxkO{-~hT{SmnJUnQ`}|XjBA$|Z z8u1)X&N1M)J~Xk;16@=*V)GF-d???<)n-p2i4TbvUulYGi2bnrHfOn!FBO1W+Kmlq zkVWMIglJBF26JW_*d&U#QL6I6(hW(_1?;;?b%0D?qhS?4p>j#Bs@Th9pDjL0MmGeBhK1^BR&sX;LT zHn=ZOI(&#_;Mg?P&OvUalQD$Qpm1wKQ+Ow&PSUv66#nABSkK1y5GZ0l@JP>Cv&7sB zkB0!(hCq2Z>a4JTK74N{RPCSowcH-B$ilgWP^=v7%KCxgG#cI(h=*w={KxDnB5tsA z$Q;%=6oIy2+7d+f%K5ySr+rKPwTtI$pTWl|rH$ovltyQ1UWZBA$Mp)GM5@&dIoF zL}m)e{ibx3Untx-RQ_>H@|*DwsmWuCzyHfrYPO#6d@=q`#^2{~n-UcEnh_{zQP1Kq zj`DU8pDVtE9KT9m_(oRo{m8@b6r*i+n#N6kiq3$gh|4`?j6#U6L4mQF zIdq~s(!2S$n8|qJj_|z?Z3bh<-2;;%iD%)AglbPC<+fIbicS6IzEV#W1c z8{OFM(oR>DYEA5i5%-J6UqJ#%LAhs#+9k zsd>(7E%EN#qn1pGd_L|jt!gG-2 z_u~($A#9Ic0>JxU`(LUtS?fQLG;6X(2d+m09z2@97#zyr1&P4GZK2sJOB}BW!P(&Zub3uO5wM~Or8J}~{giA>EA&=_brRnC% zu$#T~(0$%VRRXSiR@^~^+zXx!yL!dUKjZsn+PXu-QJ|-(vEWzc91mIlnQ6|CVJF08 zNtiJWFJbnU1)hFx4Ys9SHAvt>1C^#ll9-whQV{q%s<)&ujbn#2{&&A`Qhj|yk*++< zkz)6#)rrdMz%$(_5EerIX&T-V!2{oMc$n3;Kbsz%*-Y0TbypAbiq?8-{ba8{5b={6 z6bU2m@gho}7FIU`%aagjhawRNb&b>z%CBy{z?3gGlDeAqIe<4<{miWo*tJ$^^);67 z7rZwXDvCI6HzrAwp0rO{8?iLIhmlei5KS)jAi3|RZxx^a_k042{kjq9>jce2{^%^S^qM6_ZTq)7s`7n2>-f! z0C&U(ML^_!{-Avk&n>z@m>AfwCQ4kE5S!}RA<18isifO_d?SAgIX*~TGuCHKh@Q#8 z>ir1NMj}^(vj>_p#egoU0d{}Tiw;uFtR@^t^2}Z_cYN6!IxQbIn{3neu)eiJBinj8 z1CSd?r#}tZDbUDZ5SrXS7|jv6$SN>`jXzuXBP7V2G{);iGQ}Kt3*`I3OD8|(Zl^FL2XFVvd7Dre;9AL~$Qte> zr;hYWF=ta6Q?3I>dYH~p`YSrv3dARSD+bVH7xPYXyH`d)5e&2 za(}T}+@xI1U#qo$5pK|G!vTM@?n+Ln~xeTua-y!#=gyph9#2HbY^JhgN42L&! zE;(cTRLO>hV;8h9hZD33?lAlGX|31{fK?A1QZMA~GKATx&HLcOr-xqGO<2_fdG*)8 zRVxJZm`m#}u=L`|x7FAeXKe-8pVRn@=hfEOAYXGgEJb=sxaQYS5&Z$s0b*N7QWT29 zcD=0^qPYoMQ58p38hb1P!dH4lepo}hl_-gb&<+h2YRlp&`WSq-_*gX2GMEvH0qQv2 zPD(IRy6EiSZxfBjLlnW8$(v6sWQy1+@pMfC$h3 z(I1`P9@|AVXpBwew%?@E#FPT=@h_Tg@kI~!E=f}NCzJ{+Y(HA814D(AiUCt5OtNFPfs~H)t z(M9PC#hyiB$+a}i4w9zLAvH-YS*N+t-6n5O!6}ZrtoMt6 z7~*ZOj0NghH!p-+!pMFt86hA#xL6!*h7qUl`uBz?|aj8`g`d(Y!&grV(R;)H*C0J zWib+FxbSwAUJ1*9hKUlmlyy&y;7O!+AO8PoI=dgat>o;V4~8ZoLY$!}(Z?dK)@f>c z$64rOvC1Nb5P7l~#@-oqgm=7HNibw(VGKqd#JccRuz-O#7s_5F7q;^U=lK<3j+$ii zoHk%Q=c%ewRjg{<(wn4mmAEx;@|1Jhk8wYym{KazbTSrGq+4Av4!=~YD1GsvMYr%( zuN5UsW7(mrnJqfraMlO6?^D(RuSi}PwBl5`=yiE zKM1upVZ`x-6fhrhSkA)gITsIB!G5k=8_@;!-mDK%1$dGdA^k7!pUSdRHvrWednxTs zA^g?()4~tOKMpc`O-iLFqHMBOWNXFyMBaC93i+@*fq`g{wSwUNQPY7-dVPk zEIR#X;)CHU-buHh|| znlZ7~loF07!u3@fc!TA-K)?R9H<8i4C5rl*DC#SnU)4(Ywz}Uu47~pJHMmQd_*ZcM zdLi|E$NR;%BuU8ma)7ZW9dxTHmkN4o&{;-B{p^lAK3FOeXo6?^CJv*{yPGngx<&{RE|T#%B^h>zG};2bxd3_WjVo*>sr zyfshDIrlS(E1`R+=P5ow- zv|W&Beg6aRHVi$qhV@*p+@cZJAb%Y7QskUi@@AU$hN(cCgukxSW@mRZ98WuYY^bN4 zG(BBjZZ?-18MPp?#{M$voFpkWiMctCf5|Cn6(n6YY5fmxBvDd|k3;w}#zycrLTI{Q zHd6|L_FYB(-Tkp_n%fOW70N~;q>N*8@KG#}Lkw-x#DjK_o8to!`Rbi-?kv@Xunk6R zeS~!6`dkH*kpepwxeashAe)xCV)*H$XZ zLUC0Fh{v7FWqiCPXL2sS06lWFJW#;u(g>}vGc}p3~4YJyJE_h8tXDR6P07ne; zwY@kUhZ%pM0khQ}W!-Ch)=9%(=s$6!ojX6*n$dFjeRF|3(PE~35y+PzBxC`PrCSO( z&00`0cNdKNl~(QBHOu^c$^g6BjCmF^0_v}6+Rho!QUYi3Ht}_r1b8-*>#6=E?KisL zY>fNU-Ujxw24MGQ)_ei3Uudp=KW|eSQ`4mISbhcF`KB3~&zlgrhR_sA>!68Ic58E2 zccF~M{XzI^(s*}dGgFpARBEameyC1E<$es9=aocy__>lBu&I?gBh)F8$)3Glg4RVP zm;CZmrJU&22d##y?(jcY{pN@fZO_kD8fca0{kb(lw^z}?+Y<4S@NR9rWcHt~ou)8w zNGgTO6VP${EoEdo+m@or-0^2cX0s)_nq*g6BaU?fr%*i~S&K3>HAn(72ZYAwu3^i0 zwq3b?7zezsGabgI`Li0SR|5U@YEXrL!##5ykoyaPy--aqu>LCND`|O(BE498bC_y^ z784u>9RZd366c)=oYGz&!O0`tWx(HVsmCY`FJZo>Z#5#FkimSl3ic@_rtGrT%PK9B zq{Cln+9KLkL;O<6mSHFoc#a1_Yk*_?4y1?F+;40-1W`N1K@W#(=*?yuz_cn^s|j8vgkB=m)~9%~mz_+^aAnZvv+$ zxJ@Od4bU~mDXo>VNp{M>pXo|Lz9SWTG$&!g#SF=J*5!)%Ms4Z%8Kyr%zTbah%9|b7 zqAOJcE$$rTGrDjTP^sxK*1e^&nD1_NI@a=Xp{O-~+-)W_GxAs1#SJ%^1L$Sqi5dQ2N-eX?+GpArz+gy7h$iB#Cfy=Z0@dKILd|TrtkEEo3#YRm>VymV< zbGB;1Ye=&gG{_@^n0hQ1o@f!Ny3g2Zg^9H zJ?#&{oU+1eF?*}t;zqe0lr;0KI=Fazx>#BqTlD%gG>A1e>dusS%>t=p)=2r`pFZW~ z1m!isQ;?)JF3fjUmbJGoOxBFW3W}K1!Z0`7rBGU@Vat~4qsr)T?AiB zQ1jK+!{cYQM82&7&3bW;F?U{jLGKaaFWY+6*8q;^MphiuZr6@_=2-^&+Kb=lf|usJ zMg1#&t{+N%;;j}BA3dZcp&daj3pVF0ZHc!k>QeMM@ zkzGRlA(k6^c}>S9gLDA&UT812E4M^60ejI`)VE}fFCAoVY65OnXe^i?wr3|p0UDWr zPuP&pQ6R;AMjlH$W3!nkpG+Z}rblzLM+4Oaxi>oH^&F?I*2q1r3Ftj(4ja5}#&D15 z{4u4N$C%=AQ&4zm zyrc4!f)p=fIYmdKfrJwVZEd1l(21rARwL6{1$T9a;Ql2{iu(RkAI&?Gl`o=*(s8zy zdbl@Ia+MuNY@~$TYEQDyz3ihm4UE`c#dyeMq*B(%2^%34EQ5ab#{)N`+SBK~BOA?X+YnI?1YmVW#w zhSr)c&Ojg74{yxIrsI%QmSfOsYC^OFC8Bm1p;+g zeLB}R0mJ-n_Nqg9r$Uk)R*T?v;RC0vU|*6kyVRlfx0fY!l||ET@KKRJ#4{l4zizQ8 z?)5Pj&3R|c=2eNCD482PWroFVT(1(svM2VHql+Ek*;K=)5(kz}0T`t;J;0XdphR8*JEJx%l=}qJ1IW z*0xt#QiNG=Dn{DE=(SFFFNTxahQ0)Iyl@?AKy&pKX@AHs!Q4_czpne|^_X&s<8Nas zC%2P>@)OLnhp=-#(n-J*FtIa7UYp*m{%zrDsT4EG?c~7%^3WuFHVhG6<+(id1l#x; zD(m`Z#S1D@mBOj)kG_$P6QPf-O%J1rHX;yuhljoitcR!Ey1qqjgV7$)^|u#NNcvHb zBCuoLm^Rqwf>KAg_k z{04xu1a(ZYc z9Kt|hwTHS8iov6k=lF#+H=I+%x955ls>SvEl{REyt-wXRtrXJ2nYxx5?yb*#<-Tn- zRz206O6tEOoi2o@E59+*F0*cs<{SQY_-S_YWrDj?+-;*4w9ViW`3<)ld^#h>+ht>?m&7VH#{=Am&CmE8z z<$@Y7XvXi~y1LRMC2ZrydMxq3^hAS~K6Ifa0xH>{j#ExMZ1bsEq-_hPoU=hG$C@}k z>1x3g^UMM5y#%9C@g~JhPVo&fzn`SmX9iOl$FfYtl*%!k=*Q*fL%w#qjDhTTxC_6% z(+U2XGMA-pyoTnUNkyp>ldbyQA<~{k#1P+)YsHk-8TMq!QZ+-MzmsamMcbj_z2Fw; z{sSk?E@qsvx34&Ul4C{E@q>=_X8G?V#91QMO9}pSR633s95%eRW@|(zPu8&pI>3%` zDmllJ#Vx-F%1`G(#|oO+X$VP$%+SvkK@qEAlZJ4vbMr{20q&axZ#9-B-kU@b{ZEtm zbp~w&ri#{joxM`j^e7@bzOA$lZml^-p&|7N%D-{zSob4oni?3ugT0jv1Oq_^$fSWYpf6jK~eViptre~iAY zNQ2i4BtYGh45zQo;5Ww$ITHY?4;K^=x`^3)MeNr+v{ll?56QA38=l4PN8#R%-`r~3 zCN7n`Qufq=Tdt~QxvHfEmctOrYA7z8jJyzv2xpxf@vf&j1-@5v(OBOlOOb1JI@cHU zfQ>L;A6CF&JxX{<2Bvfg=3_R{W#w#S%N_l3VxNV_b(Xw_-_t37zx}1&Y4MR?mLDr0!j%i}+S7nbZmHXF`p)a#zP90tj7NWn6|Zy|Mbt^6u-YVM zw6O&AjSg{^N~ODwhpIJkV2qQgtoil!J>(`oF8`grj5yG+j^N@w}PK^px|xerjZH%8;7X_ zgurB5G)=`qw_hS8m^cdMBIe|aF(LV2K@?<`EJ4hCm6tkO9=>oFy1ui$2bi`dk2=6D zjp+EhY^5A_tLU$pS;k^5R&Mysw)o zC^f?2q;b|Gv+b!#?qBI4^$G;N)#@j}=1tFcYk`sTrA^{?GU0xrD+WvSGUrM+=gmLN z_hxo(Nb~zZip&OeB|@0jMj(sLnUyf#*Oo3n)FcK_?O>ZNwuamFW2Mv0nk4-3&W)+C zl_#rQvYf>Iw-?CDi?uzw3x`$rgElvdKwiFGlX!YmSQpmjo&;Wl`##w2%N(crV1VgJ zTU!S}pV_hRv+dz{W>nvrZ+%9gYd)U)4Id(`$P1+17=29RWif5X5+Vrt+Ar_Pv_euN zG{MvktHIQtiOyEczB}{wvnqk8sfi8Uz_)IzL8_X;zOc9GU(=J0fuf_+ zRwq}4JFDB#xDLuz0s{%}*Q%F*-&otC>cc=5l@$CEbXV$GXcUP1X^|TaZEeLPIO&^+ zgjVON0_<>|=WFy;1!8Y_(B@zr$AnNz`d6gn$Lw~3dk^wkWW4erWXPqvw&hAXW$|7j z8(+*3C^9NiTcV7Rw&)C7at)#caOS3m57RuewbL5%)-b435+p9B6G)<6zywH;>yuJ~hnj50JI&1@w1LKs9-T-XOy*I&p2GLM+LZ1s;_VgBH z*_ng>G9@UlTe)yDt0EPp%sZWP8j*dmoM1&RU9iGp-@dW5XnZO_NFd`(JO}pP9&lz2 z^rqpd`%%=LPOdirVDpghy)MC69!aWGp@Of~)S;s;l0Iwm$WcqaEvm{1Vqb;onOJ{H zmW{ZNj6c5az9GV5DXa8LtP$Y!+`+oDND6LQv<(QNc3nS};X$ zHDB4HFKej0qUMA+$V4|21p2qJehtwlj{ zH8vWx(NVH^ObGWtr=|jOBZPSmkMbVM#kcA zzWU$CizUYf*S#Ygv(}wzLw#`2uHJWYVnp-WDo`22iIhurut&pNi#qp3g57*X@XIn5 zWg7jI%h6W0zPfn>?7!OOUB)3x{eTA+HCy?9WYSwFW3K6H{TpUTj~&l4Ne`0wa#p)f z6SM-FIXAN1T^Ft_%J^F8-!x9{%!h?oH@&U<<+vqublQsF0ZCc0nWHt{EAo3Hh?Afpb*jtoKNCd#x=NhBAtGc zO4r=3y^l>@t8KAc?J*i*to~IaJtkhgs%)F0G0b!!tqNJRpd;pHnZ+7i{k351?BvEY zy0v2<)6Cz$)Z@8b>!DiQ|Iqh*-q#pAqMPhvvpFi^KN*r+I+3jUq3? z)S#W$WiZgk&@4QnD?&eNKmUI`z3-14$C3V-S(!{%$t4!2-K$YrS#rC&M$H-VH1d3L z=E2bJnC5k#NfY!MCm3@BYDQ=9h$aO?!s^w*fL?fk!C|rY!nl9<;`3z7O-}#f2zGZ= zL_G1t6OpI-C)IGs-Bg=jS%m+3(b(YplV#VS2x4zWY8uW+(B}GuApVk)ovqMI2g+9r zZQSyI^kUd4xxxy0r0Q~>?162jfKkJ|DkDaIQH2`q*F1}!E5dXt)?wec39e5m&!gEt zq@*|A`?GJmp1D%9*?@D`fZk!#B&$rwd&Hi4yNt)J#mCjdsZHd*BvpZ{=0^{n*=XEuW zy*osuaBQqwCXbiu@DgyQy?xf`@@n&FJ~>~><2RelNE6k5NaFSbbY~%47Wt016Yk~X znc0M7CT%NgWM?Z*e{w+xiA)IBHGz#)!k$JEEjZ?VwtGXbld%XfCxOmTGwS zgiXf1tDNl8^1HigEKc#$3G}CIN z&kv{I^#zc_Q=CG=0md=plJY+IE_u(|w9X#la+w?ejvv;ofu#(V~-SDZY{ zq2c4?$0z&MS{S~jd8pR{@Kbd@>pz_N&}oc5M9BKIf^`?{Df|uIC*S+d(`5OVK^*HL zZ+8mVoJz+VvbO-+*XpdwuVs1#e6Q(3UfDIxYI1hm#hh4|BOZ1rI$*i(L}O4kDGKm% zs5?nM7%1X~cF>?>II*2Oy*U4zs|4w* z=`ZpxQBZz<{LAxT-mOCHrg0qA(Haytg^<3iZ!Bnk4M-yMF_ynvM%D%{FVRJsxrP6{ zrTHDiNH?npujSc@f_2Rkvh~cnGPKILasFhIEQ-G)t(E|a8(*S@{xXFEd%F#~?YG$4 zXTWWMp-jF>bicfBhUEW{;u9^Xy{2l@*#wv$>R6u4rUu^NZF6}3VtCFk1(3MIbs&8? z@!t$xyjB9g4w{ey#o^;Tb*wD^s^l~j_e0Y@X(`j|ZlX8My=K>3=?sp4p;AX0DJhi( zTj;8`DJOz?;%`oZrlr17a)`MkMf2H$Mh)l1A8}VOmy{Z`<<0~HQ zM{wY%V4iZ`PbG(RvE8ej6|Bp7o03P^;#+Tz?|c7#DowXjeda5@zKFQ7MR?M@mU-Tq zFzST}hNB_rXtGX}tT4SYyOvblE!rQkoIGA#_A!Fn#m_MjGZaGp_|+}&{z-FWLiwhl zE%Rh|5uNWY>6C-eSsc6gcc?B4>@cy7=C#J)u{mu93_J&3VR$~BjJ^t6-ZJ$5d_B)- z#zs5Od$n0VMdqY&2g%mWl%Lyv83`eedDLGiCi3TaIry%x(LU2qM^bS<3D~y^cbq-a zLQ%GkOl zSNrK?y)hf_M=*JqtCpGQE|s%_Le>m>DL z2k8%CtVfjuZA%Mb zjdFZUVM{-uhBZF8E`%cG%=8irXK-ip*s>l8epRga)@~7gjCi%Ye$FI-QazshOP-kV z>9)w=sOH4V{`K4}KO>I*=_@nZlN&8yA~Eyr+_4&xn!_~<`_tdObvO2c=vbj0EZ8f@ z)2{*b1c-)LaaOh#I2T3_wIH9w&WNlLGehrug`6fI^s|(Ad5=1GjHJ3$0zqS+LK4u; zlh3%us08Sf_q|y@CUJ9JYC^Mf)Re+!_;cIA~#OljV^^nDs*E~j9>i_)6UAa-7tJ>WX-qCGyd-ot`_6n z;Y@(t&-@rl-lj08Ah4Da$(>Y1y*?E=y85d8;Pk~kf~wxE9&Sz_&6|_wt4|@e=5maJ zLVKgmF|9U)ot;C+VtJyuQUF^hEWV%3J62Ql+2Z?okKS2I8La#c?A|sKMmAQ# zU84D{2~gL>6Z`3|OdE!nf?9^bK=T=c^6g;ZBAp-95H)-UCX{M2=Z#sS)~pDxf__8L zKUv}777A9X-LN(W|FM`U6~u2#=0fyd!l$XOXS|3W1>w5&j0 zZJ%ONaQh;;DvGsAPM0h3or{Gi@xjdyuq}04@I$F5iqU9&eVsCltTyY^ut92JLivTHZ|sP5Khs=mO!#yTQ3g%b!ZP`Uji>bKeoF?!=%02SDypn`X2KoynjIrv_&pL#8y+E@#<7Uo`FQG2=C zurP+EUkp#)bk@0OG|bdo*&U&=eG5>Q4;dzH8*4o5Zb49Of4y6@s9xpESXL>V=&lZ% zq%>xA6jU$stOgt(mX6GfX4*bliUn|!(m19R(?yb@OIn4rQk0jYz=z#4V+Rc{|HNOt z?~_mIK0Jf=jdGDzKgXiCBIFeTZo10EOBBgcOp9OIQAv}|>)(!2NvXKk4sT2}UD$Q& zwL{nqwdYC#NUskEwu0=lbME3FtpjTuqaCJLcYX=k-t~}(8MBYozp-;jQ{V-L-i9&e z;B&#=LU>dDXT#<69*ymt|Q<*9_&qZ-O5y~lX&YjhN>pP_=A}?pofb_+Fdps&@phRV?v>l>yr6e+!;pvWZfC8m0apmlP<>y->8rMSGl^ zGCK|0gBg<&`|WEsQQ2J?O6*vUh{j6WesmVNYc>7i(?@8as?PoYSau=T^u-4vhRNUx z>r=3woM7cr$;peDDHxno5ZwCHiCMtS^GAQ1*H7npdTd4~;vawc8yisWHKUY2>#L|H zi-Ff>chWtC%mm=W{x;$gG^&d5dH$kr0q9T6ky}?e%scCyEE=1UhFRRBOQv{E0ya)6jzT%-lpa z*L~=2{R3(^W}KFy-n%#jq8Y(U1)1I9?a@A)eIJS0jRZYI*x!ThB0*06?&kB!ynFMh z#r4yfFBQh?;lp`)`gany;`p3_Yj7{tM4Nao%jlwC(M4Njf65eu7QLTYGMGR65<2bO z6D2`AEcEIcO*m_R9I<+7`gg~~TC0=b4RY5owCT1p6r7TJ z6+0F4{8_!03eZXG);$Hj?_XMAe^})d^Q6#MN)%ixF^p^aEF{1f(j+}mNhLCdoP5{E z-gjnivU-c@eQJGrudS$EIE}MzSsj;nsq%!;H88$CDDW#o@ox-?ddEu^UEH~z1H6*b zx>_(%KV8r&2v#CD|o+czR{6BDbKlVaqKvzvcmK=esfP6 zBc{(`$a*J0J*#RF)0~|#R%h#3aLzcilg*>Nn$Koq={BpHu<>1uwL!xmeXGN%xHt#q zs@tw`pX)HAy`)W3v~7g%;++u_9of6(TR|*7})oGNEn=z-(Bj#bY0@Up;kZeuglwE;janY0;)$<2&=6*~NA*jnpM{lU~z7LBrOn2Q%)rvyon z@Gh$-!IP?rvrnJOJ|yAzDP4pd_c7919cON!;7{jA>-D4g*=qgi{BZN^i>%Ih&UK5_ zFF&4-vuzBcV&@I5`lhRN@rzje#EyTy^&6c6ZtXgc{W%#UW)Du=7de&TtB>Z;tPrz;{kO@^um z6(ya6a7{^J;@I5q17&o zcWBBS#GS5cuS{sA1dnNpP5>8j^FA3DBYE^~RCqraIVNFw3?CxIeY{-^xA(=URz0)A zQwr$6LoT(+5()Wf4EsIL6CVo2XR75pKgB%63AO)ev;Ged+}We~^naZ*u0E}vo;>b< z#eAb8xe@Tw>FN1t#puUukkZm;;KR9oVOBT&a}&*k@gHu>VJ;6c5_(e$D1y)K!TtCnh(h4znL57xHvYN$jJ0U9>ts1|@W#JZAxn zqZBFkbBRg_EimE_`Q*_&n}4sYTw6Uh!@_K0^!fDJXJ2lNMQ1`0eavBNJMfK(RXVCva#?bTb8dC# zH#pueu6OMH9E_uA?${7$K4O*3yS`bbW~mq{kuORKm`=`Xu^XJtlJ;}U!H`3bi!=+l z5w_IQnEBC|QNV#W&Gc*aU*K#`EEb$(OfBha{%p!6#c{QbsbqZ(WfkD#D&8H#MOY>B ze92?lPT|6LKk;T^&>NcrLYq=o7-_R#BvJbsnp&%l9+ui zwLah5(=?ID`0NtN?E?+uO3ID`a+Br2!?b2(uEokwS%h zF3M)37=Uyt9|zu`j;A5R2Fdd;88z1Gd}Z+#kj`uxI2Y|i+marsiicsDv{TSf-q5^# zr*)D`&tN*xuDNcxa3JnKR+b*o?Lw|<(a5CcAhP!9Fp1l*6Ips`Q=L6wsz< zk-~yW7+ngGO*aI)o5c-VDU(x%Ml7et;$27)NG~k~M~kLfpNDMk02CDEZ?_80&-)9k=!4 zjg6`we<9+v((C6;xMY?<&lR&V##A*^h^Js>YQHT<7RJyay?n9gEuH^28`TMN4!7mj z(q2CX+_aaCO{;p}vQNxES=>R!K`uYpNdisVwX^HxOD0>)#N%8E^>v0(BEi#$nJS1A zoS&)C|LrrRP$gh${F$kiG|9*5rYa(qlBcAkp24<)Z=KS4m(qif*y+|K|519+p8LeR zjc1>m99{Z1Y%N~VSXZZtP1A#PkFG`A9aa6by(dA~*GHXBs<4P2M_72zD;>hD=XP(l zzV<2Vgc_ae&Vl@8(5;x?k15H3m1OnQB#Pa74-{7$hNz`7uVcxnTqyWQ-VAO%KbsA# z|L4OQedGx%)(kEE&fc>qX~gWP?zvbRV*1CYr=P2#(&t|1ZXJYjJUfV_kEi+Awc_Ap z-8%{|gL3a$Pa9gS<<*mZf%CuH?X0rnt(FcY-7L?7cj`O8L>O(*z5SkDga6y{ysv^7 zDQB2`5J@vz{jRxXAn7DgJj3W;{M*lg<`K|SGSOY}khTjqb)KupWQ3JLJQK~<_&+K^OJXaoz%gNu9k^^FfUX%YWB-rr0?U zt$}F+eh-ejWz}_d{6?Y+FT97Fs~uCk=Y;5EeSnvFJMBYM#VHTQsP=>q9!e>hPs9h? z=1GuFR-eFmZl0gd7S7Q`&eKD?d&sM4njfzIq?%n8#gks+siAE6H%dAoxEZ6SQipk%@_>%Ih|_5H-=+YKHKZ|Pbh|IAZF6d9 zrYG!rFVJWU-pDzh65+n>+TSMj%mhyd?yd%PKBjK03)H=?bxPG+b=R-mHLrNe+k7td z(E}X36Mp9o#=Ya%K_zp0a%;-j>lCbVFDW{^72OXM3VqIIPEz|tZ5tL~O5S2;1%VpK zCZ37Js>2TYv=fD$GYn@44uzchY;&GBvm*TY>bVIl&NqxY&`#G->Lf6S={1>*MpAoV zYxzzB&@{XEs#r_|@B``Xu5k^>+%N8I{)Z0g;#FskjgaCH>H$Lyyo_`*92D!?3i2D$ zLEQ$*wb=r#2>J$nD+=$k70@DE4@>rnWfa(YfR)@yRG)2CZ zi`02pyb}j|&-*@w_77e7Gc8Wf%ce^qDG3m$Sn^KFC70V1s&JK|gX4LXQPtDmgyOZZ zxWYc7I6*rOqw2G&hNiqw!Y_kG|Kd21td2aYgsW!&CGW$Za#SsrFlDXD_$VVrzS#0S zmg2>}v&SKH_C|&7(?oa1iMreX*`G~@;f$r(oSvO*rc+Dno0G}F9CJ#<@ZXTf39lsZ zO!a=Qj6Mg<-7Cv~ehL8SnOFnL$YY0&6D3;XVjie-x@cIFEie|}t#TTDDtXuv z%F7Cr9!j`SU9+#f=a`bckpby!?lS>J*F;Qv{9!U4*vsI?$u?JBx0HNyeE%qVrdZ(^ zXce1{ab%8F8F;u6X!TfIC7fea_o!C%nARbO^tUdMUd*;0la56i8gw-&*mFU8aX4I7 zX8k@T|9Vs~m!(PYfRjl%Jmo!Uyrep!rJN@4dXUrX^-gxHPZZt}&O9`CC#RooKAlfc zNj^HE12@}58dER7F~k3Iq9)ghnp{=S+3wJ~bA&PmXICJ_IgW5;SNJhr{OZcJy(h>u z{o*bzT+`U$_z&6ypq_;w{> zRKn3ZWo4vPGTG|3xs>?VLvu0xCI8q;E~7A=uzbu4ej(DO3RoRSd4PBVyLU~))8zdT z2l2GxYucn7&oy!3o6y^vcrsyr;6Zg7KMQa==9j6}cV(-i-r}A=LS_Y}oT~GPrXuP@ zl8BXkl|}nRJV=$Z(QoPunZ*az;!aA>3RTz>YjW?$S)Ddn9n~`tjC`I-hLwx}8Moei z^5{g2+p5$4=M2Q%S<}?Y_wUm)Hj<8C{5Bv~5>qGE_>xct@-zw3>W9C_f?^DL= z+|+c9JbP)N-)XLIo^7@JbSB8YetvrT7(bsUB+)j-eELW$VSmLLF6QzRt#yW2>R_8{ zHeCQfJgeo-`pd;NdV;obDBg8I_R`}0JF8zXEq7LsHOOKcU>*SH4Wj6lw1E2gnsck% zf_6*=K&1BoKF`&_D=7XqF34gz7}Z#xqEj|~}_-D7!d z48GUl#y`$P3`|72Q(CO!IG8K?RK#b zS)~||v`#8o{7WKc(iY8snD)9VAmn`xaPPleku|C^O>c5X7~STo+nji z2p>6puPP_lOaUuj4{bSC6yPYIGAtz^J)+%sHNd^-7T%mqh zp{-fUdO6bV=28(A!-#B z_T?>*JPeb$4te1AhvFo^w68i{Xe`Ta)vC2)7{$!+E|d3q1h>YZ_PTz88U68^g4d`v zLv4g~`S|bV_3s3PS1(c0{BFHwLa{0%&E&`A^5YHlTJ5$@#@)&NO+DfH78*_xa642m zWOTxzig7X;0}<-==@9HHvK=|-p8j8e#`?5)HP~Y;9cjs13_PlbRwVDwt5a+rmvm? zKAtq!CYh|cw4l7Jhd(-=BefZ5{?;+t^o1R0>M?Q3+dOK_9s?_-tC1`yL+>R8&!nPggVDbXM=2&CfQEPB)u}W^9wie*AJn@iza*qYZxEV|A9SO&e5F$R{O~ z*;rW5YQ3Bm`>YEMDX?_uX8C`=_X>s#pfq_xKcZ+mg zw|*}{{fFO$5)*c*gvRR~S0TLTP11Q8t`W-kTLpQ{j5oVll>^m-cS!_oLQE4%8txCk z`Ni=UCQ%mU?tyCCYT+DXRZ{4lKjTEDnyb>gDr}HIuV`38&72X}=aUI#O`RC1e_ zp!dhtef@N;7RRshT-QL?EunRyl_f=zOLH6Bo$DL5qL?ig-@4y z7v8Ha<9BV7{CyUu$l@#y<*|DqCWZ(AjL{D{|AmwJxwOTkd-%5N`g}+SlBP~Lr69+T zOgQow0;;NkUi|fdY7wVZI>Y3AQtZvL1yyrtuQ0F5%_k@*KaL(qKe_eV+H5ap!$BX< z&&JKhUad|nn?u?QNhRXWtRnID*ev*-m{6JRhDgl|vkVq8WmYUs98@4*at|m|lBlATWXAsswJ@ zXPv$QlfYZ&c`ug2o-3*+pD}cd+j}%pYv0A| zucG`t6CwMAx!b1WmYU9oE+vlx--*qy4XJ*9PZ*Y4piam7JVJemN5!)%i z>)_z78r|%=2*E3%5A<2wh=RgV%v08-(JFgad$k{&=U-J09<$R{kPq81Ur85)_=^;C z@p$}2C~;)&MSG?smpUVlujTJBG7p(|I0w#|f@XET{^KWR@yE0D(JIpzPOc+t=Q?B& z?`E>qj^LA?Zt;$*`mP(SI)4S(&TJFO+BG{6`{fl;TRJIe$lD5ccX4pAcseSrU0iY! zyt`{r!ai6Wz3J~*CpxS(mMqGh>yZ1((w!e)@w2}LLnCe_dC^Gjnh5&Ij zjS+RiC}B-PWuQhHx9(n-`nF3S`36WAT?57orSsl4xOruBj^zjZA47icb_IBaZpuj? z=LJ}6jfMz}LS`uxtDIlkahHj>9pv49kT<&!ZX!1~jK;;5q_!Irol^&<=)5^DF&#~x zQj)!49_ESilLk^w2cg`ak1eV9qzHGB^kK7`o~}i;TM)17RA(#KSNz>@&ECS?* z9EWY0K7aW|MkQr8g1r2j%YdI_3-YMugv=LF>|;YTQ?4mx}en2GB3^&oAKGarKv2aN2^> zLaf@7aqIc)`-`wIVO||BfYmB(%i&9k6X?A)1OFaE?#MUf@ejEOj*?-wdk^0C0Yd)0 zM9JLwkoylo4YhOYcU|(*ID57fU~0uH?ajf#F+JwS`?0yi^6u-Sp`=CfK6=IUi1kCv zQPa%ftLTL3d7HaL(bivI*Q+Vh{ovyvYR*icii?Zp@AA99A*V#ae zDV&{ftux#07CYB*R`SrAF8ZcT^d@eyMoons6$=#T=ptla0-rQj!1%nSS4%f0wHc26`dZS=MZ zDN<@`pic?Xrc7mcO&kpiDA&jcVz+-8kTqV&;JGhiiEP zw=t$D!nH)>VGBii;B`#!aks-YMZ1E3DP({;FO%#cJvTy(qoOeLge%iX!18s-MfX8> z-1flulI#gaH*cOF&z9NGA6ZC0dvtbsE*;XN>1n1~+sqpbO;SIzOi%tk#?Lk6!eIbf z7Rwu-v*>+SKg^|LE*tGz-|2L<-aziFSBvQ18p6@inFegv?Kp}}vk+!mwuhmhVb9Fa zNfSvd(7r}hJV<)hS|=jfweAlqsYvq5sM@&QPos#JGQ}XGneLicS^hl~Mtr86zNCR6KI;U6s{vhhExhyF5hszE1-ytelM)TD?@Q zUa`9nDmzpPuXrvPhuwJ&)bUbRxrgiZTH}lJ{PApJ*v;m5^B0EY$H`27I+OCH9zS2t z=P>leR284kIkOaW`lWI@6XKkxYld&x*{vyL8Yn|+z#D;c2S%qFXEKDPLpff$e?9!Zkat9vjy>z_nG_}BZjC%%M|i{!~ulq zQW}#l_AYTRhO*E6Mv=UL@R&nKY?{Q#K4{6Ma`o_hdLHs|jR2?`jb?29CA`{wtcq%#X6aQFGw}`Cj+hRV zSy;k$yI0PdtPR_skA&%)dn~dR9D|h zzILs7BmKN>8+e-bAG_}IencKZl=o<7u)j2vm8j*BS_Uy4M(14TJ;2TT9HSa6{xz;0 zoOVn~S(P~%7+#(z&{5%~lw3RyRL!1`6hl?|sv0R7WyRrE5 z>*&-$;+QH8o@hkq58!n*Vp;^xyuFPQk>!2LH6(J?Ppbr1JNfrh+w`i(1_5;6>7kXO z<5alMc9T=_pHEO+P(HnH6Q|>|)!Ey!YdWsPZo21HMuT~IyhbD2!OkW_^DnHi)FGXy zxLw&D6?C};sPocZ3E3-~`{C9PNr7VFqxZ_I8|9dc(ZMNkk2GYvUxC@m1Phh2{2~8S zIXxApA=Oih@2AsqiXj61>f@8sXXfXBe6%_R(9>??4wpA@r{Q6zQUzkozLiSLyi*ozTR7Jp{p=myZCcn@2&j8o zJL%^tmZ<=4_2qd2i)lV-v?yONg77K3|HIy5zE4wbT257KzHR>M{evA7JOAWkDAq*4s{JAY zf)^+xEz-MN7}e+#z`U5(b4#dYyqc{gETo_EUlp%jYx+=(pNO4Bp4jU+^`hJk`v@vV zRf)zff{S7|#vicv6x3@S3GZfQnyUY~d3yTv*PEH3K5@sUV58+9f4csdJ}c9$lPM=H z?oYYOV<&{q6b`7QP7TC2i_UX=4cqpH9*RA=B?mj~YOcN`!y%RAaQGW$S#?(V&%XJd zvpxa#H^r5<#>cF$)o7@cfgeBvWV zN;1g{7Ll3e%C3@y@vTI;+%UXDUy@N|zAZlLp z_M>989~Q0oYva0jcUZsk7QbhqRQsl7Ob9xzHAFBhzt(yB!;u@LER)&!O?+HuEMvOE zwo}cfaWw=s`)1+kkiILqq)JANKIIsAIp)e-3^|XKc1p}!b_3H>=>rQJeG^mPj~Q8& zt_Y2~DMTQvOQ}+P%=_0o5;xvxaJs%fG$$M#M+U_q}!zk@BUEYl!SSUt#XT3V&zQ zZb{u1h=nilZ*EDp$HbYZ+dZ1+I($CFi>h=_d6l$p;$k$jl?%uWu79qDny5JvD-FK6 zI8Jcdf30(XH*IHrKj@NG(V@l?Y&*8T z#_|gG=JAUoeYPruOo>8ls8yQBv?|%Kb=@IbIv?*Zwp{!j?8jw1&l8)w1L2!q3m>se z@K9Uz8LEtq4;lE&hZbGyKK$UbZw&gU%Kxb<5GQH6UH$!x~QpC4t)oKxSf3i-SWm8XscJq(6#jl1U1!M zy>Lu_CMF&j0Dvda8$=wSUQtg(98a>p5l8118PVJqKUK)appOrG+&e@`odagf`68N| z$1%lF$kSoui)tG(Yb*kU5*twdB8 z*x(NDrYyCTT81FTPhj`th2ejnOC5!}9!;$IbiJ%+DreA8u3xp@()|l! z9G=ja{Y?mI|5;-uGqarpJ&B%No03M8Qa4>AaL{c85v4%ti&!pLyIyF?2r<#}z zyL({*` zl1nXuH;Z#Y4GXsMB4ZHwSiL%X3?2V=kP1zDuWZfp_dZRD?)#A4^yn!7&BoTIKb@Re zbImNiw!a^rnD3L+t(^NW)N$u)7`xR&^Zsf6^(W_bvY}46XroxdF^9JO9=k0uF&Fwf zZQ^<7xRI#shAy_YAlr7yUK%^uf!1WxJ6;ZNLA`V-I$J;VPQQmRg%vgpwPeZ1F(txn z%p+JW`aNa&K20mTiyGe{m&tFXk0B1@?a}O5sM1zMyKxHQ?DH{sFJ_JVjuKlPM!8iXg46o(ruH8SapRP+(AO4!n4hSqbUV|u`>!zeYdBI=&KzU1->ptl6 z%_sQA7J>p1#lM z%56Vr+XE5Bs1jQ!#Gf~nla}uBig9Em_QUmW;GP^O@o0tMH|_uThvAaMro8Uz$Cb+~ zbfNxRdK{zX=tx?pa7!d|DW-gFt=%S-?XDYCtfd9NQgi-jTLDDOUEtRUs2E$5v1=US zX#%~*681D#0i((NkshG=e~+zd~RZuUOgd};vd+0)17_>X=) zPZW9+0!fbKgc^DrmV|V$xVbgP>~Q@0DLWx}Eqqe!zdHFi9m~x7BP0ywJGLmhM=o-O@y;=kt^bxI>xDKFO=WNGpOm z8zZY9llP%c`m*}lmyrGpM6+Lu6K2)$k5@I9!j^(QZfoSsl2z9=MOAhFGBm#R-?m+< z;Jso0T-*73f^)r^Pcrh2be{_OfcPqtbFo`0_nOf5F@JRl}X>toAL8! z$RWv~Yu19FeRBF#i2m{O6~72K_p~6DI!97rP9KjrUse{n){@8XZI_riYtjb5M(66e zo_|Q%Bm^gkNbZ_{Y8X@Z?2Ws#DA*_#-tpTKAS|2~)@bbut71fR zTZQoEgL;ca_)h1~rEQLhz+6(~ZRKiyC8{|IGPuYk<`Q1UJy9Z)0!rE{=;t&R-gya> z_muS*yl%B{I}RG;oa|pTq5Y=mIa!Z$IXaHzurxNjxbaTsn5)uS95%~hf7igiK;bYU)%h91p0T5vx4%(oQY(jx=f{n7R@X#7n;$ccS4FM*8u`l!b+|-csDN3mm?S7v=H7pNcTO*^IDCK6xnRViwCI9(M8FwPpah;*2i{UfACu^SS|f7{fI{%r$WlWc$U zVlW@C3xlt5_QM8wwGLIjQ?uCpAQXqA51D3K2)ER1YNGSRCFf(8950-c)T0CaqhTR&dS>&^4cv}Tg&^z=-9bv99)ZR`nqUQVl} zAFe;Kml|#pbMS5ERlJXLsVz=wdaXG;0f{7xJ@XZ=g0lBGS-{(5R zkn6`z)lz!lHKh(a#lhLzMCf46;CSd$W#G_OG`>=N!RAo6`yZDq?`wgS>qFg7)3m!^ zG`sFwd^`nS66*c8X8lGnUH0{ro2h+b8Jruyj-!viDmuk0N&p{2V!$y($7(U5JeP(K z>tO=d78h@Wh&fjDYT4iP^DG3SXg_f*U*>0V^4T@0ThK0jSg$LtB^fY$VcIa9Sv(_;5C;nH1y<+N6-*Li{zD11bJ zwb)5TxRVghHLkZs%5`7h+lB9hR0A}N@Y3|xms7TnY)vfh{V}E~dr(wiZ+C5IS53QS zc6p`ELIp9^SfVQW#7DOKY4m*V0+$=cSy~&r<*EFsy0Ofeha#nXoRZf_9KmJM#2f#y ztnGu&V9v!Z#ou#Cu5Yk@^8aXm!7o6jg zt0QjCeEJjxoCH!FcV?Bkxw*a0Gb%}g>Kn0i5TLV7JBpjHY~2d=2D|pLNqjx%-NsS(pIzxFJoS^obtz3*=wSC%bS`|P95I?}O<6j~}B z>6GtvkrGYYxoq9nZZ#hKWVMZZBil2Y7eEjON+fmk{2H7g+|TO@bwUu&!#Ua~$rM4prp-?kua zk?^9x#0RxV!<=Jl}VtPn`B5r0RlHrI8n8?Jqy`D=+4dEQtK z(9?}$nM%AjY9rtn6%^M3a<^O9f`zb`jJWO(=I@L6Gef=y7v4Xyqhe^M5OSTt;2&6s zOa|33RAzKh`x&8Kt?ihquSkuI5%Ew45qOGp0!GcX?CK&Ok^9+b?9%W9s?-Sr*2)xK zaLN3$a2oT$0HsOdZiU;}r)jy@*_%VFL)=1bqnOS;X zFdDT!a~4&+3c>~K_-)FQ&~sW+QBK3kar)?d_%yp%mxboa3|wHX21uwDWy`8}TR zlX2oo%OY&Eha*{fAX4KKD(uk$ZWkiTd4W<@fzC;rs3Xk7=rY6u9t@{|W(13;-o6w2P91bEfM?hBhKI>}U)G`1VbMITP1f zO2RmtN|5!@+o{C@KN1=By?!co3h z4%YvpgX*M(1#HxM1)WMq#qu932&RTj>ocNjL~Hy@Rjvp@=xNj79bpl}NBlEf#=<@a zkC|cLkL#L$H}p^ik} zK60QxLQ~A`Y)cX8BgSc{-pPyQS}|#2Cp;f`8fa&@WT0Lpx6tWITK?nd`DY`?LamLI zT^k_4+goNMp~gxZsduM5jI(i6>H1 z+N7XfQ`ztTHUaH$cM+U6E;1?*kGuTO8C`dE4R*W62;FhC3JP2$%1Q`^-dl=cFtf1d zh~Cj*se}R10>WoZ;2U3@cj(L+|EFC+du|9I%p&;yDI7Ef0SoOK78R&JTDr^H1X=gnGQVpSx0FbyjaYNE%}kS{!$&)pW+gR~G;t_zd?48uK|>(lGo$tdjR`d7ZHq z0`;`_ZAEz_SYfr5!q1ze6-+SzbLdDrnwMVd6!+uVJ8*>iFV0VZw4a>&Vu$DcwwLlA z``3^_}J?x094vic_(GF(>RKHWKh-X4+ojZ@;rbP13_j|-5R2}=P z5RABt*=1JQ_bG(l+qQk$4sxi|K!Mw^$X*Lyigc8@>5)9a`Bc4iv^MAw94)EY| zj)m{X2mqe({n`4tfBLZXtABNiKgJh(b3e1y18o0r*blx>rZfDSI#u!5xqgC@_j?x4 z(FDItJ}TDiN(2$=?3B96~vf3`>Vac;E#V>joyr?l~({+_AaQh$^EE;^5;H z%jmnp5jzXJrVq8f1fVe~tdP@l2#D{Jt=F{g?Fxp!3fhTXzg9QV*GMD`SIMUV$EYoi z_D|T+2hPU5QrsAfV;bv_xJ@uNa%|vyHaf~PycrbXJ^tp~Z{`tn3ao)*@xILexDOQ+ zBHJ+?Ez@;&nO>r!YMZ}ot43ygq8oQi2CrGsVGTUC3Nrow9rw{Zz~A}Q6;1u=h1LJ|qp>c+zGLiyT2?G0y=OGL%5iF%x{LdNOh7B-6?kssf%~DZxB}3{6OUaM!5gbNJ`A+F-&B?PusC4_X|)ms5s+3p`H`Fc^2 z>i5y@9j;bb;*&DG-5n_SJ^y&~<3=wCn{_j0tjl9)uRJZdoFE)yBF5a!SSDIYfnF%f z5=n$7m-5|o0GsJV&3fEmcSW7&dcx6j5k_w~3BC%q%C5((&W(#g@Q9&*zhCvN*s?#6 z9_iB8KJ*QeGeL$rQtTkSZuhgKSVnP}+C3Zrz7_8r!+<&R1^^BQVP;Lc`m>QOxvY{i zBzZ6AvFOCHSm5yB!3)Nn1*hMhJlfdzs8*@l!~}Ycc9z3n0*lN}b94%{H|Gz&^1h2p zrCh4|V0PuAJ2(cb*sKp!miZmAehm^8Ab1R49)9ivca@Lp%38g)sH+N$yu8KH4qo$; zV>mTXQ~CGCGQ0M%zuY5AhHQewc!dHOzcYk-+lK_q3pCF$=4Zd?mj73la69&T9I31q zK!ucN6MP3-&;r2-CPEL|4E&Uc8!kXx7wZY755$l!8;k5Y{DPyIHnNbij?dKuKMF6G zSld-~Z?ysfgQBVL;qCkhFjf_yH0g35ZUnc{HA~ke$4}C~iJnk{PY!e|-DTj!UHs|b zFNmpY#KY_L>t#hKYC7$XhKS*sb-rEF7E#|5qJ#IzU+fh*QV`kuKc}Q~mYmBt z-VfPyI&KgXnh-<$sLa9eeX$AeRd67wifEBX>7=$UxUsp%+RWWFBe+lg;;V|DzEQ`; zki4rt$C>K3V_?D{-%QyJ8dC<8t|mF`-NQY!tDtfZ0cl-=h~k>PVKHGh8P^5fu&&;# zYLKq8P3Lj@#Np+rso(rGr(2XIzji|-Wx}7~`4)ff#2a@;_+%hWwSIk^0m(skRA6;n z>l1B{T>B0vQXzN@yoou#bC|WIaz8!Y_obI6S;NLqEQvky7X8zc^$-3A(U^kHoO?<* zeR)vs+M2vkmgb98bjxPB3{Z=)E5_g&4zz}YObrW0J+I36>HdLEv%WaQH-)HD4EPm2kkl2wBl+56`tAB)0VZ^vj>!}&;NRQetdTJz@eJc<1g1dxEU2gRXS5S<{C$|;poB_xeZLy`b9OM10XVM zG_L`g&evexp0A~S&?QOIeY`jxK)|>+h^M=DMmA0YVLuC%$8Y~N2 zRbwi~rWu=O__Gmo=M`eia%?0}$W3MaZp_RUyfXR0YiMqyxY>|yBZ{Ogp{BWHHsvhZ zC4~Kls}RJW<~^+5OZE@Bn`B5DDV9Pz9~tdfvLiubzbI5sJg3o*Z3QULEs-3ias!Q& zw}4`+;-F86Bn5T*&?OUynI&T#4EFY7-P_D2DS}i)G!cdYL^ZS`1f!-70sK23lz#yk z+v)GmxH}SkI&m1Rk%Z2{YxV#15XHNLF&M+GXB^rTNNr*G{KDh4Y)>WV`_d~ z`FwJ)aPmMaKw!yx9IjpCE8Tem8#sE$bixyQ>b#b|PsoC^4!=c=&Qy zGns-MM++ow1{%!(rEG<*-^SWiYSel5pO}e1G52_BoH?E0<{QuzM+fEwT3W!X ziPltjhRFpb-%fNs{Q@fBADjveZL+`VycuYi5aKaR19jr@R{-1R&rjXd`VcU~eEIYIrLfj zqd&*ba?otQ3%?t)TG{+!Na38ObH+)LD#YsUfh^kNwBt27D;Gmf_!6@=VD@`nq)2=E zzE1NoPy8z1UF?c9c@*tVUsr*xjg2q=j)|R5`#yz!$!}$MH`dwBTB#3Yer~s>7%++WmA$VB<(YUIBHO^|%T8Tz`*Y5}%vJ z!!`QUCU9Lkal-L71B-+Cr**~Bs*5(8C)mE2w*tAxq_VE5NpIn;s$Z>+AW^?4K-ta1 zeGpsu>i6^!ZP5Wq~0@Ik1hzIp7~A7>1}&Fh=q_aaa#fS?*dA! z*zmJEw(?|`p{;&l^1TYxHD+hZ`-ivAK{EOzj z&k~;2 zZR2sQ3$f;TERzt%fi-dSH<%j!Fr#Bzms;WNTr&wMiJ9FZVPb+>yby4WU|b*RO~P(G zpwnRS8E_v`uwdS`CtSSCwyG2*1^HHnp;)xr(vK6$%>)lmlHAAB!m7f~hOR_^VbKWE zylzZ6>9~NEig!vsw>Z~RKq$Zae?h8#f;$jZ+nKtAlP=)k)HK2FP4uVEocRHUCY%Z} z@+oGkZd6RrpP#Xm$L9Zu?}0Y={rAM&7u_#!&#U1T5SRsBW58FwiMt9+0BNzTpS)C< z7lF`%updK+l-2$ch!zTXaZ{UEFx!iu>jgfy$$1=a=r}&p@-iT`?_ve!R7;hLov@-B z8E1GA;z|>qksb@lfka->z_;m(Y5N|{Yq;t;7U=8iGM})%$JZN<+qTN6&Nf4=IX|HX z{^*-wA8ZvQ=PM>8V@^VNTDi&n;aOHWFd@J3c2aDZj$wOXV8@gvqEM>B?BK)-5<3Kd zZ(R1qL8?|-7A{01Pmcqe*JvsZ{uZ#7--K+#C&DbP} z@?|3tl_uq83oY>TV%*ZGI}|;^^5q^g$Y5Tjquk|g{bc=00v^x zt%Pj;A$g4XMtw;l1vf(ye@6kqVAeK;D)1H(Guou>Ag&9>qrwIqO_$>}^8(Fa%yu$C z`EH^ljq|5#{0=k9|1d3TVp)!GK;zmYL8}mJhrbKq8TM-;@bkoz15EAUmdH_m|C$|G z!hkTO*xJbCR9W!GQN;TVq9xDpi0%U?DvdUm;vn+p&fa+bkJf=pi)#bRC!vgZdX5tl z%Ojks;wpi4411cD(u{#ceF4(YE z0heyp=mtk(FEd(?Q8AcmMLIOD#&dYl+@m>dk!;~mmI17pUdVAz#A1>u%h29R5VV^= zNkXG`!1MiHs@y%~?h+Zoep%-^2;205Lv{?@1VZmPVev>DY9#~O9F>W1e-fq!!FEMt zdW`4%&3)VFHx>-rbR5Blror1hiBGVvpTrt24{Wvhu{-#Q&(mGtL{cm$v0oyTe~%jP zi!*%D1Gm02=y)OV=Wbkuc+$F@MmiQ_S2i1?y`9i!>;h4}L&8RLX0WbF>U$`BKR^Q5 zuZ+K?D!W#qnz{4cjE#X5s_J#cS!YSG*M)vFMy!zh3!$e(WCodl5wTx zfS-VuLjRknM`C$^!wW9C_a+pn$WiKhZECXu6qc$NmhhCib!mu0sulcLHtQy6H`)akh`BP1w%I`6uFSPs`EHS(`#ZrdLm zdjT=__a~>HlO}Wi*x?)Y?j962B1Bn9bAip{j8{s_GYsO9t&PE9r~}W=3SVWnpatyO zLk17wWeBW%geW^=eb@)m2~pc~QfatGLLFb+$V0AU$$4X8)U06)%&`Mn&ob<4c^)Sv zyM?SdR_bc(&md>Df{$HfyeDvvm#H`^Q~frxmc!8jspS+A9^!Y<5V5R}!EgQHi-xuB$;o><=f{_u?h=@kE@b~o)Eyto zP9Bac%#?ZlWY%B6ReQDoQ$Vc0x4ua~Firu9OaV~iNpG}yz`zRXAX|l`0lottg3Cy* z`D;{iA*(;ee8xt&UX71=j)f# zimYCY5KLPjdjY}R1gibq_U*!ZhWR;nw+ycE2-rHpB$e>vxWP$y4~StBphd#zePX@H zHM@3*6_kTl@hXE1>8MVvXc(H3xhWvpIi5#Whoxy7NR)d`>Xdp|kKjnMU&AAA)}Q`Y zpSYai)A#Z_GMATqQ(%$dj1YXo&yfY$vY{+rJC)-2oFoYb_A_!Ny+uF%{qc{Oz<9sD z{uJ!@hqD=b@ChiVwAmxbZ4rPKEe|ksLKIk<_Im-yMOX%;OO=K(R7O9RfnN2@+($rY z(73S(f>*5Z8gqRmAyY&UxdGk(bKHq{b80a^r}@HJ~F$?%;R2)!C*Z#q6Wd2h}@1xHazcGoP}YozU?9a7>b{ z(_eiEQvk@I-rE_>+k9wl{k{*jCu*H1tP02@&Pgj!x8-ZL6b)5{5#_lqR_Z>-HZfPKGN_-; zc<^Ek5;nYnGtV$n_b)1ECtfPBkBLm%M6@Pr5>PyFgwY~92QfuEK#?o)`+tWuK?G0c z&$y`LN~q*ExU~t4Z2&r8aiE!O-}9)wg`=#hVE_tSau{_)M$b8hi~;TcNSJ_LL@az8uq?POY#5NP zy>A;{V+C}&RjpfSGsZT~hBPR)j7z-5;{duhZ5_yn>8d|~SJ8?pYg1)2syHjxk9Zni zpAne>-x2M&hxo@JN&WRP$EiR5-CVvxjSsprYCmNlpZS9mQ6)v)$PR5qGKZ(5*&q7^ zjABLCJwnB<2-~ukK(I=~{yGU|{C(m5>`V#^Xyo^1NmvA%^{CZzE>q0987G&7E27r6lr`sUf!6Q4-_HAW7xO*uBek zP&hrly&d5r>4tVtqa?weE{&Z;jbO=P6^$2gHW0Rbg_7O`r5wE7R}_hI8O#qe%w808 zR{eM@)}UvmJ$U+z={PV}q;4SY?&9p=zC_HYfEDbD=}TWa20TNpQAllJG%Eho`cW?j zRqqLYE%}dL!UjRwMh;g>yb#Axw1G7W{1v~R+zSfeEByAd3Bx>UxInkJa2bXk09?s0 z9z_~Ih&OK*ER16)?<)~f)aRV-vJK~OvF@O71XfFC79szO(mFefO9207jlz9~tD{@T z{rcRP!>0vujKn02ED>rXh&+%709F^r{lUUMvGF8jYDs05)J7BFPDj0nMG4!$a!kB` zj{z{eh1A;1|+lymR})7m%DgUCP%;HDdG^$B&&M=?iG)Pd9o% z%EYcz&M7IBnz@aX{lQ0OL9rarzKRIkAf!vNumbEFDD9%5a}RJv5elzp-9DkhGXv0` z2yOw-w(RdQl3SiaE-*i!_uzNo&X|Y7LI`tvfUZQ~wKTgDt83_6L}w|s1G;7vZ{R`I z=-cl}d&i9n;wrJFkAe|`%ZAsrN?E{L675qzhLH72tj7)CFMfoa_<+#GqEv5$1S%_G zQ?r;fGRtT1sbUlp8w-ydilxZ^`riSTu(+El*bQ$($od83zvRZqc>nT0nm8j5}JLAmjY894tfFL&<=!PV@E#yW_$ZKuR}7 zu8WD-P3Z^K6g71K;Vp}i$Qy4DewV(DQ_v^KN+^$VM^Fy?D)5m9a-T_*tKFN1%8SKU zx3DHwyLM2N*<1OIoncGFXUmr6M;_qOrB`ZlrsXQelb!lPVE1*e&Do*E>ynq z=X}HIaH#G+Jw9)wW@BF|Mug&oBh-^=rzVZaoCkWUHD?7oFbGTy#aGy4@YtI2J*b1N zg$qa5AoL`0JggYm(V81tJOW;O5+}k_DqMI z9X#BX?HZhu!xlj7ri{=taKrV^!1(mP^I8?P!5VbA`fgokwCKFWri)O15SXA~1ZpAk zD_4?Seds@+LKT{RA1?9J26a1|q~rzoO|6FFZB&cHZA1FEj3YzDtR5oEqk((E!ojA3 z(c2LwDz}pPguO-s{%S{WBi66VkZ9;(5F@>&L*;IRcYEQyxYbX_48cn&Bl;&)3)T)Y zq39bov+me4`8jkAq(=A-g84a&?e7A|odLT0b@1J6cWq%bf;U{r565#xLVU8&Wrxa{ zsgb%`EE5~! zGaa=&Qw=#})NHuHk#}*P5P2*bVPeb`=NhFkqga-)o>7xEyd6Wj`9XcJ;LWTN-U|`g zV=8F3N*eUCWf=(_b9pqYJ5H_g{zKq`cZM{BDyjG1QS4s>m_dEpuG@> zO*ROgA@&I#4*EPjndnj1beEhUgH@wPZ@Z%yp-GM?FAew@2_)-{x)#?Gxy{`-}yTi`zQV20)ftnT6B=)L@A=3{aPVgh8m{Uvk&xP`qLyn4(% zneLaO%eX3dlCV)y$T8fvcrV8%`Pmo>O#MsDW6pUM!T=-a>>mYcbxIZ7gBd>!D)Y7= zrYYW8dN+K5XQdQ9nIdX8bo3R+e7(Z~Z`@>o&OROHIs?+?adYCt)6Wj*6RCg>ro`e&hsy{}0S!5oI1nVjPW?lRJ~pDCD;>OW5i`A&_R zCt&MMx=cn3kprTS)K4L|YXsp9ElZ?;N>5P9ZCG(2O0 z;Nq?!b*$`Ac&@~+*k((+h4oB04+zg!zMsnnl37&R?`Rx;t zE(~TVGU?V9k-(A0N@2ePFV?vG8!I!9)}liGm#Mkw~d@tJ@AZ$5r;z@0nZA2;IcGE=1FlO6doM7JAJU?a$h4YW46 zZ!2XYv~AHGFLm9{7M`}%y}B$L$7V`Tb>qk@4E^3Mj+r|6GwYK&z2Kgv z%3Ua2bf7AR=QcN)GCuQ_p}+8^RQnY`X2FH*cUVSnGnt|pzkYBxZ1tB?+wC;Zdr-qC*-**Bxs~oNka)qg2-^YFk|2S85%Bh&XWAkL zq}5AXiScbtEm9eS&iO{EqT`5=a(@g@^Iv#eO9(ZuGQT@!Yina;xAF8G0TExsZ08-ezP(xu^MqJy0tHV|q zt0zn#W(x>cIi)Optdi^=1}-9D)W`{=+>L_Q=?E#^HrJn;$x(_tKcp=Hi=|!+f4((f zVfdetVawLf&@M+TC5lYz22&-2l zHU5Z@HAY-guCS297cmub!}q~1k@yw=gG)d%q(ZaSL$`(x;OsI0bPB*MTjLiKJ3|nkB*ip26Bqraob`ReM6dZUKhXhZRbXVojtdj|ZQeKqz{zcNQ#*;*ZA5z<1k_JDu zGiryFzL4q6x$(E6zp9T5_ltop2m7CRk}nzhF&G>SBW^YCz;bu={r79MX=^|-&T*d4 zemH*k#W6VWYL%w86H;&RVOw~MgjxBB@;nZ$(JKuKar$>b#xLus;6%1ez4;_v4cSXNSOP!$B-j9hiRx)<__CuH@lS zm~I(54TIiNFR##_U%L!~$Y%rUD~oavlI4_u+QqvP?Z{#$H6r?jXmyZlKOrG!xI)q) z?et|+W%0;!`5T@Lg59RC{Sq*_wTPi?fSj$1!0z7S{H6g~_dO2QIrH%xoo#nDA&&GVej*;u#IoU^l?vF&{=$urxwPT!kAyjRwb+9Biuem*3c>edj|&V+H_|*e~!`W zcf8EEh;S%jQ3DhdHM2Kcf4dK*hoQhvZ+sC+ynX{dL2WJ&=>wc$%3B2bA+PqJ0;7XB zj2S;9(ws>eXZYt8krtIhKh`X8?Hhw;=odkHzmq@9Ic#-3a=xynPq^i~Dr`Lgeqjry zh2MP<&@9$uk#GrqB`=)IX7Hz?Pn(Wm`sz;4_iNd})91OxH&Hb%6)!4_7MI^6B3l;h z5fcTpyjtOB{HM;2B+6~;?~eT^#3Sq{HO|pf!rv6ViIg4$6+SmrWckD&dWjZBG>2N> zHO9IDksW?+tjJ;4-NG{wP%Ju0Zy<3+E5{RCC4SS|w%`8t5zk)W3AjZn{g!H5Z29Tt z$7eo2o4r}Z(W+;^KRrJG;uJ1_`tb4QqwZX-jjGTEv1a+(4}xC=Lb<{^Ny0PiO@yPG zyMM;|YZdCefW#SPs4ho_3aH2XFew+KXHC-_#_8? zmR0kOv2L=CW(9hlSrcr%#@TCwS*3cN(^FE#h__cRCP2(WrB;hMWr89$82r8eVUn*6 znge``m3$XXzvyfX%xnor;WCmv{ClZ65!j6z-@%&e1J`p~x_Q^Ybw9YSc7&fLSxjiN z0?V2siQ&);d|76H-5P{&cF?iaj2{O(>f{Qne}`9NH3d)`5uS5}4P$tdi$k$>y&FF} zcNYgua?Z%=9_I7tj!)2nMJ^A`UsKyKov#qN?!eRgVI8#Xj!Rjh#V(qCScJIe$+yD$>H0vaDy8hx+YJ12oPqT*|WRB z|873}FLSIf4U|9n(jAEwB~{ewpug8Hp*cI^N?RG&wvh>6Er>-M z`gk4kS`b$w?htX@pG2EOnGJ&Y=956h9*}07O z>^a3bT%e3X?&S0_7mqkss<`5O{r!y7JU%}YwkNE6FuAfwyzE18xQR=&3@ukvYhuW7 zg%%y7R59Ek8icS4*D`i$kv$XkDI|_znm7$c!&DNc&IIr{RlA0A5GApN{-6F0gqivo zhUjS1zt+uo7=~;C{kgYp5uTns3JlyBxtz8`oY`Wm%Ylm=xomZgXu)8?EvuwDA!%1O zXzyVBllOkd6MQ}5e|2(=BB0Vn%ChvVA3@DqWW|vQ+vg7i7JK3qLA=U343?6?$e=?e z!S{FA^$AiJF^*g;b&9VrlkK&eL(~AibMGcK8;3~!H|Rf+?FWMREd$LR;4A2HiJGUu z2e80&d8QqbeBC_4p=l@Qi0~($@`#tsY|0xc0uhJtExTmCI>s>$kf(m<6+FN@N(tBq zwGHOPS_J61yKc77F6>^~Xf5Q#r&r_-1pG3Dtp6nF>qOKR)K$kl-XQ*xpbdbz6`azr z!o}pBLF#et=A}TbG5+OA9;1C`7_rPSe$FA!W`N-DtTU(F};}{&67zHxZ(7DzO2L$W#gQ zLZ}r33Kf(&ol2J5h`gc_S6&+4kx+L=UnoE04zQKo2KQwWzNzCP=j z__?1U8JoE*jQ@eMmQmVuBY2C!0~8Fun-pZ3U&i|Z0X`U0c+`w&dt=T)YaDCVI`&x& z_JHllf1|zy1?ZM77cj0uz-5~7z9GZ2R(I>7F)wSs0$$?){`GqRS8#kJaZq0kYtkw% z7+VPTyBHRNC;6P0WV|Cu0aCv9tx3vZV4LQKF2liSq1($RAxVwb0iT+Rk?c6wQ_v&~ z1Jr=WY>4tABbv>~-bpdcw!z%pS*j0k@mDbN8;LCC-o6qUUI|X@{tM)*MT;M$r*mUd zl=-|YJAeiV3cFLB((x6v$vmfn_1rPViOX$JAvn5MTUzhdRAE(O6J)0zH9HrG_`?;< z%gNbQ){KQqjP^)&mjYv7fj%lmvJ4C@S7r%s1h5MNY++y-ZDl?Zv;?`y`3!r3ps$AG!7H$nnr5WWqEUuo)FSGgu;4ICgquhlw(*`B zTdbRS6omDIyTk3RBn=WQ-V}lJmUofEJ|*GY2GAy7fgwl5y20pvSP0}z+$m>ZVWf9^S@ttXZ9VQtc+ zW6+~;=oi}cTB|oPGl#8{BXh6+`JI)vDcTxE&J2enw9#h{1SxR2gYk8ZN3O#k1IsM4&=8?tBUVX~{8C@LEo0wz5SHx%)`P|sIYX`!F zVA~)%!er`s{Efd=2BNWVxU$47p1AJeQQ3ey1r6&A9qW9~hP&-Svd(%<7bGUgpgCsF?&fE#{>GBne{c zD_$pRDWTiNR85-rFC{eZL4afL;|=^r1Y|-+w^nrXL^bmk6r-4oy5o1F=H7}5_6#+Y zH7*1`)swYVBOPLG+ZheGMI3q{0GcYsY9->qpL2KVyS3lHXScqYRmzUR0iVVVzy&j~ z7y?zv90N-m5@#+VV4jsEGRaAn*t9h!#b=U zah>XX3dW3k`44B6L_qvhAiD&Q%9LSpBQx&X=N@RK%`H=MPIbX-#KGyEL~y!>}_6OS-8 zSO0rcHja5SpTO6x#kh|9f3bCdduG!d1wZK|WlAuVcz$WXlBG2e}fob-i72YyI=K`l`NW2+GRHPL*BC`5Umm#;@97{_7U+|QeJ?#Ea#Z=VOz5gJpj z#jvd+RBOZr5v^3>8$Kp3#fW8sVx5#YE`XlF4~%3|RM4f6!%W&dj{7JkfJq zElLMT25096sX1X|{u1P_9f>*)XUg3J2ZKKjCO5Uai4l4b*eMSO*KdoOaP_f-t z1bTZBb6{PU3u-+*^SSG&Ti~o9#6{@Xb|ic76ah%sl_Xg+R>Pppdvvep)Z-dp%v$H^ z0f#S8w!S;TA|kc`1`NJn1x+IuTC^$tM9`JjeZR1L1=l#VX>v3eq-LV=ApX5cB10>n zfs}*0#lVme?3b(eDRW9kYG4k@(<(Y7)d1>bh^Y?gu+!E@RV)R?1%q|qf^7aqy0=}z zx_@+V_;lN2t+0Iq)ha(WpZPM9k!CNCmaQ{lSn|&mp{Ec1QC)DIdEr`S{%#vu8MS#~ zhtw3=t@8@P8AB`cEHK64K81YMD<=@vv@5`26{GU2MBSI6 z=q!gDPb*gtgpkA2e|a&Fadh0Zgly5@9YP#Imdc?%{aS6vRTpJ3kDY7lt^sMa4s6&*8)IX34`4Arn{Fe2t0iy5tV8CV3sm64~ZPQq7_7RJj%q|w`# z{+|@v|$U|NQMXR?dWXTL8tNCDLK>sDgQgfihDXV_HsdXA&16o)| z7~ODBqO8trc-88HF#?BQS2k*EELx$Y4I7EpDB!0$y{l_9?;JXDoXWABR^v)G3A|7R zKl8FtA+e;9ay^L+ecG0o221ybU?|G%e*a074n~b;Zg7)SqJiCdewNj_LG7XR#O z`u6vI<~@*F29C5Msjbj4~wHk&T;kCWQ99 z^oAXLuqD_xzujj?TIlBjGxWUEc5p?L(RWqw^`sc?0N1onUl7R__E0;wBsd@?@TBg1Zq}BE%RZCkFv*DV^T^q#ihNp65>*#qt+!niiAeN(BAD@`Q zPqpIoMjpqGJ08vmSZ4T+gk-KK6ipUHR`zdXz41J8 zoL80%_%!nRQu3mx!!=`OV3whQ8$U{Zf%Z#9+P;DL>mSP)!dM}@g^_E_X5(1msG6VU zA&g_yEYB>5@va+m$Mu+~xbcL$=Xu;FZ&lYP0MDb9wcl`d4=h}~L9g{arZ1Bxc|-wk z-d|TRYzzX;3$NXo-_5X+kQqH#NZ|@AbHZK>C#nu`Op~0hF;ZIwfdI9d{O2?XKHSC< z6@0i1^e(5N*bp6~KlH1^6y2Io2J>wUTuQ^2Y0%mkX10+)J9Bq+UpJVW3Ra%IDzLvp zvrd3Nb74YbnOS`-9Fl7XxcT&9dExn9rE1n+r`jlrC{Ys3DRxEO3NHreQ-o&@ zHnat~Dzt^ooWkKhYU`+qlS19dblIw>U%{>+G;NyLe7HY9-YaCT!x_s57?8ai{3BRdmR z^5S;41bQS2JWJ#GqtC|q_&Qh8g45Vlzk-Cpe4Fp*uCw#~zpCNxT31kbNla z3a7RIV76bTUs%AOGpFTj&#$=4lh5&IS-1kM0^PYFNxTHGgLl9u;%|wDO<7ph3oaTS zbj01y5<-@7%r~AEHMj7yV4Ek?XK3^?tnKgF0M8CVFoFs9M_t#?G}}eUHWaRz=iWf8 zRDI8+`dz^18Qsyl!o z?DBxK$_LEdC}r-|lff#CmU@y(rD^}J_E-2bbJQHv0t&sN zeGM8%i{tn^D?6}Q7kU$;yG}slp5r-ynKgja@8QhkxUUi4DOM)t4nK!XH^TJb%2B=g zaYS2y^}RH){GoB=MA}x<5WtNvOVN(x5Yfkyw`u>kUZ!d#WA0 z!Z+*VHik}(TxbYk`osQ{|DUM0{f#5L(mdn7_&Q_r!l8UAUf*J5GZjp4t=x@Nl~%%N z3_~SNfm$}K5;QBJU?m``z%?4|5mX}J54(fz9EK&e82cuu2MisVUR^KyPGHeJwEuvn%Fa%I zYi@mFM`uVdQRv$Z|OhP^f3zC7PbkrB8HaK=zyQ>LaZ$HGM(U9jTvUM~79pt6Y) z8v#5U=@tZXz{ZpgoI#^1Ff@iDD?UhBkB@HyZjCasPvLT&PE6W3E1ugCu%h_@T<@;i}Sgqc6ysYfH_~}Yxn{dyCcWGJ zdr<@S>-!B@wq+=HyHn;mn2_YOkj-%n5x0HJvbaJjNB>17JmlAyMFO8)Xz{t+Hxaoz zL)MBB8fl~)LP}b;*n9)GTFwwk+s^Z`n84#$ur>K^VuJDVQOajL3ib|B$0CcLLzvr- zCq_tuT8hqf(^l<5njmJmi5p2IGLM;Tkh1Sok%3Ka$KOw3?z~Q0b=2v^O+o~>m452o zje~X!efXT5S$ZL)FoF`dvTmn7sylT^dI)q#5mV0`+JMzw_uXo->`cyYO^FwazU$YE zrCnq5=E3!^7t4N$dWY}{)ydD$8J-ulR@=^|a#;wJ3!`c!DmKq!xto2h zCg3VGd=7T!G-O;oY5F|b#l1okrB;xTL?SSzv)!odysdmm=`ZJFi`2)RrWo7H?evmU z^XRR!4lMqwUAUoR#-R$$ynEhzGkA6+)hmQ2a%RCzxDVhF%O{#?z~}M^tk))Klk$tz z`qjctB*rh;IKMDq_qzDDU-YKicE<$$YO(5jx3rJ0SKM5!mVhDOGoUQSnG`heGPZV` zw&y!u7R&c>;F7C`nnInY-9&Ycsm40pV{pBE)qT?#2Jg|b+%^g&=6bf2m<=8}`v1>F zf_4kxD`q&e>}O5#i404^mLqTiiG?%8cd`lmNJrnNHk7?pi;Z~y(=pdMR%79DKu;_* z=q1p7Nui8FKLfP%R)WFU!z9Rc+Ad`t1GnvKB&Gumowv%+?P#;)oAIT%BsWuVP2@uu ztGcHflJh`+l|np`ygdU`tIvU#6NM4$=`domfUH}%-aPcuOu0p8tHtn3`xL8oc?isi^BAo7Jrw=5eSEElU~OL} z@FBX$j%D@p9tmF_O|Wv83^#G&K+B-lwVEccS|XIQ0~D3xDH~;T8o+YkMT&$ z!Vmu6K_B8T+c#NjbUyf?zme~TVQZGWCn3*XZ(vEKS?&|El`y>ww^G`LPpaB0c+*w! zHYA7)8s{@Q?kLNpbQe{wk4%JPCPWXlBIg{%4k#I>n4re}* zm!$}jm*9oE;*n5LOa6tI(hE6GV+2)s+Wy3v z2y*{uqUp?9BO{Zi9f!Alzmf#)b!Fo1daU(eBL2een3P|=UDzkqy*(6s)bUXCt1poI zD@X)acDX-%VQ*K2Xsp~$!&L}qGEJ9`?i}acx*t;K>^wkZ;H>4kuJ@33VF?%6x=J*` z^7nly9Zy5a3^;};5=?;&ehn^i3yNsm-OGwpHI*oM2;Ul9L--*jAaJx?GW9pQDGlt5 z6sJRVIdSHP;|rOyICvzu)8#$p}#;NznrI1D7J>QpU;LdhfGmE z7sMNjsrG3I^xnwn3bvq}YEP3`QPm=eyfX8o;kKj^_E8y{@Dta_mLz@LiJ`y%@Iq3= zZDr!g=D2eTs>Zh65g&V(?T_%34STU^ICp39!fbf=sz*6{Q|@1)!ktNc^%_lGpvj%Q z_~NZ;@1NXii9P25S$C5Bf-6gOeQD+&E&?+FZ%vu)4w$NMt$VJ+r9tcXx^#dwkf0t? z(f(-WBNyz5{|OL<);-i}!j{yj&X)V#gqaW8@PoAN0D5wo#tGQaC^~FG9G& z=WkZEg~5am*>kJ$cDG7R;~@Talg+(v#NyftEt(B70R;=~F|C(GP~w)pXb`UawZ~`xO=) zMSlhL+e%`$XM!5*dbvP|a?}fZwfB85L-56-L&98K@PwGK2Y#_%5Tv^#&8Qs(_x(ZXS?uaO{vj4OWQa5 z>ube1WURaNFN;UefE{DG)^_KBL(TW3)+C=^`IiB0L@txER;PZ-%JRX$V!m@5|B?19 zM*OUe>0Gx<3JlZ3ht-#uYlc+_n!qyT{WKp7YCQ#ihDI~-G7#Q*U-J}me(I}zdeiw} zrI;~>X$mMjhP?uK(RvYGu4!Z9MYiW(joYvIJ2m5Ui=V%4oN}aY6~&)6->F(D69}FL zIb+*l5PQx(nn!=O{CRlMxo-X1B5||wO`_{1Id+HfMtEy{^|}{<5UyN)Ue}jvJ6#S4 z+a%m$7JB>Uf#8AR{V!sdAP#iYWtfOk?ACU#au!`bXv$@M7{aiO_1nCsr7pgyOyD+g zCc=X5>q1axpRzabQZvw%;LVc1^s}N6Irn@(`-rX@7`To@c@!G?(w(u@4r0=hm)Zx0`;Sv^U*;2B$&?5=_t}#aPb&amu8O58(hn9Av z-Q%ED~7TsxB=m6q52ut2_p z#oTVSQXcM1s_Rz>*e%|!2b?#;{w0#j0_>e{}$-{IxEZ;Wxo-jzak{kWVs z4I3soz!^}R*xGm(J*XieG!u8yOm>f^`p=678lldF_!(7EkY=4ZNBsA902w=Oz(E3a zW|pDAPQbt;PY*#o*&mvpD7W}R8})?rdlQPf=3$<3-HO}xW5_M6&lNiO9H9uNV6&gn z>`rDTS<|M1I<7p@t=Ed$ddhH1 zK4bqNcP*e_k;r2=Lh3{^vqah&RqneBQ1cj=l)BbeO-q{Y#CLY3+#^5F_hrbx`5N0E zcBp-4eHgRzu!9Rr=7N}n+Rl5LQUtaby=x13p2Y7zKR^3K$2_Go-^hIx%DW>Ca{i2X z&s4T>N7vnhxKOvH(s@C=%F7!B6M3IK&$0kLUkkU#OPiRVmNM2;pGm`?qTeaZnqF+mq4%C0?h-*uwKK2c(?3f(H5)t45+j6`wr z?2}}^El&EN<)y=C)fzrEqLoJ$z=;I{nRjiP5Tk8Zr1+gxSNe{3D~vzByIa3?4pH_m zEQb5(T`c8P)*d|u5Xu-;xtMd9_=;ht}#AK5+J9Y=o62zhG za*F+cW#5sRG1JJf`n^UT+8KB*lf#!9aa+f=lJ0MguaUASccoOdPaiC2chGve{P|Nx z>`Bo#{!NKEq7;tOTIJBUOUyLqg|Fzqvlt#&*QwI zp>jsNPsbwuxHz}JMY>M^jeZ-53aU7#zLbz1gi?vTTSSTcHBpN?_^a}b61Gax2LCe# zP0zq&0-r|wI>k9LPmR@@tZqtaSJ0ec^K{fw($@HjXIezK5+@E52~-Kuu^vqHX4A4ER( z!DT*>5{f>cZZZ2t?LScX39&#Ic?uY|Zpg}!u+Jsz@%2Dv;Upr=Yb)U*7h@KY68;Pv^=UTxB4ygsKsF*5L^2Z5g3E^N+eL2k9ybDJALbm17o`u0bY zxh2cJNw?FUt+;%FjqfaJU%gg#CUf7di0cU7wV3CXJp!G>wOhPRl>TaE=AYY&;#Qaf zx~lfhZuG*w@-#hwAh=7I4#rr+;86ULvV8BZdX}lXr71g=njw_^z3F$BwoO1N?lZJp znO*O|OIGW*)bY58b`0_2M#H_lO4*G*6&<+Uyo8YG^#9cei=>oV*Fz8ZrQ1h!28a%vx6EWl={Tpx4r)ZAmKezVWOpYtX1rTA_F-CTCHJj$rE zZ=4k6sSoPAgqUY>3fbcL#IP!Y*M5gG(ET8wD_?PapED@woX1c)}1pGT&Eg7|b$_^OI*4E((y$8O~igJNEjEb$kK7=xOL znmXe9g-giW?lB|Butp!XZDz{=7pfj*nWWIng{7A0blUtXZnA0Bj5-J!= z?0q)jp60u0k6+)&*O!{K++$XfXOxuQ-2HNCP@$2<9xhJGLz0HUlB(wr&&$a}|Bf7zS|9&QVnMCcPdCkhXKBH~B_0?`+JKf44CH z6_?S|w~OWLE~3XO!IG)3`!7u79Tt7v+prQLTTAJc-mB^gZF*%v?GjXzHcT5cnfrL}H~4unE*_mNS?b{I0+F7Hzibzoa$5JbD+ z-7_|161|ypP_P%c(sj2u?#EUX*Sxcd%F1(Zm&)M8+isT-Sxd=PfLk{+punCK-7Gv0 z0O{Re5_gD|gq*_(^o~*QDaCd@eE%X69Mp#kZrT0S@9C)njx_Xp3HH4wRqKjCHN}_; zw3<|EuE9+Dl9M*uQKP740)F05nkD{yQgghc2}J>FWaCv}lg0}%{oz9vT1rdaTfVw>t>dLD-3zQ&;DU{Ih^G&hH@FwoXC8v5#=93xGXuICLfDO z@MDMoGeFG0RA{mb^E5r22Y)w*Cu68ITBZRSHSOCB0oNU(Y4NSqoHpl_SSKFk+n>#< z%abjSFch4$`&R+4PT3VGoQng)4i1%1 z1KMqtBBi9l%$gY+rS1b5SV3V6U-uic;Jt2wvB1V)#&L|}gEqXAXiS8-og9O?MYDY* z>sn$(jzc<=?~s(8so~&J)HZajRQ`yE=K%mobEchKRM$z=Ak5V~q#d|%HKZkYZNy09 z{xUobWmElG8U5wFd|zTN&%nR?ZWvGVehMb+vL8y&Y@=wZ?8L(Svhk-HetKB^rtxPb z9@veBnj*j{;UQr62OD?212xfB<^!RdENUHF?fKmXz9m86Cylx#?SC^Jr<|P5zJLD5 z^?F!qc5uyV#I<{`&A4z85ZQ5b2h^Aten|@s&y5mW%#Ji$KCYv;Lrqf)+tiI+*?qUB z6R&LF_3uSG5NW9>RKMyHld6p$*5PDWwY+qYii*FWU)B(JyRT`btF>O3-uUKs_bg>A zK{&|`s_iNPvuaktnb{XCs=F#3u;Y3Zv_yg3)FWBh@#D-}R@LH+SiLW^PrX6n&XUi> zZGy#!RgvRNB3JGvl1Na~p=Uj*!=gX*YNHoi^al7unU9;%J!BJGoSi()k*uuTo$`F{ z9~QPVW`CBE_V|#<4pPB1f6{1NanSJ4rEF$ol|03lfKIE zCVvqgq+o#wUBNru@~^0Q-jyKEYtWO$0j|Z*lB7jftuNqVmjr#h{9)h06>U*`_(kg%Yc0l&N%|#&n)?1Y*6+{;)O^~Q;R7Iw3Vauy|G~`y zoe~C93Eh2=be-aO$r$9kD1e>5U=rdD3>Eg_&tPn{A|SWbEd!INl`V^>pde32dr9;1 zI0Psi?$$lsG;McCGz(56HJea2(U*sJlhXC_jeX|EKK0#SVwz&Q8Q4BU3F5(66Q1fH zwsrfPwyZ}oN36Szvh_;0Rev6?oir8xnF=vQ2`t}kSk6E*^Ut#4Chc`cg1-JgES`FS zRqw9WXczrc!LOS3cX4 zI}WnCW-`7Xf}{NEOn8i}=8|fjm6XrsRAdnK6bR_cSfbC+1)t=QS=UpCTIch!DYKjt z6!}2~Mw6mOAJl-krl&Mjb5uJM>UpH{AO*KqWUP|Cv|Mq$5V1S{a53v`!_DT67q%8PO-KIAK{!WL&v9jm4PGqWdIeO%+&B@rs<20Knoc`p3n;QDw*&S}u(!bY zQ<&w+aJ0)G=)cwzwRQ6F!oDtr#AMm7Uc?Cxi{wHp_4i++IIFuSJq5F4&aP{6PPy;C=}-i~DH=hu`Z#%2Vx^CvWiZjt^( z;2-xfd4OA2CSQ}@i!NTNyQM(`m1PDC-qrG^O4p(Cwglf(T_Z_*MO8)>T9dNiQ4;@> zKB}5@RO6PfRF|>K1o@=vS0M~h%R7=gm?3BWrFB-(^MNPDn4-0MmH#p{;8DDy{ePy> zHWgC!`-YjSyIQ7hn!W}M{ew86(*)>5Ey#q>1sbqRPZB0jzK?HIf5SXClaHgPfyNM{ zj5ng>J3$WS7;?gZWA3@E*e)koeCLmBlPclaN6FfA9`~Ri$-bFSO<(#vv7^ak=}Rg0 z+DdeZN~>0I&PpAJybIocypwY+HD>K&9dk}kwqw=MX(J5AYT>iV#m}eoGhV%!FIjgA z^5brbX#6C<&Yem1DNEr`(-eN)Swxca`d|Xq?C@cI=+~4s09X~DLFVO%C4COw;_6!#GOkE+g|CA*iNJkDfqIn?|t7gPT+;_-cjLua5G zmo)ltF`DK2Rg@UT1Kaj;iG-rDz1K>Ku8w*XRIF(`ws}-=fsRchKlCr?u_P0!FzPK! zd$BaBNaPq;&<$5y7MzjiA@&N&T~8UVfouAXGHq`%Ua1z-4|HXex!X1cCd;_u0s6Y_UT)GyCpIp`>=n9v29`(~;X(^XMj9>GOvMng>Tm zlE;lcrDGdb<8q*me5o6k_lnz})_m$O{hK`lPPuw5WOF&Eaj!h>C;O3tza(^;tX zY#$yD;i1~Fqn2_uI)QP}YJIBk(bW(TB>ZXb6u8CdJdC%vc4!DD4eXC9z-yARs>{g8 z8#$m`%uZ)ZvMbtHGUJ1cxJg)y=ppG<#OhJ(g7 zld`#2c1NvrlX&mQ*cNMIGs1i)2i~LIJWdB^hl+BkJFt5<^;ZWP?e87Xx#f|agqlb8>nrf*_P$w!hLsdq|yq5ADDkpOL7~lSUT{LuFyiC86WK z1itKk(cnX_dCZTJosN+5XUs=7Z(Ii<4Tm*-|ER*lz@i}fgX%hKt$$g|gLrMlDkKcO{LEOXy$ zk{K!sO&!mIm)w&|b&ZP2=Y=Qqg{F>!yMQU}(322;pgqdqN)}!sdT~e90#n#!^yu)( zNhbHE$Oa1fPH8r;{Ib1p(HD9w2?}iyg3(0?Af9(qWtasJ^f4z#^a@d=-N>Fe zP90eEU+;G$`JZNM#aqMr1&i`6A2r47P1M;c6!wx8q@+)zTy^@n)fQw zV9=@D2s_d6(6atQN|_J9peLpkT_j3(S{bmG?0IQ)|3r7-D5%r*U5KtDm*`P&8m#w` zIFuxUOW8zYE!t2csmIoqcz{7f+{$=j;zY=TEkZvB9gWR{H<_HahU^wOFOaRq(U?_f zql(9wC(#R`=R(v887bCKJ|WDVMgcQ2yUdkZTMnhB9PW-W?@N~n>GEAlznkL25G%M? zA*HF`oIn5{0;L(geW?RKe<47l)tKa}c&;~PBniWSBXb;-{sx|aF!9&@j3Fb&8#VXA z0}e;@cj6uSV=Ka07u%GzR`+OsNupZB>ml$OHa9WV=_2f^2r_SC9bK6kCYZ+`4|q)$E0aG$ zx_G`x-``>WMc7y@y2FVxtL{bk{0WS-#v2j7y>LRqMX5bOVDZmFErUN9D}+M9^0HvE z+*6G?9SH*Sn=`A}*=LH+XZ9&yH#wG5&A_;alLdbR4+jBWJsrK|9MmgGL2#g#fx1%5 zG`+v;1O$$w3m`OBJb5(lO-2K@@g?O zi_T4?!(pPL(7GgYTfL@*)|(6Oh6RTsAh1Be;E_YW;veL3aIa~%Gqn~5YHzI+qmUi7 zCQ)yoxxv96%Ckl5&#c0gmi0Z$Z8Du#L_X#FU32guje?UYeCxwY!dWdv5Dl(NZJQyP z+B@Xj-1)>1KbBDNc=}Sqvdt(Zm_SvdQ7H~IO=9Ju<>7WoToh*xl$DA&TFV4HdMs5Y zdEOQ`T;}jFMNKlz$8laYtDG-Oo|o`l$$Kc^2g~T6B(gJra$!qFc0TUI-7wV2m%ZQA zc+q$Ww7%!23jY>1B8=m!)z)G7->LkdNr#E~7rU-fEuXDbs(-Uw0$mqe0=K^I?dO%m zIS3-vz38aG#uXW}d_OVXKo-7ezq7tt3iWP+ZumE=&B{4wjLn$=AaWmY4Qqo>scF+` z`Qkw#;lZ()k1!7E8R80;n1j&Tu8vfpr41o^XCh4!I0s^`QL87~F_P^cN{SS3> zu}J}=UKIv4-WK)S6v2;aG9&nM8ly%z(U72uCA+A{U1R2K>HA>~TGWJq9aT1$mBGdExI&I@ zstuyXo8G6&3QjOqsZkJ#muipQqO^Q5)^JT;vS(;XnHW&0NtM`$ObJd&PDF7k)&Z!9#DxH7?JlvvU-$nB zWBxlZvENwqKG9E~erMN0)W)&YI*^E5F|VHS%LPW2u+)U*O+>$;|1gBj;=w#bpPCl<66un4|SxF zYcDeY!Uci}o$%`K>NMW>>m`Z`s9}K=3EtGdUi0;S&AvojEVVN=)K#6wv0~=0r2OwY zNmNa9(m2hs^p47_$q@|gi-B>~wO!?o;<_##)Jg;OO4642T2Pp4nPQ?e*K_lIZ&o5D z8g`_0YQ)|rh}-X&O-AyiyI%<8*(r&5)1*yxLDs#^@2eIc9*8$Dx$zuqNs!^&s*+{L zxkd!4BH;5WPe4QO6)dE`NRZUgC+8L)NI?MU?<|RlTpxod-7~>izalwXu6GI+K*!!YM_|_ zzFSsaJdq$@CG?h@+AEiMvQ?8Go|`Qf|Bndi7@L2Bf_XB48DWWeX z|J&QKj_2oWHzE+SE>zg*|3fmDak4p)8d+-M5wS}!!JjEu_kZufDtQybC=b97Ebhbj zHy%*Cn&;^<6by9H8V9Q0W$&4D$!@4V)w{0T#pchHzUMn(qXnIhDAd$bZwCdu6M$E5 z=0OH4ZW{b+LWCnC9k7o1R9BbHhU3L8 z*2y7AlTOom>AX5{ynV4ANaaihD&`Cbowf{BISsCMtp+>vbmEdGnk3O$aQWX@v~}{F6Li%YL>a`fwva!eg(|)=v#U$+VNk)Tp@~7j>kp z@E-B|%TIu6e5@?oIyudu){MH=eL&_lcS8YSlULG<}~|;JnfCRC|(if z*=5JB7SNUGuu?abV_D6cx^HbUcUaLU~B^9&$dtysPCc_O|Bmc;0p?o1cFcHQ`nhHy;9ze;ir~#yVdm za5sa^iF+mM0oj*2KDjx1EB?&QclDOVYuC4wU3qBvz7{P-HF#toJUvp;=xf@_&_|P4 zw@?a}3?b9^t+a}e)l~)jY+r~O1B=a7=%$QrO}z|*tu(KhWUiZMcXUeCcGIZ3sr|rE zy1h`RRdgqB-M3vm4J*~Fz#fM~?~X8dfU-OlEtzvJg5em#dqH@rrd!&Mw*9@@k-5P< zVv-Dq8>S(R?=Y&~RuNBvi_5=P%JW4j+B?&LFr6#l8E?=XN?P)eT-xO0{K98y?}YFC zI5J4vOHhvmguID|QSTwmO4|I#*~g%Di`i?(Vl8$IMC921lMs+;03bbHx}chTev>uy zl1%DJ``TiTgaD6nOaQ7Pk8nWhW{DDPfF$7ONEYv#lUCRsV;$ZA~^W$LK-4ew*OywE=u(^{<-fp*;TJ;|JQKRC!r6h$Vjahb|)%BXzD z`TYq%oM_fK5>m&+3o@6g0EU%ovhrznP5}$poQham)C9>ZthXK|#oAyu&7R+(?9ykJ zK1khLA?5>gg2@|-Qa)eXTM%=sDT?w~L0H(+a(R4Go0cYQw!5T>rxp(yB^w=z4w6O@&LLvbs zRvqb{TM6&XWJKQ`o2?yissD3L5nThT2jQd!O)$9tF@>#fQHUo4pQyzt_Dw>jD0=v(*n8syIm=Px=fWR=S$3Ds<=a)MtSyS-Au~p263<4PQuZ&o@BLw=JN^K zbdC2;wNm8Z*!#~PT3QBW^xsF?+7buaGL3RlyziaAESY{wiE)_ul4l{GY(fr6n279t zsyttUP{@pqrbhdGhWg;Koiz!=Ew@dBH%!b@|ZewyZXBzkg=3g3j< z#2X&s#t|v8b3p^Eb_fmpKn0nexh2$-X@sjIuI*1U*%GqA&_hDjh_wwqke99Xj&JS} z%=Z9i>CV28*yB=>0-CKgi(VI+90>T=vmz)(`6M)mHz zjz>)V)B+=gNVmj1brk#F`8GdaNE zRNec**{LQST5`5<@lWgx052uT>;qZ=_C9KKH5dzY8+NcGOe~*{$thH)!^XmR#LRmRlXx9ZsBhO?B9FN{y{T1}ILjt2r~1bAff+Wt>WCAyn9p^Qy9zkp5V}LcvH!n7!@?Vz#H&fW zrKPlX*2q;IZ8S5DTy=caL^u@cF|0kZZf!Wwd8=U8ty*syGdQO?^=D14!Or7E5NV1J z8ea78!Gx|IwSP!^IcjA1G3AI}kE+Ura*?Zi{2LQ};09saQ1$j{_Be%1My?he6?)7= zagBWJQYAYRs|#u)OmM{29S|8i`)b=1U+^!?xwTtO=me=)F#9Hx$D|V!r9nWr^^Yx6 zBZ|WWq`tu<^f*|Ce$1Xzw?_AyvnN@nO3w$^RyRZZ7U%Vg15d!Wb}hBIt?!BdzgV?) zoJ~cnhF|qQxuMtI2Kj`vbct?xn^aFsI@lSGpa0yIE-zzp8k>fyG!wrwnjFfs0~l%R z+Qh>X#hWJ(M+pU!4|{4$ewUFKv%sU~7G%EfD(DYPIy2MfQ2h&Yh4 z9bnm#E&u)m{e4J4m-xXg~H&sQ|M_qKkt!00 zv5S9(BKu%PSLW0mRk;_;Ilx}gsD6craRhU{G{2SNlcOl(LWDk4A6g!cKpMCFC5*B> zas?*Xdsc%lOt{p2mSCH0*IWn6O3T zi-q--P|S+kCEoRq{kN3p3eivQU|*_JYVarvTqi$0rYk?#P+_EOAC_Wl-xZ z(KvsSbC{xxcn;A+K~?A*SlSMNhR@}Z!PkHO{gB5~U!LwmN-@^5`3DBFqIUBjR-RFH z)0tDU^3wQ(@O>h(%o|i9Pt=tJ=8jlzWd_s^In@B75fMySxYU;0& zJH*!55lZWDrGQ_o6@IhRl4X$+?1<`W3|etxVOiiv?F-ZlV#j7forkDn5EMy0G zA(n12z>oZnjKYg$J9-sS5jui>tKsCnH!J^|#O)RH&hE+~a<*(HRGA1p^_2hgPh;n= zNZ)biPV|v&s)|ANb)PiKocH&Yr|(Pc5PcZM@;*{ucPwdlX{yBTHMC<>ccg8MgsCzg z64wel>^AH*qcEpJwH?wP!Ki3v0XDQC`1+lt!efV|wW-Ntgv+ERns*tR3Y_;PW6L>ZQPL3DkI`pg>s;^|`|s_ge0TaN z&E zSxHdQ8E6+kaScnMxSetv|XP<06As7a%T$ivvP22?BlZO%hyG-dpHFR5K^S{eHIk{~XcmRqUr+MWzkt0$rR!}H^C zG8y_YgYR9+`EG)9q-+St2Om-;1V8nIFX{4W^;Fm|Pw2qZ!F%6?8^TNsgXsN3NWv8W z2txrBgNI{cbE87|QS2I_58zn(p(S{dw~BNydQxs_gYB~Hh=-rN`vT(iqAR2gJQctR)SngnMHnmdYe(Wdse6 zEy!U%%=11xQhJwD2qzwk@id?0%|3=FRMu-_8o{}p`703UWG-mtNg_(y<qQ`*ljv|Inq;{@oarZ!BW`Ynj@jWg0FT z4LHVK=>fv$u|iLeEM@PKeXxKv}<{mc+pM6oyO!k{njnzl@`^Xf&96^dom zy^2$x6|b(W%_V0UoOJO_)fB;?K`$gEZZt! zP3N%N+ComBs%p?}1Wy(&(nSi}=~mtk!>AKxx-}rytfeex15!;5T>K<35kVY}()W~W zD4W+vl?Bag3S0u;VPsS^`9DAHoI)yISS3fH;6z3th6(hk&;6IBs zVjl{2!(Iahz2%S<2@`L^Ix>Rxd^w3~gR;`pc)^Dsmrt>k|GfIb|CqziS?r;$PU0MD5#}*0_zAGX`yzy_j-a+L$XFp{O`t=w6+KD(AMxiBZ z9f;Tz9x|q=M*8wSnk|Uj>mI*KdJbB>lYT3~1BZcT^1K|J=-=1W=v*I$ zbsW}%s_x>LiK@L5|2c6^BwadCi0=npu>nMKOTBjXeHAxQOhGg>?RUx1aZFJOTirA= zIkWT|yu8}24{pYG5~iI<1x2Jzz$cdFcTBi6MTSpT{A>!3;`O-^ceVHq+plA5^TU}< zy)0GNSI81jb||QgpU)E#_aV3H%Ox6|YxRP=GNsB4tE1*JZn#3Qmj>i6Y+Mcr|1b!1 zl?vV1Kw_WMm;Vp)H1Xa(#t^~aZ@dKmCLr%-dOXoDs20{w_v`Y%wPE1d@`Z^9fvsVW z`qyraSk=62bg)faMEJzXsH~m_Nf!|=B!47mwOgq)R24lR5@eYV^Zmkt#RjVCL}j2o zJ|JO{DI!#)pEw&5Ryzfe&4{`z4oJHhc%H;Q_8N##6(A;+<*uB~uhnw*K3%p+n|76! zSByBPq796#v!aa@T!qrL*K;g$xd3h)vG15)*IQV%w%Q5A<#BzB5vM;Av#T#S} zMnZntF+b&>^5xz=9Ye&AQ8>O2>96?Q|83gtX~D&R+Z21dr#AURn0V&Womuobx;y=| zl4j3-^{xEr5b)c5|F2iApwg3e|F`w}sv}#IWtK0MZSN#}#E*;MySo}R$gUgw)cpk} zq(6$EDl8Qt{t4)3?C4VezA;<0wJn^;cBklw>ksblTREe&S~y%%xAs)E?VSHwcQ)8k zHP)1W(3*-(K;|z^axOK3^N2z}P+d*}5659Q&Jt%%O`4rrtSuE%_wAb62QnWiXg3&@ zTA9;$D_?Js{PkwuD54>meN$zi>8v_GJShzkMZjKC8D?SrDVPKmvhBx;)i0FRPuRZ6 z&Xx%ZinM`TPW{!OT_0>zFX=RHK)**)xwx;JiD0wPPicR{%{;^w$p$vlr=Zcz;Wv{X zGH}}A84pzmPv_a*IU|@}YThpT)7;Gld*_!k;Z`NxKKo949)yZf;HLpLYs|HLo?AL^ z)%TXpBTnK1*QpdQgay|joz<)(ds@l#+0>b7O|DPZo$DDy2Q-ME`J zuq#(pVB5lKA!(GtZ)vs5w=>>MIH$V154SlYd;1zlwddK?_F^2#-99$LZ+7yfP-08( zN*;nHQnMWRBd?B{e;nV88dr84O2ZeK{K{ffbYcIWt;d#4=$k4*lZS(ZdN3-;g>A874yD%& zex&-+&K?L!H(ex#o-p%RiQ`Tyel4)~Me&fT@dQYt-tmbF{6Y*LnEKs!dryP?(#Pyi zi$Bfj>oK2I@d;{DO1 z>=LjX3qem5cu?x?K9!N8Q#8MI>YY%2!z1tJ-t!lxl<5ZD0Vzh6_)Dk6bm$#xE-(u- z)K_!uf5z8;`vTDc!lTlghNTSnAo{=_VJlFOaB1;DDyTD6_*AA@w{>33MIe0*zx@Xc zG-c|_R8(4({K81#ZQ=>2>~7k`;Dn8xEIk%^CJkkJ9NpUxr87&&+B)oZX?+5Pe_aPw$7$cPYE2d5*y^7w%Wxuiw8HO`xi;han^( zpvlOk#tkjovUv0GD7n-B`q&Z8rz2N*g*dWy`}_Ly6?hfn-K86o^b$%Zg%K zWEnmvGC*M{(vZNxQw~b%syi_a^|Am;_+7wm=$SYcX%6o2gQ8TL`iG9jg`G#x7S;0t`;V5^pEYfr2wa+d}Bx1 zpiXr{7@=T_f1Q9_9{0x}PlpdVPF+wT513~}2!EfRI)v}wd9`v;-A&;^;JT*PkhXMO zjCdF9=xV8nyP$7aIYs=cFmi|O+wB2)Y1b~Z4>kbu&-c6MvtqJ}U^|dtNI5x|?r6uR z3CrfIvmb-=10>X^cE#kG{P*5_9)N*f^6;ElJAX+SncN@R9=dTx06L@G?4A|>XjaCm zVb8=GVf)u8C&dBxq72Q122%ma7{+=)ib3K{sB@CI6$dCqA29bR@@!O<{uRb8N$|^_ zqq~Pu!`mTv6xrDcvf04;uFFS2bR}QoXS}@$<3)-=&&H&^^85da4p$a>PHo#=t*|ix zwQym46KZfS9o6(pX{yvrl&!V*~u{gFJ!(1g zF2~t0q?~6%%rkqFb$CCT(>8%(3D`yEMUocm;t6d5o6#}1|45mL^L{AyIV%PD;>QSQ zW@@}_`lo0w!V8YfXNx|$-a#_T%6(Je8i!U07U7iQdCUF}m1<2=u@9RbgWaGRi|)(Y zhkLB^xL;IhMYL5|85L>}2qq5^OWg1!x{xFT$!>E&RK}ee$JG0{--HR3zmTA$Zx6;% z#*|)NV9E{ga3S!V*~KKga&4hi+6t0B1_Xd>#lmc%?~M)5af})VR15DWroyP!( zy;{N?6T;<_M_0`mYp~mYo);c8{UwM$If4V(G_nI1fAigLI{)9MAq-@XqsbzQ5G!5k zG@ERYTg*s^uJ0WY=ct;{`RE?!PrfE*cgktb-JD91LBe8A8s#e?b1oXL+#zCnf=-Gf z9I%`)J9}^TCiMrZ>dUl@!=3*H02LEXP)~KvErx&jGfMxyJ7B~^>(h0qC4oZW;lyDg zlGqg`CO2obLpMi>pbFf)OcAz;R*!9F{wC=hBYrV8r;7TU=6|%v?lGQ)?Z7OGTJ$Nr z92+B97|})^2z1j*d(GU|G;ZPl2x-uSY^&&-k*AH5H2-+f%=y572_4kjAwTW8a1vsZ z_$Gxga0k;bA#zzM+882lWx1UOt$BMaIH~%O20P(PRz%EbflGLOXl+g&S{OI&cE2sB zkjqC?$%FXoY`!i(@?!jO5m%(LPB{kQ!qhM#(FFAp&-f0ZP3 zc!u6H-J~2nx#d-&_xeCX5RNAz8EC3>FH1^@%EjCSe^$}f7i_@}30thRfFBz-H>4t2>Itq>v zoG7@hATS1v9L$^p1h_Xqf*S-ExE})K%K`HLX8oRBGBLv@t4P}Lv)9|R-fU^T1^6Gj zD#fmT@KhiAwkI@my5}PEE0nPje_xdb-_d2yzq?=tC2X~$YCqz$NnpVf>@f1O9rYIg z(>=3EaMTVpO7l_e%~e=%gOL4!0&#sdGeK``P;#? zq3(;ebR+`1;`(ma@~{=Yny==${dWupcR03DQpT3P#j?kYch?eWJs^RZaw6QECz0^jV87)j5|!;%;vB`Lc)**vr{uAP~i1<<`|3KE?&>n597f6_0{ zCs|rYJoV|kMQ39wT;x5WbO9*-C)^z4FFY1h)z2E2dpdExU%Iu=k?+FroC&MBk zuhE*TW_w$BeSZV><|)}tl8;x#Jv)3`J<_J*b03E>?UG9^p&6*4jymC=4*P$2@n5`@ z;vFd-AAIaQcLA|RV#3cl1>A4bn@yH`*5=fD{x-KvE*-%9ymo0u$k}a&92d$cA@{!X zO=^pEL*Sj;F?Vm$$WZ$T{0Zuw$oDeo={mq))sO35Fx%Q_Z56_eS=+DLrfsgpxqV?z zKf83C7NrTT(mFjNUxwF&Y&C<9*d$?LJj;;EQyL{k?*lnpiFHpawG#NIe+$#}s#KVU zu~-_`^xrf;oS$%gw}u1QkU#(=0*@QN_r%2ljKT~(@_w7At!5z1UjiTo^!FT0F@!P{ zoFmNAsJB~lA&3Om3!-84%G1}G-3^{I>On`cvWh-(0LD2u;BCrn-rfuzpzr^1*kA2` zoC3-o);C+%lJiS%EK_&4asD9Y!`OjaDZ}Pn=hkM-${V)QZJf}~G(#sPc7PN1DJ(-< zSj*UZx#&ZB+jbe{z_vN48DJ{jTPbdH_mta*rIp@#Uwx=U{6V4g%kQoK=kNRewlr!= z|H4ats-vR*7Qm{h{38E=ajVU*7k`$hV2LXurKLtyx+-F>J-wNUcEWhs7Yp!v^;S}x zk^PC~p^eJ`qhmrvnkj$+2cSoQ9q987PcpAQCbUZCz(JBB-~a=>SRJ24g@-^|s^K^Y zUDW99;zq<_(j8P$_3El-pwct$SNykuyKYvaRUOtk*Sww-5%2HQW(&R7rfL5ohK0V^ z?+@0MXQ^%Nx*gcBS$BqR2-GuS8*W#Zhc*Kwp#gvIF3;B3B44dS06ek8#-+Ml#$&) zd%q7?j`=z5#wgTQU#;hNr9DYP>6Xl{U!PkSoXttV9tYrE%LDtIwg71?etyd(Z*3^n zlSzP>?}^De6DQlWxnkaV9=>Y*2~@efw;r@|-^g9FQrg>PV@F#Vz{fLv4cPTu030h{ z_=|Gr7%x^cG@3k@ET^7WE|(mj@3&KS9(97$jqg)><;mOCfH>1mXWjrhzN6ck3fvC` z)xyI#ZO)u`mNk{7&HlbDyWh|j^Ird*HQJW)FlZ+@oQyL)&_A``@2A(( z?uQ@uhl9US=R7WVc0;9iO|9b4dU)*zYq}vZ1=E49eOIp4p^?tJq0d8ZhqE|24zMFG zeD2;wzUa|e>ojhAmTVhQj|qmP*2Hv0icyG0nj?hY}v2b z73ZmM*3pJx@wnZ1|ImDOn&T`CdnP|z0HWIwo<^Kl+DZP$>O<)@yikOS#|w$Fd-b-h z#)d4D89hsNE8#i9kWXJv&Ka?-Jdc_s;yLH7Jb_%j0plQ~ddP_NAsO8X6Z7bnGT}qU zX&+NHKxH#p;Cu0^ONYzDUfQtm~Chxi~H^1PrfhKd{SJ^qb_o2YT_i5 zH8Top0c2U$6gIC5+dF|@7T5wDGYR5S-d2d=UzhG`rYLq7V0-hwMqKERw)F1aPh%!D zSo^NZe>h7! zBs`bvH?4PX+Ba|NK8p=5*?IER{qnEL^x4kGO5f14U2p&#i%%rij^%BnhV6Sf#f@hD z7EkJdFv2VfFFzIwi9g9t3(lN?b=T$>KnG&;Meo0HPxhT|_2aVdiuJdNm5k(QMAK{= z@G0IOmmrAF25aqm^#ze0BHmXeZy0tf%cpV07>%@OK9r%uY3%y80jt|yJck}MqIL1p;wAM9b;YhDc-M?15o{7}D65q5A2c8cYB;Hvuhwd2)hG8SU za9#XAuT*VCr;HVa)S}sI1Ct7GFw+0NG&kV^wx4yeTVvo{%)BA2lPDJRKtGVbE&acs z?KOx#m$7-|%YWya7GKeLTD|56QStGOb&uhIapND-toxNC;5rV@zk<7EJ9l-Qhd$vS z*NqpmU^yU9%Gx@17E7WhtSq{oc;5mk-X|qDOgp@#8cdo?k|^K3yL6 zXK$cd_5ZYyd0!2~_-$*y6!j>T2jULCFG z1M{g@^-wgvu$4V=Up}=uDn3c9rJyk!-k<6npAKL@FrQWfP{gw~ECmMDWm7dwS$lsz zlp)@nESdRg|4y4FM^TM2byt9c7_cL}+39ni-K_+AH(W(Y*YQ@KZ$`Z&Gjeg`$LbV% zdS4ws-U1_5LPF|ZnWPIe;=%; zq1I(K$j?Z*ziO>?h5fJ{TPbpGX*u`W8JSC=0vg9$7EqWkBTA{}Ay^&r-w=DIE#_;$1vRIOe6~5s$V9rNoks1-8&Hg&w9FQ=~Ey@;M z7poBcMSTCXhlLvqQ6G|_x%^3Af{HJA6Sp|!OrR6!KIcNA$*MHg*cyaVmOaKI$avq( zWX;Va7oG-E-XCv98f2=@--4e00iQ#2@qN77aXX9n1!y76eZQaRx2<|cOw`Q9ClB@& zS>FbrkXuS48`4gE4*Ce{x**!<2UAejc!1Q*iJRV0^uP7XHHrjV zA*GJFK&52sIZ}Ot_0Bm=dcLv8Ufe7vs2OV?S&v!p-1Lwt$D3^?F>4jzN%6B-zIdV9 z>VP(MEwwtMgCzFAfW-u9&8y;t=^ng{FpWQ!1f11`+H5xROt(%GpUSF(acI6u(ahz% z8e?7`Vw0Fk$s~)~?YiHGVn0Ox%l`5(MZo^*dUJN>ZO+{?Mm6?TVslO zH*@ahEq_yKy(6{iEjbr!+nfvaHF539S=%-7d8d-<+PW23^Dq+Ql6mSPP37_hE>&0O zg65Jn!N69Q0|G75>ivNkF#0CV@LDW%%>3zTs3M&48;g&J{?f< zxL19pM6|Luvr4dk+aB@v82V?4IgZDfP-9C&RuF~-kudLgnleq7nyc{t`R<6hP|z0z zGI>-%UqxN9yL-hOS8t>Z=6svZ(sjt=@c!$4cygCNO#82Qhs&$|VVAo0=V9a5_+!0M zf1B{Z+c*P$4he&94_PP8_D-4dNmEoyVP~%q0Fg!89jgBQj z>p@X9;?P0-My9=1 z;z^_Cqn!7IXLjKN|H5mYRMbY$bU^9+`$Cy$6jc3R>RlL4!8Z&s;* zJO4+&^Cw;lA@#RtN2f5AWwUErdg+-k?b7^+H{UFr0=hBE z!W8?J(fHZC(n(nv5XScc=H7*UZx76ir_Olv4>o44@n*F+>I7*Z!uSs$gqg11*jU%Y z2(zT&os^$DSJYcE3WWq%VukUx-h1WO^}X2)AN9`b*lHzN(_W0aOaULNWbc#-0pk7F zbNM!TJ<&$IQN-x-*_8nvoZ`js+7HurFZVBb@nSzcf4(aLbS_;(=6qo&ckwltwr983d6V<2P5Ul86VI*7=?s!~b!R1jo*P>OPF28r zxr+w4%sfe@OX*iqg%mHP>)XCrBh^I$s|DOx-9QNOJ`Hi^mQ_LKGsUeBuiTd_2gs&3 z0LoD6Wv#;?*WEJMS`)vwuHgWl-Li=vN4>23a_bK(;O4FI@^NR{l2m#<@cccKo#Vgv zh1~T3OGa7@_?Sx7{qYjScUyF^P6e(wn;+BBIUXu_Ge1V&QjH1-&NA%G))_0S`w&dRo9E z!=`?RQ|}i_ies!zhh>Qj>oYO|UL!L%g@y|>O)tg2Y5>1qcTQl?x-rAa9-o^RtIK$B z0JTKUmQ8*i0A*tJDH(MR`%#G&vhzxA0Z1H;>_=Jd@x50%Pfvl-#V7?)NfhY>l)j`n zWzr_{1eIiQn;AI|TcNLOJf2bPBa47isD)rPo$UK4*L&4k^z^}|zlqNF{5tZg+x_M4 zD*jF(=n=K;r(4SGUqx}`YTyV5ou2b>VrD}JBY*DDuDP@&nD;ciii1>2t0<6X-L;n0 zMP$+Ae7wOs|MYZ`aoj(xKBZzv_0zke!6Id;p*7@28zQyZ%SMGvt#$v{0Vpeg5NN2< zW7yp$_wHodiV`xw>M$$zwDeZ}_yuX4konT*LI_@E(~^CV_ZEMorA5rBYNChzSrf?F z>cel%zd!KSiW?L9Q|Y@e+{}|g0xS%J4izUha3S|MN7Cg1Q!TR1!p}m8bp~>U2>K04 zMCEF`Ju3SC!fQe0ZudR~^p(D&uGy1Qlm+8*EGT-NAhd)^wulAg%|!$OPe(_ls{{Kp_%f;{))$Y}DeKl#&;DV>0`iQbm>UFQOM zpfa{?*#y}0i?>{}*3-MQ_RY}wSsJe2<&&;xyuio4WMpuad8Z_c;N=g5jHXL$UD}<& zQf2OL$fbV_{|*(0G;2b^dMw0NYvtdB7Prk1)Q0%381@=P7S90=Ye_TBwM?- z6!kwel&;64X$CK)9h{$UFVgM5QU;&X7lAFSGR^HN70cR+Ua@t07xCA!(|&61TDy4n zsZQ-TW*-z^-P+pLJ&1q}k5!hhw{k(W@RfY&VwhQo7@6obt*hq_grzflT+ zN45PaBj=lG=r-y!qBJMBfp+BBe%SBHsf(H0Q%tcXb@py(;K>8gl5;EGJ>LIP+D9yV zZ`FuJFAHrgL+d%WJ}QuVOZCj)IDi9~s3xW2mjM&4(32nDr}K31xjFy_{Y783KM= z^AZ%X?RYvL@R2XgMsJR|InJ=q|7);(T4wv(T2!OZC-F0U*QpuA-vqloCDz75w-#8zJ_FztGAMbNo9PTq1~kE0`&Vl#@l;K&cUcrnij@N z?osteby!SWi)X@WXS_*?@VaH|S84Y%+=t6QPM6`oU+#B%GBDo$tED!(58bsg zn1uk3T^lWAR4iOj$A65my^7rNnYKV6Q>A4jQzqP?D_UsiOl~M&8vU1hw57aC1w%uK%Y+1rzb;doJTg78ssq9}h z1(JA)wmF}yo*|=EbmnTc@lba=y`j@6?Swf?SFfh4!!$i7UJvmfvO?_itnV^Z`^iuq zeLE;6-gfy}O1S~$cOyS%P21%2c&ms#Z7v4DZ-=a0N*yc($L1(>GcKCBDa}&(w-mz7 z1x>O5rcdH${jS(kGvg;x0Oe-Y+k#1T)Oo=8+gb|N@(p!UKnk;#3%4*lP?oS;o>4grulGW<|Wr?%pd z-MWK|%I1()0DvAv---#ZrnitPtz~TicNqhps-C4KfJu5?UL3;fA?`OSw#{j#Y^4_@ z*ZiO^X@_>M>362pCYRP{@L27jYljPYaq;vDfBnUTC-*~u|Knv8&xEwU{C{FbZ~5 zaA)$PA@FrMbL~+5O%tj5JNb24P8__PIWOD(`?9o#rA|n-%A1UaCPdXZ1+e*A#a(HW zp8E)UlQ|!JiU{1YiXI6CR`sLKEd>2|Q>-lOH#uRjGXuk&dFR&0oA}@Z@45MKEzc46 zkDr1M$h933c&jW|hYsdO1Py^RU)fHyzErTtwn$n5)qPT)rFLLQmP0p~*H~XebCCD( zbAk2IYrO`SMgCAg!7b`#ihmg(rmgx*)jGxwm^{1+%^s=raNTyhK%PdILvXSG$L^c- zv*%7LfUU(Bpc10Xg+fYKK=#Nx?rPEz1Z-xDOz<{C4kGSt?(GYu#{IX(m?ljIB^lbh z+Ua0wJX^dL=XTemc~ZaicNlhrmJD13c*ZxF?;S7DzYcsA<>o{6)%!K?X?dxEn_P8Y zt^nPn(-*92KAxIrc%^C^DR*DX>@2K&5bwiXRX$Vx!-c|{Tqqc8-M{qmFrSpch6iMq zD54?eP%)SM1XS_36P%P^{!YKuD)-8R7cKynT56!wCQGW787X_4Yuw3bi#~7PY5O%FPu2^zgd z&RFbI%OYxnz8U+qlY4Pr%KwAmYmPnGW9-*UdE);gkb@tzbFp(6n+HcTs_=RuA4QFn z3VLImSpF5^;RiH@5iF28MGv5+RXzdf!X9&CX*pOIl+rptA-Ol%k`@CBrU`KI&+f&s zx+-7s{i}D*iKu|%`KzRAu78|Ez`6C=W$kr3m@wMnR)>%y?P;_9!^^85qqpT!T-;&* z`XU5>|9bc1e*X<6%G9i8r-HRB)JnII^}poQW%Rud<1n_*bOL8G0BU($PlU9$A&AY!s+J~6CHh)_06iL>;CnE=^`ZOpuS#&u? zb!K2ZoKU)dnv19!(pZRdD01MYCrux-xW~M(I&6lZ3ICwD0L}R4O$fb%CgAsco?_@Q z)GIq8cgv?%mR{CHIrw!^)r7`QN>G5Dr zr0!|IeeAw0W`lwDdhMm?c=b7+SL0!lH1i;~lEBqnpCn&|Ha+Ln8`q3l2PLDBN*|L{ zYiF9@$P)Zs1x+-k-&Ih)=Y#HgN-DP156*qEW1AmsHlBQV7oXnbh_ok`u>TP4ec$~B zoUfo|!i$UcrmrJ%k1XrKDTB#kRvX&Qhg_c7#fHXK9^J;BI@{Y~?_5#A=u|#4gV{5= zG4X5!+_Kxn0M+MdaH>+~Ox#5ctdehK_SZ_uMdv_O(ZZgAbIqNpgb}#}XwsuzRuw?w zS@wDj-jz`!-&R1BgMy^%@&|90x@~n|zsV2Fj&m5EzBSs_drNIV-*Tj2VgrA(w)D!o z%mp?_YX`Egwv;31HL*`sB~+~6tFySFwpBV&*uyur}O+5!|#8VHf=7QvykZId=sCre;azY zB8W()nSH{jXPQY@scCXAXzK<|{>O(L%kQ=_@8tk|v{4_>jENx8tA;2lsM8CxCEzS5 zpzVdD|IV8hFwAoG$J4_DIE zRy3{<_M;VwL^}4Q_fVOdNOhNdGzE8%hmLT+lW!Q$lpH0SDz4YZ(qTh zI5xf61TC{CIInF@vggx}{CWL4Ji6g__|ve>YBpAVY^S1UPn3UeG_#_)Ep^4K;kdUL z;a;wngQ&1l(!>&*SZy96&+JE`ey5wR7*7Aqyta$V2GkV}{6+(=@0Zs0x4oG%4&3rw zg*pJIQiIBX)(x3=cU5EPzIIDwNc$HiYFhd**R< z(-XAGg8$x%7uxOMKbK@dTrhctqs_P>j6|9=WayoE}dY;=9WH{;+30?tJe*R zyimN#fXTJ_*dU*aInSa*crBDGlJrX7frU!zLeH-jjd8D-`D$Hh_f;RXkDoTi{=9(q zA+7Y@TY7xth**+$XMH!j2Ucx}^{UEaUamCEsa2*Qvb^`%zPf`o5{{HA3KJbKZm!nP z0AW2SqFRNu3Mlj&yqJ3)e$U>?*Z1%p?p?=3(EB_pp$V+d24~FMCN;yWU%zUfMVoPZ z?yn990FPvP2>9W}4x|I_E21~T_rut=n|w}nWFD9_HFoE4ZYTci2EU-3XxbDsMuXIT z%mEUPm*g}4))9dCX*d3{4u(|)L?g73Y;z|276V0^yR05qMDblLQwve`Sqy7ec--{zsId#b^fOoNdW$sq0#fsHjgRkl$Ec0}5{!JqU%-99jT7y%qjjD)TaE&T~jw((;*E+y^qEwWt8A|n4ZBy}?vE6yth z=HmFOtr7Z(>zT^Q%;W+_2^+e8=ObpI+;cE)bW(`%YiuT~KJHSr^A{sa1m_+neEDR5 zo65H-4{yVJzt~dq{LC3XeExRxF1OQjh&UoO_?g3B4uSi3FT#0`4%UOB^^q|IZvecs zzr@JD)<-`{A?&|UZKe4HCxc~Dq2_hH{oHq4VY8=|WG&u!f5#o9fp8qbtt~DEs`Xer zfUWl3D44OV^N{LK-mSdO1x8o6ok4sak7#WwAdDH(Jw*+oR_ha8PC^#j0k(}n*OnZ4 zIS*oH$>?b*;{Jn#S7p%aru8oq9=hPOl%aLHzFnG15dwLYL3a{)J$j12K)J6zq_l}D zHk0J;0tK${`i3}tu4STf+N;mClZYd}s-ZagdzHM@I;(0Qq!qmOIP7j12wIm4=9^3j zG;V?702zg&=dZNyZ5(mkHtD=&xg#@apLHIIm5}a#*#BdQ_K)8L_E&!hH!cVoR+^#X z53g@qP5V0EK*4t`2rRI(O-8+A(9h48&8L3pwa5vQgzyUYy>XxgEkRp1GB^KoW76wI zn!(ZeJ#U!%iDc)->2Pr}p-obqgw`^-7C!Qty19N~7=c>LsB-uS$riOFqVlLud9qS# z9h+0jB-@HQSuAHjSu_~nAn&m@)Kt~}iH8<0`C$IA*_b^EY40%MKAfPS`_wKwi`#AQ zqniu~(@sPIYt#GEco4Z0)&Fg$c7<_!PZX^Xnr34e=9)xvNH*RSt^@1^D}HZyDR6V0 zDF>6k-B;)BnE4{vRw$cV85xctP8^p0&*@nT)KfYez8tB6rT)Aw;I?)QTz{Ir!C8N? zi#$37l5nvvUxf31g}wjFm3M7B7W3@Z(A1E(n{gOAJa=#Hm-F0{6|<7+t`(g%|;Y; z8d|g#C}m1ty~$Kd#3ELtSUh^)Ye^Tfs!X}@jYb=ISGY^? zCyz^!(w>_MP1svs0z=@Gimd~pOlP90qfF>etz>SqI6ASsy4`DPUd|e%`~To=oA_qo zX{ao`(*)6_whz~SVY=t$Cv)JZe}h7Qgan-n$xj>k+ccyeLrw|ErMk0HWK5JBXE4?6 z&P`9o#2K{1$ag;{-(5rvYm-w|>2sNs*1pQ2_avS-kkTSA=E0-oeFNOXxq8Hhbg8PD zaNS<-gNl7|Df&HPxF6$E9EeD@y`EC618%)|>6B63w6}D*B;K4nN&mS=wh6K-Z}urG z{8A9EI+(FnlCZCY8=#{LYN18>*t>(!$GST}BmGedxdEkG ziM2QiHPtPHT-ev70>pS~Nw3h)3ru=$&Gx|3tFRTXVk9ndRi|gYT}jTZ{w`7^Vq=|=r5q*h0& zZ6v0`ACwi)D`dM+L0t{m)Vl0;L0OK%KUaaY>EPsCi!gBs&x2}D@3f|MAYk8Mqca2J z(Tth{^qbSa6v zX=x}^yUY3*DDpGJ5Sl;i)48(B{zczxnmsXo*-VoE(9IoCC+i5doy3rFGmmR#fZKikO zPoV&)jN5)4gv^U+cXc5O{_2M*%4e<)$oXrEp%0fst$iK7(!{^0gl&U_yKbMX>OSq6 zBXvS6v8bO`UZi26=3HJH_e8js8m5VO`y?+bzGyjvW#FZ~PR0xxQfhTYobms=H1m1| z_d>CJ9&W|9Hfmr3l^p-gMZVW!XIEY=TMxJes^zFA!Fyg zw+X>*u@{bHn~{z-cl5bVhn%&pb>?X%E5F&P%m$g+4@>w2ojFB@mMejpDr;h zM*clU-sxVL6vNplh5osYnmc;IoX8!ecjU`CJ0w=s{t<8?|k}4#_Eu z``aLnXVVSa?+&joU%v=h|1Tlghv47$UtfK96{ARkp!p`M-y6k!v^I0LwP9Bl1D8zg*zmME7IFo9ui1JXzZF5o zOrL_gJ3|9NwDuxSS{d=4w=_V^WfHY7qN;q}X&8+PEq7c2U|jtvp68}`eI#$cEGl)` z4gmJ;W;jbEhB*gcD#B~GhtTXlJ>PH1rG|jVcKu6)J<_Z3=XD@|dH8Q4d^>-3-ImtE zfBRXjh#sRGN|v}+TU}Qr*;8sJB-rj?^XVgkWfS8NaSkb9L+wPbn;_% zN`AcnyM2+od$4TX3|hwV_Rp<<+H1fxxpi-85^Z})Q~|4 zpav;mueA}MX;=kuS+x>t`HPCW;t_OVQ(Q$KmHSbc6xt$#-SOl@lS8XXL= z)2}?*u-EZCRy_TXu*9BTefxJTdiMPfp}hn49ikn4OvrXnG%=juKT;hV(Hr$Nq4T%h z$!5fBdGjXD&#Tc_EXFh3DQ75irXKO`X%YPxrv ze~<)FB9GFnB$TwmVY=BCn3S3{13#%~_Ha`frM@SH;Y!DhL}ZK$GL^;D;oozHWvnX% zkaY!lsZH)XTgI0WDA=PLNP zh%4aQ5=`OP4RN^_)h;8Wc?77r*16~p8b1u1gKb4ov^#xeH4aCvXY{4^Kbo4%)dL~_ zO+WD|l!T}oQ+%M!t`Kr8^C~$CXFFRcfsbsh$&(?n7*SF%fv`K?n$@tqm`Z5#hb1Fw z%8>~de7Yc?JlxNd!?aoJK$jo;Ex>aS5NvB}3_r6zd~h%x6kF7YZADm6DH|{A8ak}1 zGhr%*nOB5>SauiUu7YLUHsE&vt-iW(7Ro(Wx5lN5DJjyQ=3cezs-w&>GiZlY2JrO( z_s!d_2hh-I?we>-J@?!W)AaS>^71DYNL@aMd5fTT%|Nb2w#C+*&2p{N;Fe53Xv(qih?k;cmFvk?=T|FS ztg2aP)48s(zVn{f-^URA{x*-(bgX6Xx>xh_X!`79b@pp_vij2}aXI0A?KkzNCC2{1EVGg)=I5oac@$bYMjKIJZ+VYay=pNt;`(Xw2H(7QR;AWcbHv58As zLd7(kk(IQu{yoa3Kb55>pVl918N6zuEK{;2u~hpBth#@|dC&F%w{z}(DK!hXaH~jm z6u|bN-NqHZ-acl^@$HZt1#YblfhU;RW#9HmBz%9;{3pvxSUk+R(sr`zYcYZ%hYQ16 zM=9(&j=~jzCA!t`gLoSaj3xYhsG5IqJA#-3c)Y%x=D9?5Kpd9fzOr#c`m?{yo}NAP z)NVE%Yu>g4TbCFPr`B^K@o5)Iod-!(p1zwf>)&0z2-jWk|8(`k)pxHPZU=naT#7j( zy~2S~<&UP6xS+L7oET6pgef7YGWv45O5<^R zIp%bM%UwIyX?ob^JSy>aFCKOt(7i>SOVhi5mVc+x&SP%Hm?9~YVP`N1S=^k%!Nnoi zynVB&GyK@i@Kw9nGT&*7lHXja(0zZvaSxH-UH5Hd9sWE=)CH0z$q@}v{o={9;B^*6DKlQTGRQ2TAgcSekFVTM>1IcN9E=PO zA4#3Fp&ie_J*0oQ-jEY){q3tXq@>Z0nD-R$>anjS&=H#*B8eWZT^&*ol0LoO?f$lZ z8TE5X?Y;@MuFBPXCm*hdSIbh*Qs0IkTPb2>sEfqa#-z_W-YwVDQFko$R@1RPeQTv; zoV+3CNHP#T&=~*Ni+!UY_M#AS3Drjgyl%G<6SKju!)dE@yD-7 z3or2C*#b-o)>3@9^I?gOf7}leVILV}DoANi4`n`>$L+!Fd^8^j+0CH_60gkVNiJ2n ziPV240yvIwX@PsE-t*7cQzfC{f|7gHLMJY$TmsCgjwOzt)bFyJ1T#m5nEPI@<_4-X zyrnqGheQw4vv&Im&yGU20nF3(4OHyK{=3~CqIKeVKLx~ibXS-E$QxX^A9N=g8vk*R zDMCIKF_+&ktMn^4af;L@D0+C;N}1Ob3YYtuI7h@?8I@Z2mSy|p5=hS@xDGw$<*BPr zLM?3bzFd5E#qgx)+@G%aMs`9qx4Y*5^~$o=f>y945;zqHT$7yOf9(4zb4@wc;lIed z)lgnW_@SF)$o+xL#S`$QD56!9I+{MYxB3~kqdoTC^b#uo>W-!F^-$$r!*c`ZwJu+& zprvU}g+%sZ9yeLrO}A)wW`x#eM2}a>lzy&z_ig3mEncDq7HLu;6$?a;=@oJfzU`1U z8xK+@X^DQqwVN--i{0)ZJAO3*c;Nf|<%QbQsg(?Rh8SKsmp}X%S6}UaeU+NAko0`g zxK~O{Eh{#{assA<4U5rJ2yG(Aa_8Ho_q=lTEi}|L7kTm0^Chbco@O;J=tLB^-&9wQ zZm_yl*Nq_lQ?|R}pXx0NX;j}FoPPJeeeX-juvG@e*ZjB6R^ON=!D4dqno4Dt|9?+!_Z!ERqJb1@6d#a_>T9pcSv1@?%JR)IOigWtU{Y=MSp~irA3zm& z8tUZV(+*rsKN>SJK%P=gCNzk>Y&=+t8HG1T6JrhV(D7vHVtgZ}VlaO;TzHjJmxn0? zJM;Iaaf-XX^ry@nLB;!YsS7Z7!LIy?dE|>S%!ZY? zaGmK6V9SZbpW~(jWe)J_CDOVEP7Fa_ZD_4#pix~M&rC+%j3+KdX^4#>=bk6|111CF zrxgx%gu@`I@zBN=0H`#J%A2i|fc)wO**dk8A2~9xB60nWp=Gq~$537J=B4%I+50=I zrYAo2!~H0UK4`cX5%!a4rV}4gH@(vH&%GS0p%~(0@96b+y%D-&NX8y1f(4x51D_d= zIHRRIO%{Um+$acxElZmAKmY$lVxBq20f#GfKQ@&$X`!riFEG0B`(Ml9k`27j(-oVq zQp$jyB<3m9$^5x>dR$qbUkK5!%S^*!QA^X)LXXqt{L01r@&#j|uRM7B_IJ}**h@W6 z)6`kJH~i~A|2r&YQCH2pR@zfhGkosq*7XATF7gbZpWwXxY<#MKtRp2?lQcnrE~AL> z&T3k&>hi%oBW3BKP)qOo|Kt-S8=MSm2fb5@%M>tL|9LsX=LuujZL|#99&HWO2qfo! zSjd+f9+>NN$Mbpk2nTZ6AKmZt?J_n;OSJbbhDttc z8X}Ea$X8g32~m!c0zclp3qb1=fY+yud^QG=tyXzGzE{-EBaceB;K84cS<6vz>}XT} z+!hy#MqRAzIm4wpEVr$?7#_5i)4=lFaA;jlHbow-5u^VWXP4#|Yv(*)K3n^=Nal!* z&(>FKTzMJt^Gc@h54W?6{?`t6cFgm5Ir*ccIIt(_(|`bmq4uW^M?gxP*8kN1glbk1 zw1(MLnyp!>w2onb;|Qy!Gwv6KfyDlb%$vHYOQmp`{Hi9X#48oT+51F!wP5eqsZph= zmDL|U8~J9ap&QOK@ul`T(yLmjT@9DClvNHGJ=an@$Adp!?(adbfk8kl-re%-tnt`C zii4S7f7p<0==SOO#x;1^Bp;VejaHnTn%-Ap3DbsVrB zwvu>*v%7T=r-<7AO0eK64r{}Ma_&4~&F|1nPR5;W9TwiC5Fa zxkaje9thIpXZJ+g43_9*NU@VZz0iwvZkyiwmWhqUb5u9QX_SOJLS0PAWSo=>i=un9;eMryqjh7k$L7VCSUp2 zT{g~^aaUUP*0G%xf^6wRExOm~Bys?DlV3S!zXfgM?_yc45^TnD*^YT$gm*Obah)+qqGgs$qZ{hqTZ57CEOCkl>>ucrs5gKfyuFyWjjCd)1Vq# zKy~BNVf=CVu=CXTx}W-$JirxFc2Cx;;&eGmO8N;I!#YH4=+T zx0~JRo0ksFfy(7Q44CF{q5P`_uKQtW#--6cwQ+!5wd387`9xgzT58S2{+QZOIe)3I>Lq2RnBBpEeGkNJe$jA8`56mAqw64=Hw(mU|`&O>~`4&N6 z*Z#&-QkfDP$+u;ircg>s^Za3&Plurk1LBIOrEEI@c|umk8AI+Vm0ud*b13~vYsk0D zzWSqe8cXC=bMz5TzvdJ;uS> zMen-bYicN$&Lg%;$|5FUtUQMZJOk_0GP&D5F%)o*zeUV}Xe;O>yT?xPg>L8Cs0p@S1^ zca{h4(e-F~dHBnr8QNyQqD|!uzfSwR9QxS)srkHY0ur`nQW_)Ge1BZ8368P zd;Ya+k@&piLORA#?-pIR)@)ymnUGpP1~HN z8M)7~jMMZFbD8pB?OknCBp8#07kD^zR=saOiP#QI|K`JBez`Dq{8kuWf;t8f7+3zH zP;ZyYd9EpB`1wQgNtHU2qgQ#CB0UcJ>jJnuX0mM}Lrbx0?4U|*$9`l!vt${2Bkk7g z9+l<3d=8nK8m|R#1zOQzX^dhlG`H9RWGT{95pVwa?bs?1_bc#f>jEf=H#P-c1qa}d zgTHX*rk#dn$CIMwcA8Ccoy&XgOeeM4Rh%=YyS(%Dj02_U6~}igpZOKzVPZZ+j%oEO z{`t*>HxH9hCHCn7ThY^MIw#SpklZP9Oan&DU$Cjm4-oiEKb$==kKHe51wWalF{O+f zpQbWT{*-b_+i|*?^42}Pl1llIR?#7Q`D3Nfb?($@1*%n0%=0Ua?gqKjin{&b}stolG;l4Fdq~{oKS$kVuGav*jVu?V%=@0583UYS- z4xCvQYdeSSK)){QzTaCm#*nJ9jbFZ}Stg!FcD4>zn;0IQIDCHD9gTXe?JA#HbgP=0 zE4wykBjZL6?m4EMT8sunpE5oQM<8ifqZ_HD^=GYP+%3ZjWxsN{KY0`F5YTgaa9Pf; z%0>h!NBeI*T6^NKUtNtw3;AB``dCL40WQ8iE+x;iL%c=3Pt#ZuvaP6nx|wIf_{q<6 z;8x)GCI2p&OY0wpnvYS=)?+v|scOc1Gu$V(14BKOhgE|jh{|z;Pi4H-gvp+>9Ww`O zOT}Q^R+UOiNwzos*ws}EjrtC%d6k;c7^)vkE;VYJ-7o}LwOY1lXivsvUxEyU)7@zQ zU}C0Fn#(}7O)Mo zgEZ4y?a3tERf);sz(4N@>+1-rUFWja^{#$r%Ouk3E5~$oW-)XCAKOC2{=hVN;xwkP zj49{j%*WlJ?-xk66KF=#aex2hV%&T;emlC`{sf;6h2UA5t*riLeLANpmw75K^zO)| zY0QqYpPRPxluDjUxt_OE$P@Pl*L9X$1@|w1Ch%1jt!7>ax9NT5Q#NAA2b`_OI=9)q zRC@LE;KdogDchjy_r$@pUuyPVg+F>Ic>Bi%E|Z#$wT(mmd7XE$YkTr@_g(yVt;;0R zt$mFQKOdH{wj#IU&@{Wpz~JjU%cb8#`{KneV_fV%>@8TkG`rQv)SKiUMoq*?-PLxW zRMD}{1o=*5=y~eNB&iyVpV#^zBG`=r8IByoVg+y3KNaA>8E%YTc-3-G9-b%-ROEz9}BYoyj zc0K<;+|0i(UZDZ=G$Y(M%E{(DIj~_$Nm0B)xqRja+k)6*4d&CEDaFvhg2kb&#HXJH z^xiKS&kh@3$#j|#?bs93(}Zm5Y9V!L9XWQ{@>*smjqA3c`|QzGH$YZYrSu<^96^)f z)N?B-n%c7(n)|ySO^%oPU~ubTcXMLdSg1q6Td8kb4t;gf%#*JqZdOh0RVTS~tLA8Z z*c=vO*)g>N!lWqrnd!)`$4ii?Z9qUF5QzcJ>@-S7dHJZ*Qu3 z_KuPAkZwNzScpVvLpn(m(;V)E1xLqEFk(NXR&9ssXKTw_&$52E9^YO-fGqR*w)QKZ z7BcSYZ(8HKWgNVjB+j_?BR~gg@CE&ZG;g!)x=a2zq3?yhpX17j$3J{Mjqj%4<(gKj zF8f|>Gf+NGq-IS29_)y_{r8$9dxTY&j%T=mj>V->*00uU{iM$h4tw`Mb!vJR71zV{ zIyJVEBxpwMj%jZo8-}nqVD9gJRC?V)T#}VvzFwfm`<=_SCn98kKLOTWSs@x<8s(P7 zG6I~nM;7T}w*CDkz3gCDp*Z5O>}x%>VsAA!tc)Q;sCFOr)yI78Z}O>~3h-Ke6B7n^ zKHIu8O_vH#qjB&!s||arU#Bok0R4vt>6JZjtn-JQ%)UwS&`#HI;@l04?S5#NL0nkH zX)m6RSL$JL?8^pa5A++)%&N}*_fN})R84ueeP2e6saTh9QW_CoNxSl~Qt}fa8?Q0T zu;1jIg*k6VzoMJRn>4w?d1wgqPn`iY;Mu27ME0L5C;pQL0b{*gy7jRQo%BE5&(=`V z>*3?^6PQ}H*U6^uP7Q5;M0L}ll3CS5@e?Y(mNt7}CoV&B9jjJO*bqf@4}M-WnigXY z(tdEKw{U>xZ%O(b^lBwmx>^@ zcBbjkklj<;hE=qDwPE%|*%GLeM<-G*g}#=nQ9(PhzV)>1|HgG^TEVwP%}$qz$2^6p zBzf&AjbpmOhbP$+$8uc~mL5G{QpuAJxw4=cCc?fsABG3Rul;a)PXhd@*MLdSr&@#8 z7JT@n7pY3Io=m+clsJQi7eGvodIj*|m|tHs9bB18SN+u2 z_Vd;x(}w5H2?gFKq2mR&?N)P}Lm6T@@KXN03yn(-=0U%$TIi z4?TR>ioNE?y{KH-a;cXClgOj#yQ;pMW!UcnmOZu$nf0iVLIUhgQ-7P{doK-dO#g2< z82YnDVCtqreRH0{#0!$Ie&)CjqGhV!;51G{FStCP1GFe`iq$nu%5kTNs)+@#sgPee zcPA$2Y+6N8-QzNL4(x>NCpy{KpT_)z!}!Lpcrj~=jloec_oQ}99PfrEslWAixhCcuTCw5l z$O-&9AkRedUALn`Kg{g_*ploigeZb-YJ(x!?g8ZZSVcEKlNs6@4#OI5#8&<1PehyW^PYG=r?=%Dw*{3~ME%K=%{-o_iAewYx;SqBuN3KSdFmh<=Q*TO za;Y&J7o{vgPdC@;hU=oPO=(K=w-?FcZ!3FwpE_z&=a2y@g6uzX&^+^o693tyBapw7 zhG)c_*YhaasUU0ShrAh<1D=|inEC61h}cnsmbaL&=mV89*RdfN8PM7$f)1ysj;dbyz`7*{;{W|DXgsx8huG zCMj{SPYC^-<5W-u<(j0;T!TBD`;uL`xcrA3zo@Es_wvd0P`U}xH8~Yi@uC8b9N`*K z6N|lM;6re^X3Rm4R)7o9p%^;%-4XJt9gHEQUa!_bp~bO0DlDkgoy?}W-hH&zljygZ z8l#THOe7SW@1^xB3F#!%1@#z`+6x%OS z3NgLWV3DT%GR8NO{1$rL5Op6!O`h4-<6pq{rfQKV120WbT za^XMzNq%=e`-xSWq}nHcnYVJ|iOchLN~Q3o;N{7Wo6|U@k$ip0Y08{0Q{oo!C%n6y zZ;HNcLO*zN2|^`vz)6k6gszksH4s=WyMZoeXph^mC&8OM-7iYuJI?hFO-77ESEGCG z%V|!PhsRyl7=Csi_XlD$hmg8T^kDti0mZ3%-hxTQ&6C@HiyOz?^J74Ur%>xHV$lS9 zsjiwB)W?3bBnUWZZV{aWtu_eYjPO!}wtM8KfS+1lWs<=3*~60?0t8w0EooYR-OGdY zYr2TkJBhX!i_3Xy0lRJ?m1Mx&eu!Ps+%MBpiYWcGYA?yij8_}Y5&FwmC0QYypDllJ z|Gjt~#zEggh`sy^`S`g!-8H;zR85VeLr*|9m6C2UX*h>|%()bN^z9fN&v~nRfXHpq zkw0&*%M@??kWfE{LRKfmsXUtfYNF1EdoO)olLIEc73Nw#o~Dp!{GgKc1IP+$zeY%R zU_U6o*9`KJ)vZ=jG@3DQKaY@iPNC}|MiS6%$iNpEbWhG-Y>ET!j$WD(SII8%IB4RXQ&=U4$IZ(# zRoH^^zRp0NaPIhEN>Rx=j^*SfIRqoWMPh$j_*T2i&>7Ig(lb3AY#Sx!9Y6AKz5<3e z8=^h6ypf^Huq7K3ps(vrR%Jo#lSgil`21}xb%Ajc4jgbp=s?JY-p+3a^UKi}(z)SQ-cHkM3*dxY9sJL2~`s%~|1<*^zjP1(45f%ZTz zq>%_PGV4@3tEJVNdDlKB?eWVdZVkznFVw*_!LVshVk#@nl7$EAM{N_jcorX7n?$YX z+AN8!vRzlJ&Qwlk6)XZ~4oe8r`;rW+Vt)@w-ko*v?6 zSX1fsL!Cp$d^za!+!Go!q$#k>E)aJG;ac2dN}2jo>kUxDaqPIMpGh4p29&88G;#uS z&6TY-04f2G_m)ofTDS9cOIz!D9cCl4&mB|0-}RL(@YPMd4!f(@8@e2J}1_i49<L)FaB&A6~ra2Y8y{RH^osaO?d|jp(X|xZz;lCH1Gv zlD0)QV_Kc1y}f@_n$9!xbjKat$0w^P*gE@y!8ElP+Xa8Eb3YsXRhjIJ$4{E1Q9ql@ zXD~eMhh}xWRk!Oorz9?QFGy~4lxSF29TS59+(7S)_yhk9FK2V3+&TdIV1uqWFcbPO zmsUrZeO@B4n??eAv*R!{KTv8_-U+;q?+wOqyx04_hhsNwEDLmK(HaD7kY$l+8kT~* z^;LYI+BeoY_c6N=g_K*%Ikm4!+r&0a3C2|X?_u-w-Cs7c-bnD6UTwG-XTJw z*8eBg{`^VZ-F4;vbO}w4PezB+PiGJs;ldNaxfYN48gWLqPqO!p_|25A@!hX8mx*gN zkLdU-FO_E1sCEu{O8u+6_#}*yP?U!eMOqX(8g&48&-O8BfzamuQ)^K@` zA0v9)b@avBmG=`yj?l`qp50}8o6oDja|uxUo69HT->zNyx0~Mz&2BHe4CkOtXLG*x zmvWQH$dz&v=6N$kN37tLb8_cc1RAl)njs=7?*Gh1Rv2Mq4zsQ@+cur9YK=g|{%^D8KAY z6Cgv&D~*pc)nsXEZlM*Q94wn)Ex%%FZ*Kg{hX;6h zTpeM{VR-6NclOPZi2-1feTSBXg3`@MZBXlDH5j)1*lPl8Sso)|q2IOK%o zj&A1%$=<}q;z_Yr-C^*FP%$)t`f97GGg@uuv9^*M8{Zz9; z&!0T{dUP_)=7Q7PHMQ3ZCEDh^*cxgI@i#Kp@ z{F?u}hm~C*LwHM~R=9b6IW!>31b^UYgIqa|Xl82wl}ytsV5LCtSry6vkcWD|>M}bqngj%xTReZ`kOK`e$+lUnIBw)=9EZm#~5S zs_tULx<82ijuCOjPuKdtFf{GqZ>_eMN5+jF=3s+mEWSN9FTl2E0-gAKJVlss*}uEg zNFgO*{T0pa3=1axU!9lYmVdlNC2VVl8y0?j`fijjhayge7wV^JtC}jr_-VVvv-byp zj^o7Xvok#PGdy;k#-eAufE#F*5v751n8eN*{ex@e?fhcUzd_gM7imf>rn}$9X=}u& zuJgc=eypfNE^p7>c|}4xNkxnl80PslxSC@xfwY=o2U?iI5nTK&pw;I+iN9o4^om$( zu6s>teniMusjtk*Kp-D!eUc}r0x&T0Z?}lQE`THVek49TpH}~}I~MbUjMDMl{y*$j zBwG`OI?%>*cL}z3=)Q=6ZtTl?6T(Tdx+AeoIS%n;h0V7h`g00hqPY6%6p|xVl{MJP zWq<&lq~ae8bf3BN&omnoJ!xhODNk8IQ z1Zz2)OTd~dD!=jT-&V2gWTpHEeFF{R>v9q3(aAx)5&$!Vn_{t)0+IV29F!G2$L9l3bOk{pD%dK|m< zR8)4t^D71Bg1$UEuVAAD-ab`!M(0OOs`w|R>1!WUsl+OI-eanK*i=LInq2`wJhSA+ zA>hl2G!1+9dPlB9zo#&674?y|pSe2!ClzRtK;}w6q_|tM48-*mG5$$DH94x74EK7GMWaBXQ4M?3)9Z zMdPt_J3aJ5wkKudt!&ANxUFq!cfE8$6sM|A8rz2}7wX*chL_q_DMqX{>>oibQRVMD z6abYtx^$!#h&Jw8_b_Wz#ru5v9&$X^ImI;n{xF8rJ%;C=;kXA7Pae8kvN)Z_xO$Ub zwIMU7zcrQFJ;z?ukXTbR=jGgMZ1Z;X^&R|;|LO8l!wJsCq=EN5Z%);)zBy+Y6_~pZ zuzf3gouti0nM#snkG-=v6Y|5ws7l~eAAWdKB(4hGD&5L2#0e;g(og9`$nULn&+pdnpPqCorV=Nyu+WF zF#y5uagehP@^897w`pbg@U5w``T!3F}@(x zzCp;pVf>Jn-OD?zTi%wL8)l0~@U>%siJqjkbqn~fRZb*&I3v8XvhyPsAl@L2^5?k- z&P-xvmZVSe4ipSvGB{2p#T&TRm1~ux|7oXr%lG+vR1J!wdpP{-Ui0JN$dj~bRE%fq zCzLw%64eRS$B?1ArcSOPJyTBxyuMF^JNO|8EYLty^^G6rDMIp z?ecuh@sq8W*Va^IG=fB)z03a7zmwh%8CAZ`gyI?K^NsQ{yg5VuAy9D|1gWVb@;rk! zt&rR#h=z?E-bG@3(x|a6n zx`7{auU47i!BD$ad2%pR0TU%6;%_1KU3J%+{lpAFMhit8v^`+ODHg;FoIg4AZv0RD z%&jBdsdcqF?EUw_1NRmM;-B_@oeMnswml}tyWrvaz4puRw)+rl%Dxk1cDC3%#*h2l zfY%RoH7C?qxRHm1;={5#by$;%YIHEei;G{j!+(HpZv{LV>=WFP925Bj4NR`c$ zPm&b5sx8fdRDhW`Lk-~Hc{=t0c~`V=vE8?3fE&-12aQ}spF+V9VoIr6AE=dJMD1+# zMtjuE%%Cwf{5GYThGL+yg{2Phw^e!&&tm&V6|@uf1}qO#`tns`aMbDHGR8kX_>eyM z>zC6iS&m;sVg4ZG4{^<`5&3MF+w7<^9rD}}&f}JM3<%BSYczZWeXx}k_X7=y{mVJ7 z-ZP&bTS~2nmz_&ZE@l)QNMByfsgIbA`Qx~v@1Q@V28<3edoYkDW`hz-G+T0m*>Roo@={0 zy?AnU;kbkNxdXmkUv3qzd3{YfL4!(2#QH2@k)pz|(wbmw|4%ZuFtdwk0-0f!o zQx<&|%()=7k%O^NtV31c(QR?trmerb;k*3|vApBUH-2@KYALtOZWd%ewqgEi!n`mq zVf0^!f4sZ*@~BR!{%>tl|H8JnfCdvKtbOo*h-1@srfEWV8*gy3yvxi<+!a@=3fnf~ zvqvbD77yA8{N!?n+cEa`{B~D?m#f$E#Y4Myu+(_d^x+&7J)a;EHi%)6)PzS$z_ zXJDcBh9oo-;#=8slG%)3K5xRtXDUK8j3dVW{-TR@wQN{Vnc~1D{d=eD`q9 ztnLADIq&Y?!>`;mwjE382a{9R``Knu6Y?5@a##WwTTEwd7vj>7R*rfdFZ2a%4Q5d< zi1y=UPK0#XFL)du1i$j%HWfH{QS+?P6Wh(dKz;jmJNtd0^7-hXmy0J)m=lX&uiw+n zSVoDt|1L?KtbKSuKE>Dx`49QqaxTQe3t|Kc4~ddJ8}`Lo=xZLcU(vfLck(-8V@oe!u^N zM@g2|-*DkIB{$ILB9ZGQwTYy?i}3Y!8UfaQeZN3=8{aL1QT$a|`%2uC?~t(;e(?Kb b!|?wAwf*_M7QFS900000NkvXXu0mjfc;y}c diff --git a/web/images/period.png b/web/images/period.png deleted file mode 100644 index e18cb9ee54b15eb90b50392f39b535e1e1cd0e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPai;OUXA?Hn1pa{cmPZ!4!jq`Ia zDF!h+im+VRzPrgnAVd%ZPVzbw^?2kRG@an#!Z%SyF?1mpXWqmejsdNiU5Qz|TW0^e z`}hB!ndkWZ3VTh{9&*jwc-Xo`GbTYe@t{OqTp@qO>q#}U5Ajv+FPwUg^*eLkhKwWS z5sw4d#=LpPwxWuaezU;COLWh?bzPy}uPeN|8#iPZyA|wmu zd9T*{(WyLdmG9aDnMp;Gi%hp>-~IRc;lD4Y`xsRJ8iuUc;x7gAho`Hb%Q~loCICu1 Bb=d#_ diff --git a/web/images/plus.png b/web/images/plus.png deleted file mode 100644 index 71f5d06f10480f2b1249f7d90cec77312170b6f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810 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 M07*qoM6N<$f^EB2o&W#< diff --git a/web/images/progress.gif b/web/images/progress.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ff85cafb749fb22edd8ee6a5ec8a9ae7ef2ba3a GIT binary patch literal 3839 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 BNVot1 literal 0 HcmV?d00001 diff --git a/web/images/reload.png b/web/images/reload.png deleted file mode 100644 index 44cdc0ccda3898496bd5bbe628201418b512a467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ;0V1_0*t`W&jKx9jP7LeL$-D%~CV9KNF#HF> z1$&oI28wVNctjR6FmMZlFeAgPITAoY_7YEDSN1#XQo7Pd+}~5}=@3Q17t`M}T=iF0n)?1l!Qz7rul4JaDjCj6aEVP4h~5jdg2B_(&t;ucLK6V$ C;zNu8 diff --git a/web/images/restore.png b/web/images/restore.png deleted file mode 100644 index 0f0016cbadcd8ba26402b1453e5f2890c997860f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJx0U~c5>$3n-jKx9jP7LeL$-D%~CV9KNF#HF> z1$&oI28wVNctjR6FmMZlFeAgPITAoY_7YEDSN1zB;yj8vYS#8;K%oFn7sn8e>!s&5 zayB@KG(Y6ux@G&;5(f4HhVKQo?iT|2bV?YiXA8@pg)5E diff --git a/web/images/sprite.png b/web/images/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ecf3896115e9a5a3f4081005f098aaedb6faeb GIT binary patch literal 46320 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"),i++}this.element=r.setInnerHtml(this.element,n.join("")),this.element.style.height=e.minHeight+"px",this.session.$useWrapMode&&(c=this.session.getLength());var d=(""+c).length*e.characterWidth,v=this.$padding||this.$computePadding();d+=v.left+v.right,d!==this.gutterWidth&&(this.gutterWidth=d,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",d))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1,this.$padding.right=parseInt(e.paddingRight),this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.xn.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var s=r.range.clipRows(e.firstRow,e.lastRow);if(s.isEmpty())continue;s=s.toScreenRange(this.session);if(r.renderer){var o=this.$getTop(s.start.row,e),u=this.$padding+s.start.column*e.characterWidth;r.renderer(t,s,u,o,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,s,r.clazz,e):s.isMultiLine()?r.type=="text"?this.drawTextMarker(t,s,r.clazz,e):this.drawMultiLineMarker(t,s,r.clazz,e):this.drawSingleLineMarker(t,s,r.clazz+" ace_start",e)}this.element=i.setInnerHtml(this.element,t.join(""))},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,n,i){var s=t.start.row,o=new r(s,t.start.column,s,this.session.getScreenLastRowColumn(s));this.drawSingleLineMarker(e,o,n+" ace_start",i,1,"text"),s=t.end.row,o=new r(s,0,s,t.end.column),this.drawSingleLineMarker(e,o,n,i,0,"text");for(s=t.start.row+1;s"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("
"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<0)return;u=this.$getTop(t.start.row+1,r),e.push("
")},this.drawSingleLineMarker=function(e,t,n,r,i){var s=r.lineHeight,o=(t.end.column+(i||0)-t.start.column)*r.characterWidth,u=this.$getTop(t.start.row,r),a=this.$padding+t.start.column*r.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,n,r){var i=this.$getTop(t.start.row,r),s=r.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,r)-i),e.push("
")}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$characterSize={width:0,height:0},this.checkForSizeChanges(),this.$pollSizeChanges()};(function(){r.implement(this,u),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){var e=this;this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=o.isIE||o.isOldGecko?function(){var e=1e3;if(!this.$measureNode){var t=this.$measureNode=i.createElement("div"),n=t.style;n.width=n.height="auto",n.left=n.top=-e*40+"px",n.visibility="hidden",n.position="fixed",n.overflow="visible",n.whiteSpace="nowrap",t.innerHTML=s.stringRepeat("Xy",e);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(t);else{var r=this.element.parentNode;while(!i.hasCssClass(r,"ace_editor"))r=r.parentNode;r.appendChild(t)}}if(!this.element.offsetWidth)return null;var n=this.$measureNode.style,o=i.computedStyle(this.element);for(var u in this.$fontStyles)n[u]=o[u];var a={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(e*2)};return a.width==0||a.height==0?null:a}:function(){if(!this.$measureNode){var e=this.$measureNode=i.createElement("div"),t=e.style;t.width=t.height="auto",t.left=t.top="-100px",t.visibility="hidden",t.position="fixed",t.overflow="visible",t.whiteSpace="nowrap",e.innerHTML="X";var n=this.element.parentNode;while(n&&!i.hasCssClass(n,"ace_editor"))n=n.parentNode;if(!n)return this.$measureNode=null;n.appendChild(e)}var r=this.$measureNode.getBoundingClientRect(),s={height:r.height,width:r.width};return s.width==0||s.height==0?null:s},this.setSession=function(e){this.session=e,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n"+this.TAB_CHAR+Array(n).join(" ")+""):t.push((new Array(n+1)).join(" "));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i=Array(this.tabSize+1).join(" "),s=i;this.showInvisibles&&(r+=" ace_invisible",s=this.TAB_CHAR+i.substr(6)),this.$tabStrings[" "]=""+i+"",this.$tabStrings[" "]=""+s+""}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),s=Math.min(n,e.lastRow),o=this.element.childNodes,u=0;for(var a=e.firstRow;al&&(a=f.end.row+1,f=this.session.getNextFoldLine(a,f),l=f?f.start.row:Infinity);if(a>s)break;var c=o[u++];if(c){var h=[];this.$renderLine(h,a,!this.$useLineGroups(),a==l?f:!1),i.setInnerHtml(c,h.join(""))}a++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRowt.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a);else{var l=a.childNodes;while(l.length)r.appendChild(l[0])}s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,s=n,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>r)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,s,!1,s==u?o:!1),this.$useLineGroups()&&t.push("
"),s++}this.element=i.setInnerHtml(this.element,t.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,s=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,o=function(e,n,r,s,o){if(n)return(new Array(e.length+1)).join(" ");if(e=="&")return"&";if(e=="<")return"<";if(e==" "){var u=i.session.getScreenTabSize(t+s);return t+=u-1,i.$tabStrings[u]}if(e==" "){var a=i.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",f=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,""+f+""}return r?""+i.SPACE_CHAR+"":(t+=1,""+e+"")},u=r.replace(s,o);if(!this.$textToken[n.type]){var a="ace_"+n.type.replace(/\./g," ace_"),f="";n.type=="fold"&&(f=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("",u,"")}else e.push(u);return t+r.length},this.renderIndentGuide=function(e,t){var n=t.search(this.$indentGuideRe);return n<=0?t:t[0]==" "?(n-=n%this.tabSize,e.push(Array(n/this.tabSize+1).join(this.$tabStrings[" "])),t.substr(n)):t[0]==" "?(e.push(Array(n+1).join(this.$tabStrings[" "])),t.substr(n)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("","
"),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),n||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors")};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,e?r.addCssClass(this.element,"ace_smooth-blinking"):r.removeCssClass(this.element,"ace_smooth-blinking"),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking");for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity="";if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity=0}.bind(this),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity="";t()}.bind(this),this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=t.length;n--;){var i=this.getPixelPosition(t[n].cursor,!0);if((i.top>e.height+e.offset||i.top<-e.offset)&&n>1)continue;var s=(this.cursors[r++]||this.addCursor()).style;s.left=i.left+"px",s.top=i.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px"}while(this.cursors.length>r)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=i,this.restartTimer()},this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar",this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.width=i.scrollbarWidth(e.ownerDocument),this.element.style.width=(this.width||15)+5+"px",s.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){r.implement(this,o),this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.width},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}).call(u.prototype),t.ScrollBar=u}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),t.onSessionChange.call(e,e),e.on("changeSession",t.onSessionChange.bind(e)),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function i(){n&&(r.style.cursor="",n=!1)}var t=e.textInput.getElement(),n=!1,r=e.renderer.content;u.addListener(t,"keydown",function(e){e.keyCode==18&&!(e.ctrlKey||e.shiftKey||e.metaKey)?n||(r.style.cursor="crosshair",n=!0):n&&(r.style.cursor="")}),u.addListener(t,"keyup",i),u.addListener(t,"blur",i)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var n=this.toOrientedRange();if(e.intersects(n))return t||this.fromOrientedRange(e);this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._emit("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._emit("removeRange",{ranges:e}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;t.multiSelectAction?t.multiSelectAction=="forEach"?n.forEachSelection(t,e.args):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),t.exec(n,e.args||{})):t.multiSelectAction(n,e.args||{}):(t.exec(n,e.args||{}),n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()),e.preventDefault()},this.forEachSelection=function(e,t){if(this.inVirtualSelectionMode)return;var n=this.session,r=this.selection,i=r.rangeList,o=r._eventRegistry;r._eventRegistry={};var u=new s(n);this.inVirtualSelectionMode=!0;for(var a=i.ranges.length;a--;)u.fromOrientedRange(i.ranges[a]),this.selection=n.selection=u,e.exec(this,t||{}),u.toOrientedRange(i.ranges[a]);u.detach(),this.selection=n.selection=r,this.inVirtualSelectionMode=!1,r._eventRegistry=o,r.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var e="";if(this.inMultiSelectMode){var t=this.multiSelect.rangeList.ranges;e=[];for(var n=0;nn.length||t.length<=2||!t[1])return this.commands.exec("insertstring",this,e);for(var r=n.length;r--;){var i=n[r];i.isEmpty()||this.session.remove(i),this.session.insert(i.start,t[r])}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle,this.$search.set(t);var r=this.$search.findAll(this.session);if(!r.length)return 0;this.$blockScrolling+=1;var i=this.multiSelect;n||i.toSingleRange(r[0]);for(var s=r.length;s--;)i.addRange(r[s],!0);return this.$blockScrolling-=1,r.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t){var n=this.session,r=n.multiSelect,i=r.toOrientedRange();if(i.isEmpty()){var i=n.getWordRange(i.start.row,i.start.column);i.cursor=i.end,this.multiSelect.addRange(i)}var s=n.getTextRange(i),o=h(n,s,e);o&&(o.cursor=e==-1?o.start:o.end,this.multiSelect.addRange(o)),t&&this.multiSelect.substractPoint(i.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges;if(!n.length){var r=this.selection.getRange(),s=r.start.row,o=r.end.row,u=this.session.doc.removeLines(s,o);u=this.$reAlignText(u),this.session.doc.insertLines(s,u),r.start.column=0,r.end.column=u[u.length-1].length,this.selection.setRange(r)}else{var f=-1,l=n.filter(function(e){if(e.cursor.row==f)return!0;f=e.cursor.row});t.$onRemoveRange(l);var c=0,h=Infinity,p=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>c&&(c=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=c,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e){function o(e,t){return Array(e+1).join(t)}function u(e){return e[2]?o(r," ")+e[2]+o(i-e[2].length+s," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function a(e){return e[2]?o(r+i-e[2].length," ")+e[2]+o(s," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function f(e){return e[2]?o(r," ")+e[2]+o(s," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var t=!0,n=!0,r,i,s;return e.map(function(e){var o=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return o?r==null?(r=o[1].length,i=o[2].length,s=o[3].length,o):(r+i+s!=o[1].length+o[2].length+o[3].length&&(n=!1),r!=o[1].length&&(t=!1),r>o[1].length&&(r=o[1].length),io[3].length&&(s=o[3].length),o):[e]}).map(t?n?a:u:f)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t.multiSelect||(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t.multiSelect;var n=e.oldSession;n&&(n.multiSelect&&n.multiSelect.editor==this&&(n.multiSelect.editor=null),t.multiSelect.removeEventListener("addRange",this.$onAddRange),t.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),t.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),t.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m}),ace.define("ace/range_list",["require","exports","module"],function(e,t,n){var r=function(){this.ranges=[]};(function(){this.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},this.pointIndex=function(e,t){var n=this.ranges;for(var r=t||0;r0)continue;return s==0?r:(s=this.comparePoints(e,i.start),s>=0?r:-r-1)}return-r-1},this.add=function(e){var t=this.pointIndex(e.start);t<0&&(t=-t-1);var n=this.pointIndex(e.end,t);return n<0?n=-n-1:n++,this.ranges.splice(t,n-t,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.call(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges,n=t[0],r;for(var i=1;i=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.rowi)break;c.start.row==i&&c.start.column>=n.column&&(c.start.column+=u,c.start.row+=o),c.end.row==i&&c.end.column>=n.column&&(c.end.column+=u,c.end.row+=o)}if(o!=0&&f=0?i=e.nameToUrl("ace/worker/worker_sourcemint"):(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),i=o(e.toUrl("ace/worker/worker",null,"_")));var u={};t.forEach(function(t){u[t]=o(e.toUrl(t,null,"_").replace(/.js(\?.*)?$/,""))})}this.$worker=new Worker(i),this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onerror=this.onError,this.$worker.onmessage=this.onMessage};(function(){r.implement(this,i),this.onError=function(e){throw window.console&&console.log&&console.log(e),e},this.onMessage=function(e){var t=e.data;switch(t.type){case"log":window.console&&console.log&&console.log.apply(console,t.data);break;case"event":this._emit(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id])}},this.$normalizePath=function(e){return location.host?(e=e.replace(/^[a-z]+:\/\/[^\/]+/,""),e=location.protocol+"//"+location.host+(e.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+e.replace(/^[\/]+/,""),e):e},this.terminate=function(){this._emit("terminate",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){e.range={start:e.data.range.start,end:e.data.range.end},this.emit("change",e)}}).call(o.prototype);var u=function(t,n,r){this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var s=null,o=Object.create(i),u=this;this.$worker={},this.$worker.postMessage=function(e){u.messageBuffer.push(e),s&&setTimeout(a)};var a=function(){var e=u.messageBuffer.shift();e.command?s[e.command].apply(s,e.args):e.event&&o._emit(e.event,e.data)};o.postMessage=function(e){u.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},e([n],function(e){s=new e[r](o);while(u.messageBuffer.length)a()})};u.prototype=o.prototype,t.UIWorkerClient=u,t.WorkerClient=o}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session,i=this.$pos;this.pos=t.createAnchor(i.row,i.column),this.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new r(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(i){e.removeMarker(n.markerId),n.markerId=e.addMarker(new r(i.value.row,i.value.column,i.value.row,i.value.column+t.length),t.othersClass,null,!1)})})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&n.start.column<=this.pos.column+this.length+1){var s=n.start.column-this.pos.column;this.length+=i;if(!this.session.$fromUndo){if(t.action==="insertText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var e=0;ef){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=this.getFoldWidget(e,u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}); + (function() { + ace.require(["ace/ace"], function(a) { + a && a.config.init(); + if (!window.ace) + window.ace = {}; + for (var key in a) if (a.hasOwnProperty(key)) + ace[key] = a[key]; + }); + })(); + \ No newline at end of file diff --git a/web/js/cheef-editor/ace/ext-static_highlight.js b/web/js/cheef-editor/ace/ext-static_highlight.js new file mode 100644 index 000000000..b154ef23b --- /dev/null +++ b/web/js/cheef-editor/ace/ext-static_highlight.js @@ -0,0 +1 @@ +ace.define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text"],function(e,t,n){var r=e("../edit_session").EditSession,i=e("../layer/text").Text,s=".ace_editor {font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;font-size: 12px;}.ace_editor .ace_gutter { width: 25px !important;display: block;float: left;text-align: right; padding: 0 3px 0 0; margin-right: 3px;}.ace_line { clear: both; }*.ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;}";t.render=function(e,t,n,o,u){o=parseInt(o||1,10);var a=new r("");a.setMode(t),a.setUseWorker(!1);var f=new i(document.createElement("div"));f.setSession(a),f.config={characterWidth:10,lineHeight:20},a.setValue(e);var l=[],c=a.getLength();for(var h=0;h"),u||l.push(""+(h+o)+""),f.$renderLine(l,h,!0,!1),l.push("");var p="
:code
".replace(/:cssClass/,n.cssClass).replace(/:code/,l.join(""));return f.destroy(),{css:s+n.cssText,html:p}}}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/ext-textarea.js b/web/js/cheef-editor/ace/ext-textarea.js new file mode 100644 index 000000000..0f86aab76 --- /dev/null +++ b/web/js/cheef-editor/ace/ext-textarea.js @@ -0,0 +1 @@ +ace.define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace","ace/theme/textmate","ace/mode/text"],function(e,t,n){function a(e,t){for(var n in t)e.style[n]=t[n]}function f(e,t){if(e.type!="textarea")throw"Textarea required!";var n=e.parentNode,i=document.createElement("div"),s=function(){var t="position:relative;";["margin-top","margin-left","margin-right","margin-bottom"].forEach(function(n){t+=n+":"+u(e,i,n)+";"});var n=u(e,i,"width")||e.clientWidth+"px",r=u(e,i,"height")||e.clientHeight+"px";t+="height:"+r+";width:"+n+";",t+="display:inline-block;",i.setAttribute("style",t)};r.addListener(window,"resize",s),s(),e.nextSibling?n.insertBefore(i,e.nextSibling):n.appendChild(i);while(n!==document){if(n.tagName.toUpperCase()==="FORM"){var o=n.onsubmit;n.onsubmit=function(n){e.innerHTML=t(),e.value=t(),o&&o.call(this,n)};break}n=n.parentNode}return i}function l(t,n,r){s.loadScript(t,function(){e([n],r)})}function c(n,r,i,s,o,u){function c(e){return e=="true"}var a=n.getSession(),f=n.renderer;u=u||l,n.setDisplaySettings=function(e){e==null&&(e=i.style.display=="none"),i.style.display=e?"block":"none"},n.setOption=function(t,i){if(o[t]==i)return;switch(t){case"gutter":f.setShowGutter(c(i));break;case"mode":i!="text"?u("mode-"+i+".js","ace/mode/"+i,function(){var t=e("../mode/"+i).Mode;a.setMode(new t)}):a.setMode(new(e("../mode/text").Mode));break;case"theme":i!="textmate"?u("theme-"+i+".js","ace/theme/"+i,function(){n.setTheme("ace/theme/"+i)}):n.setTheme("ace/theme/textmate");break;case"fontSize":r.style.fontSize=i;break;case"softWrap":switch(i){case"off":a.setUseWrapMode(!1),f.setPrintMarginColumn(80);break;case"40":a.setUseWrapMode(!0),a.setWrapLimitRange(40,40),f.setPrintMarginColumn(40);break;case"80":a.setUseWrapMode(!0),a.setWrapLimitRange(80,80),f.setPrintMarginColumn(80);break;case"free":a.setUseWrapMode(!0),a.setWrapLimitRange(null,null),f.setPrintMarginColumn(80)}break;case"useSoftTabs":a.setUseSoftTabs(c(i));break;case"showPrintMargin":f.setShowPrintMargin(c(i));break;case"showInvisibles":n.setShowInvisibles(c(i))}o[t]=i},n.getOption=function(e){return o[e]},n.getOptions=function(){return o};for(var h in t.options)n.setOption(h,t.options[h]);return n}function h(e,t,n,i){function f(e,t,n,r){e.push("")}var s={"true":!0,"false":!1},o={mode:"Mode:",gutter:"Display Gutter:",theme:"Theme:",fontSize:"Font Size:",softWrap:"Soft Wrap:",showPrintMargin:"Show Print Margin:",useSoftTabs:"Use Soft Tabs:",showInvisibles:"Show Invisibles"},u={mode:{text:"Plain",javascript:"JavaScript",xml:"XML",html:"HTML",css:"CSS",scss:"SCSS",python:"Python",php:"PHP",java:"Java",ruby:"Ruby",c_cpp:"C/C++",coffee:"CoffeeScript",json:"json",perl:"Perl",clojure:"Clojure",ocaml:"OCaml",csharp:"C#",haxe:"haXe",svg:"SVG",textile:"Textile",groovy:"Groovy",liquid:"Liquid",Scala:"Scala"},theme:{clouds:"Clouds",clouds_midnight:"Clouds Midnight",cobalt:"Cobalt",crimson_editor:"Crimson Editor",dawn:"Dawn",eclipse:"Eclipse",idle_fingers:"Idle Fingers",kr_theme:"Kr Theme",merbivore:"Merbivore",merbivore_soft:"Merbivore Soft",mono_industrial:"Mono Industrial",monokai:"Monokai",pastel_on_dark:"Pastel On Dark",solarized_dark:"Solarized Dark",solarized_light:"Solarized Light",textmate:"Textmate",twilight:"Twilight",vibrant_ink:"Vibrant Ink"},gutter:s,fontSize:{"10px":"10px","11px":"11px","12px":"12px","14px":"14px","16px":"16px"},softWrap:{off:"Off",40:"40",80:"80",free:"Free"},showPrintMargin:s,useSoftTabs:s,showInvisibles:s},a=[];a.push("");for(var l in i)a.push(""),a.push("");a.push("
SettingValue
",o[l],""),f(a,l,u[l],i[l]),a.push("
"),e.innerHTML=a.join("");var c=e.getElementsByTagName("select");for(var h=0;h30&&this.$data.shift()},get:function(){return this.$data[this.$data.length-1]||""},pop:function(){return this.$data.length>1&&this.$data.pop(),this.get()},rotate:function(){return this.$data.unshift(this.$data.pop()),this.get()}}}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/keybinding-vim.js b/web/js/cheef-editor/ace/keybinding-vim.js new file mode 100644 index 000000000..5a8eabff7 --- /dev/null +++ b/web/js/cheef-editor/ace/keybinding-vim.js @@ -0,0 +1 @@ +ace.define("ace/keyboard/vim",["require","exports","module","ace/keyboard/vim/commands","ace/keyboard/vim/maps/util","ace/lib/useragent"],function(e,t,n){var r=e("./vim/commands"),i=r.coreCommands,s=e("./vim/maps/util"),o=e("../lib/useragent"),u={i:{command:i.start},I:{command:i.startBeginning},a:{command:i.append},A:{command:i.appendEnd},"ctrl-f":{command:"gotopagedown"},"ctrl-b":{command:"gotopageup"}};t.handler={handleMacRepeat:function(e,t,n){if(t==-1)e.inputChar=n,e.lastEvent="input";else if(e.inputChar&&e.$lastHash==t&&e.$lastKey==n){if(e.lastEvent=="input")e.lastEvent="input1";else if(e.lastEvent=="input1")return!0}else e.$lastHash=t,e.$lastKey=n,e.lastEvent="keypress"},handleKeyboard:function(e,t,n,s,a){if(t!=0&&(n==""||n=="\0"))return null;t==1&&(n="ctrl-"+n);if(n=="esc"&&t==0||n=="ctrl-[")return{command:i.stop};if(e.state=="start"){o.isMac&&this.handleMacRepeat(e,t,n)&&(t=-1,n=e.inputChar);if(t==-1||t==1||t==0&&n.length>1)return r.inputBuffer.idle&&u[n]?u[n]:{command:{exec:function(e){return r.inputBuffer.push(e,n)}}};if(n.length==1&&(t==0||t==4))return{command:"null",passEvent:!0};if(n=="esc"&&t==0)return{command:i.stop}}else if(n=="ctrl-w")return{command:"removewordleft"}},attach:function(e){e.on("click",t.onCursorMove),s.currentMode!=="insert"&&r.coreCommands.stop.exec(e),e.$vimModeHandler=this},detach:function(e){e.removeListener("click",t.onCursorMove),s.noMode(e),s.currentMode="normal"},actions:r.actions,getStatusText:function(){return s.currentMode=="insert"?"INSERT":s.onVisualMode?(s.onVisualLineMode?"VISUAL LINE ":"VISUAL ")+r.inputBuffer.status:r.inputBuffer.status}},t.onCursorMove=function(e){r.onCursorMove(e.editor,e),t.onCursorMove.scheduled=!1}}),ace.define("ace/keyboard/vim/commands",["require","exports","module","ace/keyboard/vim/maps/util","ace/keyboard/vim/maps/motions","ace/keyboard/vim/maps/operators","ace/keyboard/vim/maps/aliases","ace/keyboard/vim/registers"],function(e,t,n){"never use strict";function g(e){m.previous={action:{action:{fn:e}}}}var r=e("./maps/util"),i=e("./maps/motions"),s=e("./maps/operators"),o=e("./maps/aliases"),u=e("./registers"),a=1,f=2,l=3,c=4,h=8,p=function(t,n,r){while(0t.$size.scrollerHeight&&(i=t.$size.scrollerHeight/2),t.scrollTop>r-i&&t.session.setScrollTop(r-i),t.scrollTop+t.$size.scrollerHeight0&&e.navigateLeft()),e.setOverwrite(!0),e.keyBinding.$data.buffer="",e.keyBinding.$data.state="start",this.onVisualMode=!1,this.onVisualLineMode=!1,e._emit("changeStatus"),e.commands.recording?(e.commands.toggleRecording(e),e.commands.macro):[]},visualMode:function(e,t){if(this.onVisualLineMode&&t||this.onVisualMode&&!t){this.normalMode(e);return}e.setStyle("insert-mode"),e.unsetStyle("normal-mode"),e._emit("changeStatus"),t?this.onVisualLineMode=!0:(this.onVisualMode=!0,this.onVisualLineMode=!1)},getRightNthChar:function(e,t,n,r){var i=e.getSession().getLine(t.row),s=i.substr(t.column+1).split(n);return r~!@#$%^&*|+=\[\]{}`~?]/,u=/[.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/,a=/\s/,f=function(e,t){var n=e.selection;this.range=n.getRange(),t=t||n.selectionLead,this.row=t.row,this.col=t.column;var r=e.session.getLine(this.row),i=e.session.getLength();this.ch=r[this.col]||"\n",this.skippedLines=0,this.next=function(){return this.ch=r[++this.col]||this.handleNewLine(1),this.ch},this.prev=function(){return this.ch=r[--this.col]||this.handleNewLine(-1),this.ch},this.peek=function(t){var n=r[this.col+t];return n?n:t==-1?"\n":this.col==r.length-1?"\n":e.session.getLine(this.row+1)[0]||"\n"},this.handleNewLine=function(t){if(t==1)return this.col==r.length?"\n":this.row==i-1?"":(this.col=0,this.row++,r=e.session.getLine(this.row),this.skippedLines++,r[0]||"\n");if(t==-1)return this.row===0?"":(this.row--,r=e.session.getLine(this.row),this.col=r.length,this.skippedLines--,"\n")},this.debug=function(){console.log(r.substring(0,this.col)+"|"+this.ch+"'"+this.col+"'"+r.substr(this.col+1))}},l=e("../../../search").Search,c=new l,p=e("../../../range").Range;n.exports={w:new s(function(e){var t=new f(e);if(t.ch&&u.test(t.ch))while(t.ch&&u.test(t.ch))t.next();else while(t.ch&&!o.test(t.ch))t.next();while(t.ch&&a.test(t.ch)&&t.skippedLines<2)t.next();return t.skippedLines==2&&t.prev(),{column:t.col,row:t.row}}),W:new s(function(e){var t=new f(e);while(t.ch&&(!a.test(t.ch)||!!a.test(t.peek(1)))&&t.skippedLines<2)t.next();return t.skippedLines==2?t.prev():t.next(),{column:t.col,row:t.row}}),b:new s(function(e){var t=new f(e);t.prev();while(t.ch&&a.test(t.ch)&&t.skippedLines>-2)t.prev();if(t.ch&&u.test(t.ch))while(t.ch&&u.test(t.ch))t.prev();else while(t.ch&&!o.test(t.ch))t.prev();return t.ch&&t.next(),{column:t.col,row:t.row}}),B:new s(function(e){var t=new f(e);t.prev();while(t.ch&&(!!a.test(t.ch)||!a.test(t.peek(-1)))&&t.skippedLines>-2)t.prev();return t.skippedLines==-2&&t.next(),{column:t.col,row:t.row}}),e:new s(function(e){var t=new f(e);t.next();while(t.ch&&a.test(t.ch))t.next();if(t.ch&&u.test(t.ch))while(t.ch&&u.test(t.ch))t.next();else while(t.ch&&!o.test(t.ch))t.next();return t.ch&&t.prev(),{column:t.col,row:t.row}}),E:new s(function(e){var t=new f(e);t.next();while(t.ch&&(!!a.test(t.ch)||!a.test(t.peek(1))))t.next();return{column:t.col,row:t.row}}),l:{nav:function(e){var t=e.getCursorPosition(),n=t.column,r=e.session.getLine(t.row).length;r&&n!==r&&e.navigateRight()},sel:function(e){var t=e.getCursorPosition(),n=t.column,r=e.session.getLine(t.row).length;r&&n!==r&&e.selection.selectRight()}},h:{nav:function(e){var t=e.getCursorPosition();t.column>0&&e.navigateLeft()},sel:function(e){var t=e.getCursorPosition();t.column>0&&e.selection.selectLeft()}},H:{nav:function(e){var t=e.renderer.getScrollTopRow();e.moveCursorTo(t)},sel:function(e){var t=e.renderer.getScrollTopRow();e.selection.selectTo(t)}},M:{nav:function(e){var t=e.renderer.getScrollTopRow(),n=e.renderer.getScrollBottomRow(),r=t+(n-t)/2;e.moveCursorTo(r)},sel:function(e){var t=e.renderer.getScrollTopRow(),n=e.renderer.getScrollBottomRow(),r=t+(n-t)/2;e.selection.selectTo(r)}},L:{nav:function(e){var t=e.renderer.getScrollBottomRow();e.moveCursorTo(t)},sel:function(e){var t=e.renderer.getScrollBottomRow();e.selection.selectTo(t)}},k:{nav:function(e){e.navigateUp()},sel:function(e){e.selection.selectUp()}},j:{nav:function(e){e.navigateDown()},sel:function(e){e.selection.selectDown()}},i:{param:!0,sel:function(e,t,n,r){switch(r){case"w":e.selection.selectWord();break;case"W":e.selection.selectAWord();break;case"(":case"{":case"[":var i=e.getCursorPosition(),s=e.session.$findClosingBracket(r,i,/paren/);if(!s)return;var o=e.session.$findOpeningBracket(e.session.$brackets[r],i,/paren/);if(!o)return;o.column++,e.selection.setSelectionRange(p.fromPoints(o,s));break;case"'":case'"':case"/":var s=h(e,r,1);if(!s)return;var o=h(e,r,-1);if(!o)return;e.selection.setSelectionRange(p.fromPoints(o.end,s.start))}}},a:{param:!0,sel:function(e,t,n,r){switch(r){case"w":e.selection.selectAWord();break;case"W":e.selection.selectAWord();break;case"(":case"{":case"[":var i=e.getCursorPosition(),s=e.session.$findClosingBracket(r,i,/paren/);if(!s)return;var o=e.session.$findOpeningBracket(e.session.$brackets[r],i,/paren/);if(!o)return;s.column++,e.selection.setSelectionRange(p.fromPoints(o,s));break;case"'":case'"':case"/":var s=h(e,r,1);if(!s)return;var o=h(e,r,-1);if(!o)return;s.column++,e.selection.setSelectionRange(p.fromPoints(o.start,s.end))}}},f:new s({param:!0,handlesCount:!0,getPos:function(e,t,n,i,s){var o=e.getCursorPosition(),u=r.getRightNthChar(e,o,i,n||1);if(typeof u=="number")return o.column+=u+(s?2:1),o}}),F:new s({param:!0,handlesCount:!0,getPos:function(e,t,n,i,s){var o=e.getCursorPosition(),u=r.getLeftNthChar(e,o,i,n||1);if(typeof u=="number")return o.column-=u+1,o}}),t:new s({param:!0,handlesCount:!0,getPos:function(e,t,n,i,s){var o=e.getCursorPosition(),u=r.getRightNthChar(e,o,i,n||1);if(typeof u=="number")return o.column+=u+(s?1:0),o}}),T:new s({param:!0,handlesCount:!0,getPos:function(e,t,n,i,s){var o=e.getCursorPosition(),u=r.getLeftNthChar(e,o,i,n||1);if(typeof u=="number")return o.column-=u,o}}),"^":{nav:function(e){e.navigateLineStart()},sel:function(e){e.selection.selectLineStart()}},$:{nav:function(e){e.navigateLineEnd()},sel:function(e){e.selection.selectLineEnd()}},0:new s(function(e){return{row:e.selection.lead.row,column:0}}),G:{nav:function(e,t,n,r){!n&&n!==0&&(n=e.session.getLength()),e.gotoLine(n)},sel:function(e,t,n,r){!n&&n!==0&&(n=e.session.getLength()),e.selection.selectTo(n,0)}},g:{param:!0,nav:function(e,t,n,r){switch(r){case"m":console.log("Middle line");break;case"e":console.log("End of prev word");break;case"g":e.gotoLine(n||0);case"u":e.gotoLine(n||0);case"U":e.gotoLine(n||0)}},sel:function(e,t,n,r){switch(r){case"m":console.log("Middle line");break;case"e":console.log("End of prev word");break;case"g":e.selection.selectTo(n||0,0)}}},o:{nav:function(e,t,n,i){n=n||1;var s="";while(00?(e.navigateUp(),e.navigateLineEnd(),e.insert(o)):(e.session.insert({row:0,column:0},o),e.navigateUp()),r.insertMode(e))}},"%":new s(function(e){var t=/[\[\]{}()]/g,n=e.getCursorPosition(),r=e.session.getLine(n.row)[n.column];if(!t.test(r)){var i=h(e,t);if(!i)return;n=i.start}var s=e.session.findMatchingBracket({row:n.row,column:n.column+1});return s}),"{":new s(function(e){var t=e.session,n=t.selection.lead.row;while(n>0&&!/\S/.test(t.getLine(n)))n--;while(/\S/.test(t.getLine(n)))n--;return{column:0,row:n}}),"}":new s(function(e){var t=e.session,n=t.getLength(),r=t.selection.lead.row;while(r":{selFn:function(e,t,n,i){n=n||1;for(var s=0;s":var i=e.getCursorPosition();e.selection.selectLine();for(var s=0;s*]\W|\*\*|[~:,\.&$]|->*?|=>/},{token:"paren.lparen",regex:"[\\[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"constant.numeric",regex:"[+-]?\\d+\\b"},{token:"variable.parameter",regex:/sy|pa?\d\d\d\d\|t\d\d\d\.|innnn/},{token:"keyword",regex:t},{token:"variable.parameter",regex:/\w+-\w+(?:-\w+)*/},{token:e,regex:"\\w+\\b"}],qstring:[{token:"constant.language.escape",regex:"''"},{token:"string",regex:"'",next:"start"},{token:"string",regex:".|w+"}],string:[{token:"constant.language.escape",regex:"``"},{token:"string",regex:"`",next:"start"},{token:"string",regex:".|w+"}]}};r.inherits(s,i),t.AbapHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u{3,}$/,next:"start"},{token:"literal",regex:/^\.{4,}\s*$/,next:"listingBlock"},{token:"titleUnderline",regex:/^(?:={2,}|-{2,}|~{2,}|\^{2,}|\+{2,})\s*$/,next:"start"},{token:"singleLineTitle",regex:/^={1,5}\s+\S.*$/,next:"start"},{token:"otherBlock",regex:/^(?:\*{2,}|_{2,})\s*$/,next:"start"},{token:"optionalTitle",regex:/^\.[^.\s].+$/,next:"start"}],listStart:[{token:"keyword",regex:/^\s*(?:\d+\.|[a-zA-Z]\.|[ixvmIXVM]+\)|\*{1,5}|-|\.{1,5})\s/,next:"listText"},{token:"meta.tag",regex:/^.+(?::{2,4}|;;)(?: |$)/,next:"listText"},{token:"support.function.list.callout",regex:/^(?:<\d+>|\d+>|>) /,next:"text"},{token:"keyword",regex:/^\+\s*$/,next:"start"}],text:[{token:["link","variable.language"],regex:/((?:https?:\/\/|ftp:\/\/|file:\/\/|mailto:|callto:)[^\s\[]+)(\[.*?\])/},{token:"link",regex:/(?:https?:\/\/|ftp:\/\/|file:\/\/|mailto:|callto:)[^\s\[]+/},{token:"link",regex:/\b[\w\.\/\-]+@[\w\.\/\-]+\b/},{include:"macros"},{include:"paragraphEnd"},{token:"literal",regex:/\+{3,}/,next:"smallPassthrough"},{token:"escape",regex:/\((?:C|TM|R)\)|\.{3}|->|<-|=>|<=|&#(?:\d+|x[a-fA-F\d]+);|(?: |^)--(?=\s+\S)/},{token:"escape",regex:/\\[_*'`+#]|\\{2}[_*'`+#]{2}/},{token:"keyword",regex:/\s\+$/},{token:"text",regex:e},{token:["keyword","string","keyword"],regex:/(<<[\w\d\-$]+,)(.*?)(>>|$)/},{token:"keyword",regex:/<<[\w\d\-$]+,?|>>/},{token:"constant.character",regex:/\({2,3}.*?\){2,3}/},{token:"keyword",regex:/\[\[.+?\]\]/},{token:"support",regex:/^\[{3}[\w\d =\-]+\]{3}/},{include:"quotes"},{token:"empty",regex:/^\s*$/,next:"start"}],listText:[{include:"listStart"},{include:"text"}],indentedBlock:[{token:"literal",regex:/^[\s\w].+$/,next:"indentedBlock"},{token:"literal",regex:"",next:"start"}],listingBlock:[{token:"literal",regex:/^\.{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"constant.numeric",regex:"<\\d+>"},{token:"literal",regex:"[^<]+"},{token:"literal",regex:"<"}],literalBlock:[{token:"literal",regex:/^-{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"constant.numeric",regex:"<\\d+>"},{token:"literal",regex:"[^<]+"},{token:"literal",regex:"<"}],passthroughBlock:[{token:"literal",regex:/^\+{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"literal",regex:e+"|\\d+"},{include:"macros"},{token:"literal",regex:"."}],smallPassthrough:[{token:"literal",regex:/[+]{3,}/,next:"dissallowDelimitedBlock"},{token:"literal",regex:/^\s*$/,next:"dissallowDelimitedBlock"},{token:"literal",regex:e+"|\\d+"},{include:"macros"}],commentBlock:[{token:"doc.comment",regex:/^\/{4,}\s*$/,next:"dissallowDelimitedBlock"},{token:"doc.comment",regex:"^.*$"}],tableBlock:[{token:"tableBlock",regex:/^\s*\|={3,}\s*$/,next:"dissallowDelimitedBlock"},{token:"tableBlock",regex:/^\s*!={3,}\s*$/,next:"innerTableBlock"},{token:"tableBlock",regex:/\|/},{include:"text",noEscape:!0}],innerTableBlock:[{token:"tableBlock",regex:/^\s*!={3,}\s*$/,next:"tableBlock"},{token:"tableBlock",regex:/^\s*|={3,}\s*$/,next:"dissallowDelimitedBlock"},{token:"tableBlock",regex:/\!/}],macros:[{token:"macro",regex:/{[\w\-$]+}/},{token:["text","string","text","constant.character","text"],regex:/({)([\w\-$]+)(:)?(.+)?(})/},{token:["text","markup.list.macro","keyword","string"],regex:/(\w+)(footnote(?:ref)?::?)([^\s\[]+)?(\[.*?\])?/},{token:["markup.list.macro","keyword","string"],regex:/([a-zA-Z\-][\w\.\/\-]*::?)([^\s\[]+)(\[.*?\])?/},{token:["markup.list.macro","keyword"],regex:/([a-zA-Z\-][\w\.\/\-]+::?)(\[.*?\])/},{token:"keyword",regex:/^:.+?:(?= |$)/}],quotes:[{token:"string.italic",regex:/__[^_\s].*?__/},{token:"string.italic",regex:t("_")},{token:"keyword.bold",regex:/\*\*[^*\s].*?\*\*/},{token:"keyword.bold",regex:t("\\*")},{token:"literal",regex:t("\\+")},{token:"literal",regex:/\+\+[^+\s].*?\+\+/},{token:"literal",regex:/\$\$.+?\$\$/},{token:"literal",regex:t("`")},{token:"keyword",regex:t("^")},{token:"keyword",regex:t("~")},{token:"keyword",regex:/##?/},{token:"keyword",regex:/(?:\B|^)``|\b''/}]};var n={macro:"constant.character",tableBlock:"doc.comment",titleUnderline:"markup.heading",singleLineTitle:"markup.heading",pageBreak:"string",option:"string.regexp",otherBlock:"markup.list",literal:"support.function",optionalTitle:"constant.numeric",escape:"constant.language.escape",link:"markup.underline.list"};for(var r in this.$rules){var i=this.$rules[r];for(var s=i.length;s--;){var o=i[s];if(o.include||typeof o=="string"){var u=[s,1].concat(this.$rules[o.include||o]);o.noEscape&&(u=u.filter(function(e){return!e.next})),i.splice.apply(i,u)}else o.token in n&&(o.token=n[o.token])}}};r.inherits(s,i),t.AsciidocHighlightRules=s}),ace.define("ace/mode/folding/asciidoc",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:\|={10,}|[\.\/=\-~^+]{4,}\s*$|={1,5} )/,this.singleLineHeadingRe=/^={1,5}(?=\s+\S)/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="="?this.singleLineHeadingRe.test(r)?"start":e.getLine(n-1).length!=e.getLine(n).length?"":"start":e.bgTokenizer.getState(n)=="dissallowDelimitedBlock"?"end":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type}function d(){var t=f.value.match(p);if(t)return t[0].length;var r=c.indexOf(f.value[0])+1;return r==1&&e.getLine(n-1).length!=e.getLine(n).length?Infinity:r}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;var f,c=["=","-","~","^","+"],h="markup.heading",p=this.singleLineHeadingRe;if(l(n)==h){var v=d();while(++nu)while(a>u&&(!l(a)||f.value[0]=="["))a--;if(a>u){var y=e.getLine(a).length;return new s(u,i,a,y)}}else{var b=e.bgTokenizer.getState(n);if(b=="dissallowDelimitedBlock"){while(n-->0)if(e.bgTokenizer.getState(n).lastIndexOf("Block")==-1)break;a=n+1;if(au){var y=e.getLine(n).length;return new s(u,5,a,y-5)}}}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-c9search.js b/web/js/cheef-editor/ace/mode-c9search.js new file mode 100644 index 000000000..cd0a3e34d --- /dev/null +++ b/web/js/cheef-editor/ace/mode-c9search.js @@ -0,0 +1 @@ +ace.define("ace/mode/c9search",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/c9search_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/c9search"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./c9search_highlight_rules").C9SearchHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/c9search").FoldMode,f=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/c9search_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["c9searchresults.constant.numeric","c9searchresults.text","c9searchresults.text"],regex:"(^\\s+[0-9]+)(:\\s*)(.+)"},{token:["string","text"],regex:"(.+)(:$)"}]}};r.inherits(s,i),t.C9SearchHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/c9search",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^(\S.*\:|Searching for.*)$/,this.foldingStopMarker=/^(\s+|Found.*)$/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getAllLines(n),s=r[n],o=/^(Found.*|Searching for.*)$/,u=/^(\S.*\:|\s*)$/,a=o.test(s)?o:u;if(this.foldingStartMarker.test(s)){for(var f=n+1,l=e.getLength();f=0;f--){s=r[f];if(a.test(s))break}return new i(f,s.length,n,0)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-c_cpp.js b/web/js/cheef-editor/ace/mode-c_cpp.js new file mode 100644 index 000000000..cdd98e56a --- /dev/null +++ b/web/js/cheef-editor/ace/mode-c_cpp.js @@ -0,0 +1 @@ +ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./c_cpp_highlight_rules").c_cppHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\s*\\bhypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len)))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template",n="const|extern|register|restrict|static|volatile|inline|private:|protected:|public:|friend|explicit|virtual|export|mutable|typename",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_¡-￿][a-zA-Zd\\$_¡-￿]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword",regex:"(?:#include|#import|#pragma|#line|#define|#undef|#if|#ifdef|#else|#elif|#ifndef)\\b",next:"directive"},{token:"keyword",regex:"(?:#endif)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-clojure.js b/web/js/cheef-editor/ace/mode-clojure.js new file mode 100644 index 000000000..2b9d49eac --- /dev/null +++ b/web/js/cheef-editor/ace/mode-clojure.js @@ -0,0 +1 @@ +ace.define("ace/mode/clojure",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./clojure_highlight_rules").ClojureHighlightRules,u=e("./matching_parens_outdent").MatchingParensOutdent,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u};r.inherits(f,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)#/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,";")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/[\(\[]/);o&&(r+=" "),o=t.match(/[\)]/),o&&(r="")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/clojure_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> ->> .. / < <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap",t="throw try var def do fn if let loop monitor-enter monitor-exit new quote recur set!",n="true false nil",r=this.createKeywordMapper({keyword:t,"constant.language":n,"support.function":e},"identifier",!1," ");this.$rules={start:[{token:"comment",regex:";.*$"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"},{token:"string",regex:'"',next:"string"},{token:"string",regex:/:[\w*+!\-_?:\/]+/},{token:"string.regexp",regex:'/#"(?:\\.|(?:\\")|[^""\n])*"/g'}],string:[{token:"constant.language.escape",regex:"\\\\.|\\\\$"},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"}]}};r.inherits(s,i),t.ClojureHighlightRules=s}),ace.define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingParensOutdent=i}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-coffee.js b/web/js/cheef-editor/ace/mode-coffee.js new file mode 100644 index 000000000..f712ad15f --- /dev/null +++ b/web/js/cheef-editor/ace/mode-coffee.js @@ -0,0 +1 @@ +ace.define("ace/mode/coffee",["require","exports","module","ace/tokenizer","ace/mode/coffee_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee","ace/range","ace/mode/text","ace/worker/worker_client","ace/lib/oop"],function(e,t,n){function c(){this.$tokenizer=new r((new i).getRules()),this.$outdent=new s,this.foldingRules=new o}var r=e("../tokenizer").Tokenizer,i=e("./coffee_highlight_rules").CoffeeHighlightRules,s=e("./matching_brace_outdent").MatchingBraceOutdent,o=e("./folding/coffee").FoldMode,u=e("../range").Range,a=e("./text").Mode,f=e("../worker/worker_client").WorkerClient,l=e("../lib/oop");l.inherits(c,a),function(){var e=/(?:[({[=:]|[-=]>|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,t=/^(\s*)#/,n=/^\s*###(?!#)/,r=/^\s*/;this.getNextLineIndent=function(t,n,r){var i=this.$getIndent(n),s=this.$tokenizer.getLineTokens(n,t).tokens;return(!s.length||s[s.length-1].type!=="comment")&&t==="start"&&e.test(n)&&(i+=r),i},this.toggleCommentLines=function(e,i,s,o){console.log("toggle");var a=new u(0,0,0,0);for(var f=s;f<=o;++f){var l=i.getLine(f);if(n.test(l))continue;t.test(l)?l=l.replace(t,"$1"):l=l.replace(r,"$&#"),a.end.row=a.start.row=f,a.end.column=l.length+1,i.replace(a,l)}},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/coffee_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations([t.data])}),t.on("ok",function(t){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){function s(){var e="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",t={token:"string",regex:".+"},n="this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes",r="true|false|null|undefined|NaN|Infinity",i="case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|slice|bind|indexOf",s="Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray",o="Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|",u="window|arguments|prototype|document",a=this.createKeywordMapper({keyword:n,"constant.language":r,"invalid.illegal":i,"language.support.class":s,"language.support.function":o,"variable.language":u},"identifier"),f={"({args})->":{token:["paren.lparen","text","paren.lparen","text","variable.parameter","text","paren.rparen","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)(\\{)(\\s*)([$@A-Za-z_\\x7f-\\uffff][$@\\w\\s,\\x7f-\\uffff]*)(\\s*)(\\})(\\s*)(\\))(\\s*)([\\-=]>)"},"({})->":{token:["paren.lparen","text","paren.lparen","text","paren.rparen","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)(\\{)(\\s*)(\\})(\\s*)(\\))(\\s*)([\\-=]>)"},"(args)->":{token:["paren.lparen","text","variable.parameter","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)([$@A-Za-z_\\x7f-\\uffff][\\s\\x21-\\uffff]*)(\\s*)(\\))(\\s*)([\\-=]>)"},"()->":{token:["paren.lparen","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)(\\))(\\s*)([\\-=]>)"}};this.$rules={start:[{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",regex:"'''",next:"qdoc"},{token:"string",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string.regex",regex:"///",next:"heregex"},{token:"string.regex",regex:/(?:\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)(?:[imgy]{0,4})(?!\w)/},{token:"comment",regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:["punctuation.operator","identifier"],regex:"(\\.)("+i+")"},{token:"punctuation.operator",regex:"\\."},{token:["keyword","text","language.support.class","text","keyword","text","language.support.class"],regex:"(class)(\\s+)("+e+")(\\s+)(extends)(\\s+)("+e+")"},{token:["keyword","text","language.support.class"],regex:"(class)(\\s+)("+e+")"},{token:["entity.name.function","text","keyword.operator","text"].concat(f["({args})->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["({args})->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["({args})->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["({args})->"].regex},{token:["entity.name.function","text","keyword.operator","text"].concat(f["({})->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["({})->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["({})->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["({})->"].regex},{token:["entity.name.function","text","keyword.operator","text"].concat(f["(args)->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["(args)->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["(args)->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["(args)->"].regex},{token:["entity.name.function","text","keyword.operator","text"].concat(f["()->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["()->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["()->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["()->"].regex},{token:["entity.name.function","text","keyword.operator","text","storage.type"],regex:"("+e+")(\\s*)(=)(\\s*)([\\-=]>)"},{token:["entity.name.function","text","punctuation.operator","text","storage.type"],regex:"("+e+")(\\s*)(:)(\\s*)([\\-=]>)"},f["({args})->"],f["({})->"],f["(args)->"],f["()->"],{token:"identifier",regex:"(?:(?:\\.|::)\\s*)"+e},{token:"variable",regex:"@(?:"+e+")?"},{token:a,regex:e},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\."},{token:"storage.type",regex:"[\\-=]>"},{token:"keyword.operator",regex:"(?:[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|[!*+-=><])"},{token:"paren.lparen",regex:"[({[]"},{token:"paren.rparen",regex:"[\\]})]"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},t],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},t],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},t],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},t],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},t],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",regex:".+"}]}}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},i.tag(this.$rules,"tag","start")};r.inherits(o,s),t.XmlHighlightRules=o}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e){o.call(this),this.voidElements=e||{}};r.inherits(a,o),function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r.closing?t=="markbeginend"?"end":"":!r.tagName||this.voidElements[r.tagName.toLowerCase()]?"":r.selfClosing?"":r.value.indexOf("/"+r.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r="";for(var s=0;s?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/coldfusion_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/text_highlight_rules","ace/mode/xml_util"],function(e,t,n){var r=e("../lib/oop"),i=e("./css_highlight_rules").CssHighlightRules,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=e("./xml_util"),a=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"meta.tag",regex:"<(?=script)",next:"script"},{token:"meta.tag",regex:"<(?=style)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start"),u.tag(this.$rules,"style","css-start"),u.tag(this.$rules,"script","js-start"),this.embedRules(s,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(i,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(a,o),t.ColdfusionHighlightRules=a}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-csharp.js b/web/js/cheef-editor/ace/mode-csharp.js new file mode 100644 index 000000000..5ddcdfdfc --- /dev/null +++ b/web/js/cheef-editor/ace/mode-csharp.js @@ -0,0 +1 @@ +ace.define("ace/mode/csharp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/csharp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./csharp_highlight_rules").CSharpHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/csharp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"this",keyword:"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic","constant.language":"null|true|false"},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-css.js b/web/js/cheef-editor/ace/mode-css.js new file mode 100644 index 000000000..951aea751 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-css.js @@ -0,0 +1 @@ +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-dart.js b/web/js/cheef-editor/ace/mode-dart.js new file mode 100644 index 000000000..f41e6ac05 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-dart.js @@ -0,0 +1 @@ +ace.define("ace/mode/dart",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/dart_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./dart_highlight_rules").DartHighlightRules,u=e("./folding/cstyle").FoldMode,a=function(){var e=new o;this.foldingRules=new u,this.$tokenizer=new s(e.getRules())};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/dart_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="true|false|null",t="this|super",n="try|catch|finally|throw|break|case|continue|default|do|else|for|if|in|return|switch|while|new",r="abstract|class|extends|external|factory|implements|interface|get|native|operator|set|typedef",i="static|final|const",s="void|bool|num|int|double|Dynamic|var|String",o=this.createKeywordMapper({"constant.language.dart":e,"variable.language.dart":t,"keyword.control.dart":n,"keyword.declaration.dart":r,"storage.modifier.dart":i,"storage.type.primitive.dart":s},"identifier"),u={token:"string",regex:".+"};this.$rules={start:[{token:"comment",regex:/\/\/.*$/},{token:"comment",regex:/\/\*/,next:"comment"},{token:["meta.preprocessor.script.dart"],regex:"^(#!.*)$"},{token:["keyword.other.import.dart","meta.declaration.dart"],regex:"#(?:\\b)(?:library|import|source|resource)(?:\\b)"},{token:["keyword.other.import.dart","text"],regex:"(?:\\b)(prefix)(\\s*:)"},{regex:"\\bas\\b",token:"keyword.cast.dart"},{regex:"\\?|:",token:"keyword.control.ternary.dart"},{regex:"(?:\\b)(is\\!?)(?:\\b)",token:["keyword.operator.dart"]},{regex:"(<<|>>>?|~|\\^|\\||&)",token:["keyword.operator.bitwise.dart"]},{regex:"((?:&|\\^|\\||<<|>>>?)=)",token:["keyword.operator.assignment.bitwise.dart"]},{regex:"(===?|!==?|<=?|>=?)",token:["keyword.operator.comparison.dart"]},{regex:"((?:[+*/%-]|\\~)=)",token:["keyword.operator.assignment.arithmetic.dart"]},{regex:"=",token:"keyword.operator.assignment.dart"},{token:"string",regex:"'''",next:"qdoc"},{token:"string",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{regex:"(\\-\\-|\\+\\+)",token:["keyword.operator.increment-decrement.dart"]},{regex:"(\\-|\\+|\\*|\\/|\\~\\/|%)",token:["keyword.operator.arithmetic.dart"]},{regex:"(!|&&|\\|\\|)",token:["keyword.operator.logical.dart"]},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:o,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},u],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},u],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},u],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},u]}};r.inherits(s,i),t.DartHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-diff.js b/web/js/cheef-editor/ace/mode-diff.js new file mode 100644 index 000000000..64266565b --- /dev/null +++ b/web/js/cheef-editor/ace/mode-diff.js @@ -0,0 +1 @@ +ace.define("ace/mode/diff",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/diff_highlight_rules","ace/mode/folding/diff"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./diff_highlight_rules").DiffHighlightRules,u=e("./folding/diff").FoldMode,a=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.foldingRules=new u(["diff","index","\\+{3}","@@|\\*{5}"],"i")};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/diff_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{regex:"^(?:\\*{15}|={67}|-{3}|\\+{3})$",token:"punctuation.definition.separator.diff",name:"keyword"},{regex:"^(@@)(\\s*.+?\\s*)(@@)(.*)$",token:["constant","constant.numeric","constant","comment.doc.tag"]},{regex:"^(\\d+)([,\\d]+)(a|d|c)(\\d+)([,\\d]+)(.*)$",token:["constant.numeric","punctuation.definition.range.diff","constant.function","constant.numeric","punctuation.definition.range.diff","invalid"],name:"meta."},{regex:"^(?:(\\-{3}|\\+{3}|\\*{3})( .+))$",token:["constant.numeric","meta.tag"]},{regex:"^([!+>])(.*?)(\\s*)$",token:["support.constant","text","invalid"]},{regex:"^([<\\-])(.*?)(\\s*)$",token:["support.function","string","invalid"]},{regex:"^(diff)(\\s+--\\w+)?(.+?)( .+)?$",token:["variable","variable","keyword","variable"]},{regex:"^Index.+$",token:"variable"},{regex:"^(.*?)(\\s*)$",token:["invisible","invalid"]}]}};r.inherits(s,i),t.DiffHighlightRules=s}),ace.define("ace/mode/folding/diff",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(e,t){this.regExpList=e,this.flag=t,this.foldingStartMarker=RegExp("^("+e.join("|")+")",this.flag)};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i={row:n,column:r.length},o=this.regExpList;for(var u=1;u<=o.length;u++){var a=RegExp("^("+o.slice(0,u).join("|")+")",this.flag);if(a.test(r))break}for(var f=e.getLength();++n/},{token:"punctuation.operator",regex:/,|;/},{token:"paren.lparen",regex:/[\[{]/},{token:"paren.rparen",regex:/[\]}]/},{token:"comment",regex:/^#!.*$/},{token:function(n){return e.hasOwnProperty(n.toLowerCase())?"keyword":t.hasOwnProperty(n.toLowerCase())?"variable":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]}};r.inherits(u,s),t.DotHighlightRules=u}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-glsl.js b/web/js/cheef-editor/ace/mode-glsl.js new file mode 100644 index 000000000..8e2d9c24f --- /dev/null +++ b/web/js/cheef-editor/ace/mode-glsl.js @@ -0,0 +1 @@ +ace.define("ace/mode/glsl",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/tokenizer","ace/mode/glsl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./c_cpp").Mode,s=e("../tokenizer").Tokenizer,o=e("./glsl_highlight_rules").glslHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),t.Mode=c}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./c_cpp_highlight_rules").c_cppHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\s*\\bhypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len)))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template",n="const|extern|register|restrict|static|volatile|inline|private:|protected:|public:|friend|explicit|virtual|export|mutable|typename",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_¡-￿][a-zA-Zd\\$_¡-￿]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword",regex:"(?:#include|#import|#pragma|#line|#define|#undef|#if|#ifdef|#else|#elif|#ifndef)\\b",next:"directive"},{token:"keyword",regex:"(?:#endif)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/glsl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/c_cpp_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./c_cpp_highlight_rules").c_cppHighlightRules,s=function(){var e="attribute|const|uniform|varying|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|samplerCube|struct",t="radians|degrees|sin|cos|tan|asin|acos|atan|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|normalize|faceforward|reflect|refract|matrixCompMult|lessThan|lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|texture2DProjLod|textureCube|textureCubeLod|gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|gl_DepthRangeParameters|gl_DepthRange|gl_Position|gl_PointSize|gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData",n=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t},"identifier");this.$rules=(new i).$rules,this.$rules.start.forEach(function(e){typeof e.token=="function"&&(e.token=n)})};r.inherits(s,i),t.glslHighlightRules=s}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-golang.js b/web/js/cheef-editor/ace/mode-golang.js new file mode 100644 index 000000000..0498a0054 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-golang.js @@ -0,0 +1 @@ +ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./golang_highlight_rules").GolangHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.foldingRules=new f};r.inherits(l,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new Range(0,0,0,0);for(var o=n;o<=r;o++){var a=t.getLine(o),f=a.match(s);u.start.row=o,u.end.row=o,u.end.column=f[0].length,t.replace(u,f[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="true|else|false|break|case|return|goto|if|const|continue|struct|default|switch|for|func|import|package|chan|defer|fallthrough|go|interface|map|rangeselect|type|var",t="nil|true|false|iota",n=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:n,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.GolangHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-groovy.js b/web/js/cheef-editor/ace/mode-groovy.js new file mode 100644 index 000000000..975b15884 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-groovy.js @@ -0,0 +1 @@ +ace.define("ace/mode/groovy",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/groovy_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("../tokenizer").Tokenizer,o=e("./groovy_highlight_rules").GroovyHighlightRules,u=function(){i.call(this),this.$tokenizer=new s((new o).getRules())};r.inherits(u,i),function(){this.createWorker=function(e){return null}}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/groovy_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"support.function":n,"constant.language":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'"""',next:"qqstring"},{token:"string",regex:"'''",next:"qstring"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:/\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:"constant.language.escape",regex:/\$[\w\d]+/},{token:"constant.language.escape",regex:/\$\{[^"\}]+\}?/},{token:"string",regex:'"{3,5}',next:"start"},{token:"string",regex:".+?"}],qstring:[{token:"constant.language.escape",regex:/\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:"string",regex:"'{3,5}",next:"start"},{token:"string",regex:".+?"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.GroovyHighlightRules=o}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-haml.js b/web/js/cheef-editor/ace/mode-haml.js new file mode 100644 index 000000000..ec95a3993 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-haml.js @@ -0,0 +1 @@ +ace.define("ace/mode/haml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/haml_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./haml_highlight_rules").HamlHighlightRules,u=e("./folding/coffee").FoldMode,a=function(){var e=new o;this.foldingRules=new u,this.$tokenizer=new s(e.getRules())};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/haml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/ruby_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./ruby_highlight_rules"),o=s.RubyHighlightRules,u=function(){this.$rules={start:[{token:"punctuation.section.comment",regex:/^\s*\/.*/},{token:"punctuation.section.comment",regex:/^\s*#.*/},{token:"string.quoted.double",regex:"==.+?=="},{token:"keyword.other.doctype",regex:"^!!!\\s*(?:[a-zA-Z0-9-_]+)?"},s.qString,s.qqString,s.tString,{token:["entity.name.tag.haml"],regex:/^\s*%[\w:]+/,next:"tag_single"},{token:["meta.escape.haml"],regex:"^\\s*\\\\."},s.constantNumericHex,s.constantNumericFloat,s.constantOtherSymbol,{token:"text",regex:"=|-|~",next:"embedded_ruby"}],tag_single:[{token:"entity.other.attribute-name.class.haml",regex:"\\.[\\w-]+"},{token:"entity.other.attribute-name.id.haml",regex:"#[\\w-]+"},{token:"punctuation.section",regex:"\\{",next:"section"},s.constantOtherSymbol,{token:"text",regex:/\s/,next:"start"},{token:["text","punctuation"],regex:"($)|((?!\\.|#|\\{|\\[|=|-|~|\\/))",next:"start"}],section:[s.constantOtherSymbol,s.qString,s.qqString,s.tString,s.constantNumericHex,s.constantNumericFloat,{token:"punctuation.section",regex:"\\}",next:"start"}],embedded_ruby:[s.constantNumericHex,s.constantNumericFloat,{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},{token:(new o).getKeywords(),regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:["keyword","text","text"],regex:"(?:do|\\{)(?: \\|[^|]+\\|)?$",next:"start"},{token:["text"],regex:"^$",next:"start"},{token:["text"],regex:"^(?!.*\\|\\s*$)",next:"start"}]}};r.inherits(u,i),t.HamlHighlightRules=u}),ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.constantOtherSymbol={token:"constant.other.symbol.ruby",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},o=t.qString={token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},u=t.qqString={token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},a=t.tString={token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},f=t.constantNumericHex={token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},l=t.constantNumericFloat={token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},c=function(){var e="abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|h|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|t|l|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many",t="alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield",n="true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING",r="$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self",i=this.$keywords=this.createKeywordMapper({keyword:t,"constant.language":n,"variable.language":r,"support.function":e,"invalid.deprecated":"debugger"},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",regex:"^=begin\\s",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},o,u,a,{token:"text",regex:"::"},{token:"variable.instance",regex:"@{1,2}[a-zA-Z_\\d]+"},{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]+"},s,f,l,{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.separator.key-value",regex:"=>"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end\\s.*$",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.HaxeHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-html.js b/web/js/cheef-editor/ace/mode-html.js new file mode 100644 index 000000000..cbec8635c --- /dev/null +++ b/web/js/cheef-editor/ace/mode-html.js @@ -0,0 +1 @@ +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/html","ace/mode/folding/html"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript").Mode,o=e("./css").Mode,u=e("../tokenizer").Tokenizer,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/html").HtmlBehaviour,l=e("./folding/html").FoldMode,c=function(){var e=new a;this.$tokenizer=new u(e.getRules()),this.$behaviour=new f,this.$embeds=e.getEmbeds(),this.createModeDelegates({"js-":s,"css-":o}),this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){return 0},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/html",["require","exports","module","ace/lib/oop","ace/mode/behaviour/xml","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function a(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour/xml").XmlBehaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],f=function(){this.inherit(i),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),f=new o(r,s.row,s.column),l=f.getCurrentToken(),c=!1;if(!l||!a(l,"meta.tag")&&(!a(l,"text")||!l.value.match("/"))){do l=f.stepBackward();while(l&&(a(l,"string")||a(l,"keyword.operator")||a(l,"entity.attribute-name")||a(l,"text")))}else c=!0;if(!l||!a(l,"meta.tag-name")||f.stepBackward().value.match("/"))return;var h=l.value;if(c)var h=h.substring(0,s.column-l.start);if(u.indexOf(h)!==-1)return;return{text:">",selection:[1,1]}}})};r.inherits(f,i),t.HtmlBehaviour=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-jade.js b/web/js/cheef-editor/ace/mode-jade.js new file mode 100644 index 000000000..7e2728704 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-jade.js @@ -0,0 +1 @@ +ace.define("ace/mode/jade",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/jade_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./jade_highlight_rules").JadeHighlightRules,u=e("./folding/coffee").FoldMode,a=function(){var e=new o;this.$tokenizer=new s(e.getRules()),this.foldingRules=new u};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/jade_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/markdown_highlight_rules","ace/mode/scss_highlight_rules","ace/mode/less_highlight_rules","ace/mode/coffee_highlight_rules","ace/mode/javascript_highlight_rules"],function(e,t,n){function l(e,t){return{token:"entity.name.function.jade",regex:"^\\s*\\:"+e,next:t+"start"}}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./markdown_highlight_rules").MarkdownHighlightRules,o=e("./scss_highlight_rules").ScssHighlightRules,u=e("./less_highlight_rules").LessHighlightRules,a=e("./coffee_highlight_rules").CoffeeHighlightRules,f=e("./javascript_highlight_rules").JavaScriptHighlightRules,c=function(){var e="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"keyword.control.import.include.jade",regex:"\\s*\\binclude\\b"},{token:"keyword.other.doctype.jade",regex:"^!!!\\s*(?:[a-zA-Z0-9-_]+)?"},{token:"punctuation.section.comment",regex:"^\\s*//(?:\\s*[^-\\s]|\\s+\\S)(?:.*$)"},{token:function(e,t){return"punctuation.section.comment"},regex:"^((\\s*)//)(?:\\s*$)",next:"comment_block"},l("markdown","markdown-"),l("sass","sass-"),l("less","less-"),l("coffee","coffee-"),{token:["storage.type.function.jade","entity.name.function.jade","punctuation.definition.parameters.begin.jade","variable.parameter.function.jade","punctuation.definition.parameters.end.jade"],regex:"^(\\s*mixin)( [\\w\\-]+)(\\s*\\()(.*?)(\\))"},{token:["storage.type.function.jade","entity.name.function.jade"],regex:"^(\\s*mixin)( [\\w\\-]+)"},{token:"source.js.embedded.jade",regex:"^\\s*(?:-|=|!=)",next:"js-start"},{token:"string.interpolated.jade",regex:"[#!]\\{[^\\}]+\\}"},{token:["meta.tag.any.jade","entity.variable.tag.jade"],regex:/^\s*(?!\w+\:)(?:[\w]+|(?=\.|#)])/,next:"tag_single"},{token:"suport.type.attribute.id.jade",regex:"#\\w+"},{token:"suport.type.attribute.class.jade",regex:"\\.\\w+"},{token:"punctuation",regex:"\\s*(?:\\()",next:"tag_attributes"}],comment_block:[{token:function(e){return"text"},regex:"^(\\1\\S|$)",captures:"1",next:"start"},{token:"comment.block.jade",regex:".+"}],tag_single:[{token:"entity.other.attribute-name.class.jade",regex:"\\.[\\w-]+"},{token:"entity.other.attribute-name.id.jade",regex:"#[\\w-]+"},{token:["text","punctuation"],regex:"($)|((?!\\.|#|=|-))",next:"start"}],tag_attributes:[{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"entity.other.attribute-name.jade",regex:"\\b[a-zA-Z\\-:]+"},{token:["entity.other.attribute-name.jade","punctuation"],regex:"\\b([a-zA-Z:\\.-]+)(=)",next:"attribute_strings"},{token:"punctuation",regex:"\\)",next:"start"}],attribute_strings:[{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.language.escape",regex:e},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"tag_attributes"}],qstring:[{token:"constant.language.escape",regex:e},{token:"string",regex:"[^'\\\\]+"},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"tag_attributes"}]},this.embedRules(f,"js-",[{token:"text",regex:".$",next:"start"}])};r.inherits(c,i),t.JadeHighlightRules=c}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){function f(e,t){return{token:"support.function",regex:"^```"+e+"\\s*$",next:t+"start"}}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./html_highlight_rules").HtmlHighlightRules,a=e("./css_highlight_rules").CssHighlightRules,l=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:["support.function","support.function","support.function"],regex:"(`+)([^\\r]*?[^`])(\\1)"},{token:"support.function",regex:"^[ ]{4}.+"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.search(/[^#]/)},regex:"^#{1,6}(?:[^ #].*| +.*(?:[^ #].*|[^ ]+.* +#+ *))$"},f("(?:javascript|js)","js-"),f("xml","xml-"),f("html","html-"),f("css","css-"),{token:"support.function",regex:"^```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:"string",regex:"^>[ ].+$",next:"blockquote"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:'(\\[)(\\[[^\\]]*\\]|[^\\[\\]]*)(\\]\\([ \\t]*)(?)((?:[ ]*"(?:.*?)"[ \\t]*)?)(\\))'},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\*[ ]?){3,}\\s*$"},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\-[ ]?){3,}\\s*$"},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\_[ ]?){3,}\\s*$"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock"},{token:["string","string","string"],regex:"([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)"},{token:["string","string","string"],regex:"([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"},{token:"text",regex:"[^\\*_%$`\\[#<>]+"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:".+"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string",regex:".+"}],githubblock:[{token:"support.function",regex:"^```",next:"start"},{token:"support.function",regex:".+"}]},this.embedRules(s,"js-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(u,"html-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(a,"css-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(o,"xml-",[{token:"support.function",regex:"^```",next:"start"}]);var e=(new u).getRules();for(var t in e)this.$rules[t]?this.$rules[t]=this.$rules[t].concat(e[t]):this.$rules[t]=e[t]};r.inherits(l,i),t.MarkdownHighlightRules=l}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./xml_util"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},i.tag(this.$rules,"tag","start")};r.inherits(o,s),t.XmlHighlightRules=o}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(o,s),t.LessHighlightRules=o}),ace.define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){function s(){var e="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",t={token:"string",regex:".+"},n="this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes",r="true|false|null|undefined|NaN|Infinity",i="case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|slice|bind|indexOf",s="Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray",o="Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|",u="window|arguments|prototype|document",a=this.createKeywordMapper({keyword:n,"constant.language":r,"invalid.illegal":i,"language.support.class":s,"language.support.function":o,"variable.language":u},"identifier"),f={"({args})->":{token:["paren.lparen","text","paren.lparen","text","variable.parameter","text","paren.rparen","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)(\\{)(\\s*)([$@A-Za-z_\\x7f-\\uffff][$@\\w\\s,\\x7f-\\uffff]*)(\\s*)(\\})(\\s*)(\\))(\\s*)([\\-=]>)"},"({})->":{token:["paren.lparen","text","paren.lparen","text","paren.rparen","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)(\\{)(\\s*)(\\})(\\s*)(\\))(\\s*)([\\-=]>)"},"(args)->":{token:["paren.lparen","text","variable.parameter","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)([$@A-Za-z_\\x7f-\\uffff][\\s\\x21-\\uffff]*)(\\s*)(\\))(\\s*)([\\-=]>)"},"()->":{token:["paren.lparen","text","paren.rparen","text","storage.type"],regex:"(\\()(\\s*)(\\))(\\s*)([\\-=]>)"}};this.$rules={start:[{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",regex:"'''",next:"qdoc"},{token:"string",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string.regex",regex:"///",next:"heregex"},{token:"string.regex",regex:/(?:\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)(?:[imgy]{0,4})(?!\w)/},{token:"comment",regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:["punctuation.operator","identifier"],regex:"(\\.)("+i+")"},{token:"punctuation.operator",regex:"\\."},{token:["keyword","text","language.support.class","text","keyword","text","language.support.class"],regex:"(class)(\\s+)("+e+")(\\s+)(extends)(\\s+)("+e+")"},{token:["keyword","text","language.support.class"],regex:"(class)(\\s+)("+e+")"},{token:["entity.name.function","text","keyword.operator","text"].concat(f["({args})->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["({args})->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["({args})->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["({args})->"].regex},{token:["entity.name.function","text","keyword.operator","text"].concat(f["({})->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["({})->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["({})->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["({})->"].regex},{token:["entity.name.function","text","keyword.operator","text"].concat(f["(args)->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["(args)->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["(args)->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["(args)->"].regex},{token:["entity.name.function","text","keyword.operator","text"].concat(f["()->"].token),regex:"("+e+")(\\s*)(=)(\\s*)"+f["()->"].regex},{token:["entity.name.function","text","punctuation.operator","text"].concat(f["()->"].token),regex:"("+e+")(\\s*)(:)(\\s*)"+f["()->"].regex},{token:["entity.name.function","text","keyword.operator","text","storage.type"],regex:"("+e+")(\\s*)(=)(\\s*)([\\-=]>)"},{token:["entity.name.function","text","punctuation.operator","text","storage.type"],regex:"("+e+")(\\s*)(:)(\\s*)([\\-=]>)"},f["({args})->"],f["({})->"],f["(args)->"],f["()->"],{token:"identifier",regex:"(?:(?:\\.|::)\\s*)"+e},{token:"variable",regex:"@(?:"+e+")?"},{token:a,regex:e},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\."},{token:"storage.type",regex:"[\\-=]>"},{token:"keyword.operator",regex:"(?:[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|[!*+-=><])"},{token:"paren.lparen",regex:"[({[]"},{token:"paren.rparen",regex:"[\\]})]"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},t],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},t],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},t],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},t],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},t],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",regex:".+"}]}}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaHighlightRules=o}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-javascript.js b/web/js/cheef-editor/ace/mode-javascript.js new file mode 100644 index 000000000..508baab27 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-javascript.js @@ -0,0 +1 @@ +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-json.js b/web/js/cheef-editor/ace/mode-json.js new file mode 100644 index 000000000..c2540fb7f --- /dev/null +++ b/web/js/cheef-editor/ace/mode-json.js @@ -0,0 +1 @@ +ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./json_highlight_rules").JsonHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,c=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new a,this.foldingRules=new f};r.inherits(c,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new l(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations([t.data])}),t.on("ok",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-jsp.js b/web/js/cheef-editor/ace/mode-jsp.js new file mode 100644 index 000000000..cc8b285d2 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-jsp.js @@ -0,0 +1 @@ +ace.define("ace/mode/jsp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/jsp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./jsp_highlight_rules").JspHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){var e=new o;this.$tokenizer=new s(e.getRules()),this.$outdent=new u,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/jsp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/java_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./java_highlight_rules").JavaHighlightRules,o=function(){i.call(this);for(var e in this.$rules)this.$rules[e].unshift({token:"meta.tag",regex:"<%@?|<%=?|]+>",next:"jsp-start"});var t="request|response|out|session|application|config|pageContext|page|Exception",n="page|include|taglib";this.embedRules(s,"jsp-"),this.$rules.start.unshift({token:"comment",regex:"<%--",next:"comment"}),this.$rules["jsp-start"].unshift({token:"meta.tag",regex:"%>|<\\/jsp:[^>]+>",next:"start"},{token:"variable.language",regex:t},{token:"keyword",regex:n}),this.$rules.comment.unshift({token:"comment",regex:".*?--%>",next:"start"})};r.inherits(o,i),t.JspHighlightRules=o}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-jsx.js b/web/js/cheef-editor/ace/mode-jsx.js new file mode 100644 index 000000000..ab7d27a38 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-jsx.js @@ -0,0 +1 @@ +ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){function l(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new a,this.foldingRules=new f}var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./jsx_highlight_rules").JsxHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode;r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){var e=i.arrayToMap("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert".split("|")),t=i.arrayToMap("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined".split("|")),n=i.arrayToMap("debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__".split("|")),r="[a-zA-Z_][a-zA-Z0-9_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},s.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:["storage.type","text","entity.name.function"],regex:"(function)(\\s+)("+r+")"},{token:function(r){return r=="this"?"variable.language":r=="function"?"storage.type":e.hasOwnProperty(r)||n.hasOwnProperty(r)?"keyword":t.hasOwnProperty(r)?"constant.language":/^_?[A-Z][a-zA-Z0-9_]*$/.test(r)?"language.support.class":"identifier"},regex:r},{token:"keyword.operator",regex:"!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]},this.embedRules(s,"doc-",[s.getEndRule("start")])};r.inherits(u,o),t.JsxHighlightRules=u}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-latex.js b/web/js/cheef-editor/ace/mode-latex.js new file mode 100644 index 000000000..0f364f876 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-latex.js @@ -0,0 +1 @@ +ace.define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/latex_highlight_rules","ace/mode/folding/latex","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./latex_highlight_rules").LatexHighlightRules,u=e("./folding/latex").FoldMode,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.foldingRules=new u};r.inherits(f,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\%/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"%")},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/latex_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"keyword",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"string",regex:"\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$"},{token:"comment",regex:"%.*$"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define("ace/mode/folding/latex",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=e("../../token_iterator").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/^\s*\\(begin)|(section|subsection)\b|{\s*$/,this.foldingStopMarker=/^\s*\\(end)\b|^\s*}/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):i[2]?this.latexSection(e,n,i[0].length-1):this.openingBracketBlock(e,"{",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):this.closingBracketBlock(e,"}",n,i.index+i[0].length)},this.latexBlock=function(e,t,n){var r={"\\begin":1,"\\end":-1},i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!=="keyword")return;var a=u.value,f=r[a],l=function(){var e=i.stepForward(),t=e.type=="lparen"?i.stepForward().value:"";return f===-1&&(i.stepBackward(),t&&i.stepBackward()),t},c=[l()],h=f===-1?i.getCurrentTokenColumn():e.getLine(t).length,p=t;i.step=f===-1?i.stepBackward:i.stepForward;while(u=i.step()){if(u.type!=="keyword")continue;var d=r[u.value];if(!d)continue;var v=l();if(d===f)c.unshift(v);else if(c.shift()!==v||!c.length)break}if(c.length)return;var t=i.getCurrentTokenRow();return f===-1?new s(t,e.getLine(t).length,p,h):new s(p,h,t,i.getCurrentTokenColumn())},this.latexSection=function(e,t,n){var r=["\\subsection","\\section","\\begin","\\end"],i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!="keyword")return;var a=r.indexOf(u.value),f=0,l=t;while(u=i.stepForward()){if(u.type!=="keyword")continue;var c=r.indexOf(u.value);if(c>=2){f||(l=i.getCurrentTokenRow()-1),f+=c==2?1:-1;if(f<0)break}else if(c>=a)break}f||(l=i.getCurrentTokenRow()-1);while(l>t&&!/\S/.test(e.getLine(l)))l--;return new s(t,e.getLine(t).length,l,e.getLine(l).length)}}.call(u.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-less.js b/web/js/cheef-editor/ace/mode-less.js new file mode 100644 index 000000000..0db8a1885 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-less.js @@ -0,0 +1 @@ +ace.define("ace/mode/less",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/less_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./less_highlight_rules").LessHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,f=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(o,s),t.LessHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-liquid.js b/web/js/cheef-editor/ace/mode-liquid.js new file mode 100644 index 000000000..8e9ff3cf2 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-liquid.js @@ -0,0 +1 @@ +ace.define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./liquid_highlight_rules").LiquidHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u};r.inherits(f,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=[],o=/^(\s*)#/;for(var u=n;u<=r;u++)if(!o.test(t.getLine(u))){i=!1;break}if(i){var f=new a(0,0,0,0);for(var u=n;u<=r;u++){var l=t.getLine(u),c=l.match(o);f.start.row=u,f.end.row=u,f.end.column=c[0].length,t.replace(f,c[1])}}else t.indentRows(n,r,"#")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/liquid_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./css_highlight_rules").CssHighlightRules,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./xml_util"),u=e("./text_highlight_rules").TextHighlightRules,a=function(){var e="date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split",t="capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow",n="forloop|tablerowloop",r="assign",u=this.createKeywordMapper({"variable.language":n,keyword:t,"support.function":e,"keyword.definition":r},"identifier");this.$rules={start:[{token:"variable",regex:"{%",next:"liquid_start"},{token:"variable",regex:"{{",next:"liquid_start"},{token:"meta.tag",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"meta.tag",regex:"<(?=\\s*script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=\\s*style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}],liquid_start:[{token:"variable",regex:"}}",next:"start"},{token:"variable",regex:"%}",next:"start"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"/|\\*|\\-|\\+|=|!=|\\?\\:"},{token:"paren.lparen",regex:/[\[\({]/},{token:"paren.rparen",regex:/[\])}]/},{token:"text",regex:"\\s+"}]},o.tag(this.$rules,"tag","start"),o.tag(this.$rules,"style","css-start"),o.tag(this.$rules,"script","js-start"),this.embedRules(s,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(i,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(a,u),t.LiquidHighlightRules=a}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-lisp.js b/web/js/cheef-editor/ace/mode-lisp.js new file mode 100644 index 000000000..a27f23686 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-lisp.js @@ -0,0 +1 @@ +ace.define("ace/mode/lisp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lisp_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./lisp_highlight_rules").LispHighlightRules,u=function(){var e=new o;this.$tokenizer=new s(e.getRules())};r.inherits(u,i),function(){}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/lisp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="case|do|let|loop|if|else|when",t="eq|neq|and|or",n="null|nil",r="cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn",i=this.createKeywordMapper({"keyword.control":e,"keyword.operator":t,"constant.language":n,"support.function":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:";.*$"},{token:["storage.type.function-type.lisp","text","entity.name.function.lisp"],regex:"(?:\\b(?:(defun|defmethod|defmacro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"},{token:["punctuation.definition.constant.character.lisp","constant.character.lisp"],regex:"(#)((?:\\w|[\\\\+-=<>'\"&#])+)"},{token:["punctuation.definition.variable.lisp","variable.other.global.lisp","punctuation.definition.variable.lisp"],regex:"(\\*)(\\S*)(\\*)"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.character.escape.lisp",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}]}};r.inherits(s,i),t.LispHighlightRules=s}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-lua.js b/web/js/cheef-editor/ace/mode-lua.js new file mode 100644 index 000000000..cfbff84c7 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-lua.js @@ -0,0 +1 @@ +ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./lua_highlight_rules").LuaHighlightRules,u=e("./folding/lua").FoldMode,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.foldingRules=new u};r.inherits(f,i),function(){function n(t){var n=0;for(var r in t){var i=t[r];i.type=="keyword"?i.value in e&&(n+=e[i.value]):i.type=="paren.lparen"?n++:i.type=="paren.rparen"&&n--}return n<0?-1:n>0?1:0}var e={"function":1,then:1,"do":1,"else":1,elseif:1,repeat:1,end:-1,until:-1},t=["else","elseif","end","until"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.$tokenizer.getLineTokens(t,e),u=o.tokens;return e=="start"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,"\n")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!="\n"&&r!="\r"&&r!="\r\n")return!1;if(n.match(/^\s*[\)\}\]]$/))return!0;var i=this.$tokenizer.getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type=="keyword"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.$tokenizer.getLineTokens(i,"start").tokens,u=t.getTabString().length,f=s+u*n(o),l=this.$getIndent(t.getLine(r)).length;if(l|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qcomment:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"comment",regex:".+"}],qcomment1:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"comment",regex:".+"}],qcomment2:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"comment",regex:".+"}],qcomment3:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"comment",regex:".+"}],qcomment4:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"comment",regex:".+"}],qcomment5:[{token:function(e){var t=/\](\=+)\]/,n=this.rules.qcomment5[0],r;n.next="start";if((r=t.exec(e))!=null&&(r=r[1])!=undefined){var i=r.length,s;(s=v.pop())!=i&&(v.push(s),n.next="qcomment5")}return"comment"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"comment",regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"string",regex:".+"}],qstring1:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"string",regex:".+"}],qstring2:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"string",regex:".+"}],qstring3:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"string",regex:".+"}],qstring4:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"string",regex:".+"}],qstring5:[{token:function(e){var t=/\](\=+)\]/,n=this.rules.qstring5[0],r;n.next="start";if((r=t.exec(e))!=null&&(r=r[1])!=undefined){var i=r.length,s;(s=v.pop())!=i&&(v.push(s),n.next="qstring5")}return"string"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=e("../../token_iterator").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/,this.foldingStopMarker=/\bend\b|^\s*}|\]=*\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]=="then"&&/\belseif\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type==="keyword")return"start"}else{if(!o[2])return"start";var u=e.bgTokenizer.getState(n)||"";if(u.indexOf("comment")!=-1||u.indexOf("string")!=-1)return"start"}}if(t!="markbeginend"||!s||i&&s)return"";var o=r.match(this.foldingStopMarker);if(o[0]==="end"){if(e.getTokenAt(n,o.index+1).type==="keyword")return"end"}else{if(o[0][0]!=="]")return"end";var u=e.bgTokenizer.getState(n-1)||"";if(u.indexOf("comment")!=-1||u.indexOf("string")!=-1)return"end"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,"{",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]==="end"&&e.getTokenAt(n,i.index+1).type==="keyword"?this.luaBlock(e,n,i.index+1):i[0][0]==="]"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,"}",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={"function":1,"do":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!="keyword")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!=="keyword")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!="elseif")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-luapage.js b/web/js/cheef-editor/ace/mode-luapage.js new file mode 100644 index 000000000..82b2717b2 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-luapage.js @@ -0,0 +1 @@ +ace.define("ace/mode/luapage",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/lua","ace/tokenizer","ace/mode/luapage_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./html").Mode,s=e("./lua").Mode,o=e("../tokenizer").Tokenizer,u=e("./luapage_highlight_rules").LuaPageHighlightRules,a=function(){var e=new u;this.$tokenizer=new o((new u).getRules()),this.$embeds=e.getEmbeds(),this.createModeDelegates({"lua-":s})};r.inherits(a,i),t.Mode=a}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/html","ace/mode/folding/html"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript").Mode,o=e("./css").Mode,u=e("../tokenizer").Tokenizer,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/html").HtmlBehaviour,l=e("./folding/html").FoldMode,c=function(){var e=new a;this.$tokenizer=new u(e.getRules()),this.$behaviour=new f,this.$embeds=e.getEmbeds(),this.createModeDelegates({"js-":s,"css-":o}),this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){return 0},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/html",["require","exports","module","ace/lib/oop","ace/mode/behaviour/xml","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function a(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour/xml").XmlBehaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],f=function(){this.inherit(i),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),f=new o(r,s.row,s.column),l=f.getCurrentToken(),c=!1;if(!l||!a(l,"meta.tag")&&(!a(l,"text")||!l.value.match("/"))){do l=f.stepBackward();while(l&&(a(l,"string")||a(l,"keyword.operator")||a(l,"entity.attribute-name")||a(l,"text")))}else c=!0;if(!l||!a(l,"meta.tag-name")||f.stepBackward().value.match("/"))return;var h=l.value;if(c)var h=h.substring(0,s.column-l.start);if(u.indexOf(h)!==-1)return;return{text:">",selection:[1,1]}}})};r.inherits(f,i),t.HtmlBehaviour=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}),ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./lua_highlight_rules").LuaHighlightRules,u=e("./folding/lua").FoldMode,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.foldingRules=new u};r.inherits(f,i),function(){function n(t){var n=0;for(var r in t){var i=t[r];i.type=="keyword"?i.value in e&&(n+=e[i.value]):i.type=="paren.lparen"?n++:i.type=="paren.rparen"&&n--}return n<0?-1:n>0?1:0}var e={"function":1,then:1,"do":1,"else":1,elseif:1,repeat:1,end:-1,until:-1},t=["else","elseif","end","until"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.$tokenizer.getLineTokens(t,e),u=o.tokens;return e=="start"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,"\n")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!="\n"&&r!="\r"&&r!="\r\n")return!1;if(n.match(/^\s*[\)\}\]]$/))return!0;var i=this.$tokenizer.getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type=="keyword"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.$tokenizer.getLineTokens(i,"start").tokens,u=t.getTabString().length,f=s+u*n(o),l=this.$getIndent(t.getLine(r)).length;if(l|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qcomment:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"comment",regex:".+"}],qcomment1:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"comment",regex:".+"}],qcomment2:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"comment",regex:".+"}],qcomment3:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"comment",regex:".+"}],qcomment4:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"comment",regex:".+"}],qcomment5:[{token:function(e){var t=/\](\=+)\]/,n=this.rules.qcomment5[0],r;n.next="start";if((r=t.exec(e))!=null&&(r=r[1])!=undefined){var i=r.length,s;(s=v.pop())!=i&&(v.push(s),n.next="qcomment5")}return"comment"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"comment",regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"string",regex:".+"}],qstring1:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"string",regex:".+"}],qstring2:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"string",regex:".+"}],qstring3:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"string",regex:".+"}],qstring4:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"string",regex:".+"}],qstring5:[{token:function(e){var t=/\](\=+)\]/,n=this.rules.qstring5[0],r;n.next="start";if((r=t.exec(e))!=null&&(r=r[1])!=undefined){var i=r.length,s;(s=v.pop())!=i&&(v.push(s),n.next="qstring5")}return"string"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=e("../../token_iterator").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/,this.foldingStopMarker=/\bend\b|^\s*}|\]=*\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]=="then"&&/\belseif\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type==="keyword")return"start"}else{if(!o[2])return"start";var u=e.bgTokenizer.getState(n)||"";if(u.indexOf("comment")!=-1||u.indexOf("string")!=-1)return"start"}}if(t!="markbeginend"||!s||i&&s)return"";var o=r.match(this.foldingStopMarker);if(o[0]==="end"){if(e.getTokenAt(n,o.index+1).type==="keyword")return"end"}else{if(o[0][0]!=="]")return"end";var u=e.bgTokenizer.getState(n-1)||"";if(u.indexOf("comment")!=-1||u.indexOf("string")!=-1)return"end"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,"{",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]==="end"&&e.getTokenAt(n,i.index+1).type==="keyword"?this.luaBlock(e,n,i.index+1):i[0][0]==="]"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,"}",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={"function":1,"do":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!="keyword")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!=="keyword")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!="elseif")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define("ace/mode/luapage_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/lua_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./html_highlight_rules").HtmlHighlightRules,s=e("./lua_highlight_rules").LuaHighlightRules,o=function(){this.$rules=(new i).getRules();for(var e in this.$rules)this.$rules[e].unshift({token:"keyword",regex:"<\\%\\=?",next:"lua-start"},{token:"keyword",regex:"<\\?lua\\=?",next:"lua-start"});this.embedRules(s,"lua-",[{token:"keyword",regex:"\\%>",next:"start"},{token:"keyword",regex:"\\?>",next:"start"}])};r.inherits(o,i),t.LuaPageHighlightRules=o}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-lucene.js b/web/js/cheef-editor/ace/mode-lucene.js new file mode 100644 index 000000000..f95c0af7e --- /dev/null +++ b/web/js/cheef-editor/ace/mode-lucene.js @@ -0,0 +1 @@ +ace.define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lucene_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./lucene_highlight_rules").LuceneHighlightRules,u=function(){this.$tokenizer=new s((new o).getRules())};r.inherits(u,i),t.Mode=u}),ace.define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"constant.character.negation",regex:"[\\-]"},{token:"constant.character.interro",regex:"[\\?]"},{token:"constant.character.asterisk",regex:"[\\*]"},{token:"constant.character.proximity",regex:"~[0-9]+\\b"},{token:"keyword.operator",regex:"(?:AND|OR|NOT)\\b"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"keyword",regex:"[\\S]+:"},{token:"string",regex:'".*?"'},{token:"text",regex:"\\s+"}]}};r.inherits(o,s),t.LuceneHighlightRules=o}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-makefile.js b/web/js/cheef-editor/ace/mode-makefile.js new file mode 100644 index 000000000..c567fd920 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-makefile.js @@ -0,0 +1 @@ +ace.define("ace/mode/makefile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/makefile_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./makefile_highlight_rules").MakefileHighlightRules,u=e("./folding/coffee").FoldMode,a=function(){var e=new o;this.foldingRules=new u,this.$tokenizer=new s(e.getRules())};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/makefile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/sh_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./sh_highlight_rules"),o=function(){var e=this.createKeywordMapper({keyword:s.reservedKeywords,"support.function.builtin":s.languageConstructs,"invalid.deprecated":"debugger"},"string");this.$rules={start:[{token:"string.interpolated.backtick.makefile",regex:"`",next:"shell-start"},{token:"punctuation.definition.comment.makefile",regex:/#(?=.)/,next:"comment"},{token:["keyword.control.makefile"],regex:"^(?:\\s*\\b)(\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\b)"},{token:["entity.name.function.makefile","text"],regex:"^([^\\t ]+(?:\\s[^\\t ]+)*:)(\\s*.*)"}],comment:[{token:"punctuation.definition.comment.makefile",regex:/.+\\/},{token:"punctuation.definition.comment.makefile",regex:".+",next:"start"}],"shell-start":[{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:"\\w+"},{token:"string.interpolated.backtick.makefile",regex:"`",next:"start"}]}};r.inherits(o,i),t.MakefileHighlightRules=o}),ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z][a-zA-Z0-9_]*",c="(?:(?:\\$"+l+")|(?:"+l+"=))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"variable.language",regex:h},{token:"variable",regex:c},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}]}};r.inherits(u,i),t.ShHighlightRules=u}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=function(){this.$tokenizer=new s((new o).getRules()),this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./xml_util"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},i.tag(this.$rules,"tag","start")};r.inherits(o,s),t.XmlHighlightRules=o}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/html","ace/mode/folding/html"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript").Mode,o=e("./css").Mode,u=e("../tokenizer").Tokenizer,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/html").HtmlBehaviour,l=e("./folding/html").FoldMode,c=function(){var e=new a;this.$tokenizer=new u(e.getRules()),this.$behaviour=new f,this.$embeds=e.getEmbeds(),this.createModeDelegates({"js-":s,"css-":o}),this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){return 0},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/behaviour/html",["require","exports","module","ace/lib/oop","ace/mode/behaviour/xml","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function a(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour/xml").XmlBehaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],f=function(){this.inherit(i),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),f=new o(r,s.row,s.column),l=f.getCurrentToken(),c=!1;if(!l||!a(l,"meta.tag")&&(!a(l,"text")||!l.value.match("/"))){do l=f.stepBackward();while(l&&(a(l,"string")||a(l,"keyword.operator")||a(l,"entity.attribute-name")||a(l,"text")))}else c=!0;if(!l||!a(l,"meta.tag-name")||f.stepBackward().value.match("/"))return;var h=l.value;if(c)var h=h.substring(0,s.column-l.start);if(u.indexOf(h)!==-1)return;return{text:">",selection:[1,1]}}})};r.inherits(f,i),t.HtmlBehaviour=f}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(){i.call(this,new s({area:1,base:1,br:1,col:1,command:1,embed:1,hr:1,img:1,input:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1,li:1,dt:1,dd:1,p:1,rt:1,rp:1,optgroup:1,option:1,colgroup:1,td:1,th:1}),{"js-":new o,"css-":new o})};r.inherits(u,i)}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){function f(e,t){return{token:"support.function",regex:"^```"+e+"\\s*$",next:t+"start"}}var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./html_highlight_rules").HtmlHighlightRules,a=e("./css_highlight_rules").CssHighlightRules,l=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:["support.function","support.function","support.function"],regex:"(`+)([^\\r]*?[^`])(\\1)"},{token:"support.function",regex:"^[ ]{4}.+"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.search(/[^#]/)},regex:"^#{1,6}(?:[^ #].*| +.*(?:[^ #].*|[^ ]+.* +#+ *))$"},f("(?:javascript|js)","js-"),f("xml","xml-"),f("html","html-"),f("css","css-"),{token:"support.function",regex:"^```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:"string",regex:"^>[ ].+$",next:"blockquote"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:'(\\[)(\\[[^\\]]*\\]|[^\\[\\]]*)(\\]\\([ \\t]*)(?)((?:[ ]*"(?:.*?)"[ \\t]*)?)(\\))'},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\*[ ]?){3,}\\s*$"},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\-[ ]?){3,}\\s*$"},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\_[ ]?){3,}\\s*$"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock"},{token:["string","string","string"],regex:"([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)"},{token:["string","string","string"],regex:"([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"},{token:"text",regex:"[^\\*_%$`\\[#<>]+"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:".+"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string",regex:".+"}],githubblock:[{token:"support.function",regex:"^```",next:"start"},{token:"support.function",regex:".+"}]},this.embedRules(s,"js-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(u,"html-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(a,"css-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(o,"xml-",[{token:"support.function",regex:"^```",next:"start"}]);var e=(new u).getRules();for(var t in e)this.$rules[t]?this.$rules[t]=this.$rules[t].concat(e[t]):this.$rules[t]=e[t]};r.inherits(l,i),t.MarkdownHighlightRules=l}),ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="`"?e.bgTokenizer.getState(n)=="start"?"end":"start":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e=="="?6:e=="-"?5:7-f.value.search(/[^#]/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]=="`"){if(e.bgTokenizer.getState(n)!=="start"){while(++n0){r=e.getLine(n);if(r[0]=="`"&r.substring(0,3)=="```")break}return new s(n,r.length,u,0)}var f,c="markup.heading";if(l(n)){var p=h();while(++n=p)break}a=n-(!f||["=","-"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-objectivec.js b/web/js/cheef-editor/ace/mode-objectivec.js new file mode 100644 index 000000000..0890b101d --- /dev/null +++ b/web/js/cheef-editor/ace/mode-objectivec.js @@ -0,0 +1 @@ +ace.define("ace/mode/objectivec",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/objectivec_highlight_rules","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./objectivec_highlight_rules").ObjectiveCHighlightRules,u=e("./folding/cstyle").FoldMode,a=function(){var e=new o;this.foldingRules=new u,this.$tokenizer=new s(e.getRules())};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/objectivec_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/c_cpp_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./c_cpp_highlight_rules"),o=s.c_cppHighlightRules,u=function(){var e="\\\\(?:[abefnrtv'\"?\\\\]|[0-3]\\d{1,2}|[4-7]\\d?|222|x[a-zA-Z0-9]+)",t=[{regex:"\\b_cmd\\b",token:"variable.other.selector.objc"},{regex:"\\b(?:self|super)\\b",token:"variable.language.objc"}],n=new o,r=n.getRules();this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:["storage.type.objc","punctuation.definition.storage.type.objc","entity.name.type.objc","text","entity.other.inherited-class.objc"],regex:"(@)(interface|protocol)(?!.+;)(\\s+[A-Za-z_][A-Za-z0-9_]*)(\\s*:\\s*)([A-Za-z]+)"},{token:["storage.type.objc"],regex:"(@end)"},{token:["storage.type.objc","entity.name.type.objc","entity.other.inherited-class.objc"],regex:"(@implementation)(\\s+[A-Za-z_][A-Za-z0-9_]*)(\\s*?::\\s*(?:[A-Za-z][A-Za-z0-9]*))?"},{token:"string.begin.objc",regex:'@"',next:"constant_NSString"},{token:"storage.type.objc",regex:"\\bid\\s*<",next:"protocol_list"},{token:"keyword.control.macro.objc",regex:"\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\b"},{token:["punctuation.definition.keyword.objc","keyword.control.exception.objc"],regex:"(@)(try|catch|finally|throw)\\b"},{token:["punctuation.definition.keyword.objc","keyword.other.objc"],regex:"(@)(defs|encode)\\b"},{token:["storage.type.id.objc","text"],regex:"(\\bid\\b)(\\s|\\n)?"},{token:"storage.type.objc",regex:"\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\b"},{token:["punctuation.definition.storage.type.objc","storage.type.objc"],regex:"(@)(class|protocol)\\b"},{token:["punctuation.definition.storage.type.objc","punctuation.definition.storage.type.objc","punctuation"],regex:"(@)(selector)(\\s*\\()",next:"selectors"},{token:["punctuation.definition.storage.modifier.objc","storage.modifier.objc"],regex:"(@)(synchronized|public|private|protected|package)\\b"},{token:"constant.language.objc",regex:"\\bYES|NO|Nil|nil\\b"},{token:"support.variable.foundation",regex:"\\bNSApp\\b"},{token:["support.function.cocoa.leopard"],regex:"(?:\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\b)"},{token:["support.function.cocoa"],regex:"(?:\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\b)"},{token:["support.class.cocoa.leopard"],regex:"(?:\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\b)"},{token:["support.class.cocoa"],regex:"(?:\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\b)"},{token:["support.type.cocoa.leopard"],regex:"(?:\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\b)"},{token:["support.class.quartz"],regex:"(?:\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\b)"},{token:["support.type.quartz"],regex:"(?:\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\b)"},{token:["support.type.cocoa"],regex:"(?:\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\b)"},{token:["support.constant.cocoa"],regex:"(?:\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\b)"},{token:["support.constant.notification.cocoa.leopard"],regex:"(?:\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\b)"},{token:["support.constant.notification.cocoa"],regex:"(?:\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\b)"},{token:["support.constant.cocoa.leopard"],regex:"(?:\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\b)"},{token:["support.constant.cocoa"],regex:"(?:\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\b)"},{token:"support.function.C99.c",regex:s.cFunctions},{token:n.getKeywords(),regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.section.scope.begin.objc",regex:"\\[",next:"bracketed_content"},{token:"meta.function.objc",regex:"^(?:-|\\+)\\s*"}],constant_NSString:[{token:"constant.character.escape.objc",regex:e},{token:"invalid.illegal.unknown-escape.objc",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+'},{token:"punctuation.definition.string.end",regex:'"',next:"start"}],protocol_list:[{token:"punctuation.section.scope.end.objc",regex:">",next:"start"},{token:"support.other.protocol.objc",regex:"\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\b"}],selectors:[{token:"support.function.any-method.name-of-parameter.objc",regex:"\\b(?:[a-zA-Z_:][\\w]*)+"},{token:"punctuation",regex:"\\)",next:"start"}],bracketed_content:[{token:"punctuation.section.scope.end.objc",regex:"]",next:"start"},{token:["support.function.any-method.objc"],regex:"(?:predicateWithFormat:| NSPredicate predicateWithFormat:)",next:"start"},{token:["support.function.any-method.objc","punctuation.separator.arguments.objc"],regex:"\\w+(?::|(?=]))",next:"start"}],bracketed_strings:[{token:"punctuation.section.scope.end.objc",regex:"]",next:"start"},{token:"keyword.operator.logical.predicate.cocoa",regex:"\\b(?:AND|OR|NOT|IN)\\b"},{token:["invalid.illegal.unknown-method.objc","punctuation.separator.arguments.objc"],regex:"\\b(w+)(:)"},{regex:"\\b(?:ALL|ANY|SOME|NONE)\\b",token:"constant.language.predicate.cocoa"},{regex:"\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",token:"constant.language.predicate.cocoa"},{regex:"\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",token:"keyword.operator.comparison.predicate.cocoa"},{regex:"\\bC(?:ASEINSENSITIVE|I)\\b",token:"keyword.other.modifier.predicate.cocoa"},{regex:"\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",token:"keyword.other.predicate.cocoa"},{regex:e,token:"constant.character.escape.objc"},{regex:"\\\\.",token:"invalid.illegal.unknown-escape.objc"},{token:"string",regex:'[^"\\\\]'},{token:"punctuation.definition.string.end.objc",regex:'"',next:"predicates"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],methods:[{token:"meta.function.objc",regex:"(?=\\{|#)|;",next:"start"}]};for(var u in r)this.$rules[u]?this.$rules[u].push&&this.$rules[u].push.apply(this.$rules[u],r[u]):this.$rules[u]=r[u];this.$rules.bracketed_content=this.$rules.bracketed_content.concat(this.$rules.start,t),this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,o),t.ObjectiveCHighlightRules=u}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\s*\\bhypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len)))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template",n="const|extern|register|restrict|static|volatile|inline|private:|protected:|public:|friend|explicit|virtual|export|mutable|typename",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_¡-￿][a-zA-Zd\\$_¡-￿]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword",regex:"(?:#include|#import|#pragma|#line|#define|#undef|#if|#ifdef|#else|#elif|#ifndef)\\b",next:"directive"},{token:"keyword",regex:"(?:#endif)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-ocaml.js b/web/js/cheef-editor/ace/mode-ocaml.js new file mode 100644 index 000000000..f5d7190fd --- /dev/null +++ b/web/js/cheef-editor/ace/mode-ocaml.js @@ -0,0 +1 @@ +ace.define("ace/mode/ocaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./ocaml_highlight_rules").OcamlHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u};r.inherits(f,i);var l=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\s*\(\*(.*)\*\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:"(*"+s+"*)")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;return(!i.length||i[i.length-1].type!=="comment")&&e==="start"&&l.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}).call(f.prototype),t.Mode=f}),ace.define("ace/mode/ocaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with",t="true|false",n="abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"support.function":n},"identifier"),i="(?:(?:[1-9]\\d*)|(?:0))",s="(?:0[oO]?[0-7]+)",o="(?:0[xX][\\dA-Fa-f]+)",u="(?:0[bB][01]+)",a="(?:"+i+"|"+s+"|"+o+"|"+u+")",f="(?:[eE][+-]?\\d+)",l="(?:\\.\\d+)",c="(?:\\d+)",h="(?:(?:"+c+"?"+l+")|(?:"+c+"\\.))",p="(?:(?:"+h+"|"+c+")"+f+")",d="(?:"+p+"|"+h+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+d+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:d},{token:"constant.numeric",regex:a+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.OcamlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-perl.js b/web/js/cheef-editor/ace/mode-perl.js new file mode 100644 index 000000000..cd3269091 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-perl.js @@ -0,0 +1 @@ +ace.define("ace/mode/perl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./perl_highlight_rules").PerlHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.foldingRules=new f};r.inherits(l,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)#/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"#")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars",t="ARGV|ENV|INC|SIG",n="getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do",r=this.createKeywordMapper({keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-pgsql.js b/web/js/cheef-editor/ace/mode-pgsql.js new file mode 100644 index 000000000..f49c9705e --- /dev/null +++ b/web/js/cheef-editor/ace/mode-pgsql.js @@ -0,0 +1 @@ +ace.define("ace/mode/pgsql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/pgsql_highlight_rules","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("../mode/text").Mode,s=e("../tokenizer").Tokenizer,o=e("./pgsql_highlight_rules").PgsqlHighlightRules,u=e("../range").Range,a=function(){this.$tokenizer=new s((new o).getRules())};r.inherits(a,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)--/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var a=new u(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);a.start.row=o,a.end.row=o,a.end.column=l[0].length,t.replace(a,l[1])}}else t.indentRows(n,r,"--")},this.getNextLineIndent=function(e,t,n){return e=="start"||e=="keyword.statementEnd"?"":this.$getIndent(t)}}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/pgsql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/perl_highlight_rules","ace/mode/python_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=e("./perl_highlight_rules").PerlHighlightRules,a=e("./python_highlight_rules").PythonHighlightRules,f=function(){var e="abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int8|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|key|label|language|language_handler|large|last|lc_collate|lc_ctype|leading|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|match|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|smgr|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsvector|txid_snapshot|type|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone",t="RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_send|array_smaller|array_to_string|array_upper|arraycontained|arraycontains|arrayoverlap|ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|btfloat84cmp|btfloat8cmp|btgetbitmap|btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint42cmp|btint48cmp|btint4cmp|btint82cmp|btint84cmp|btint8cmp|btmarkpos|btnamecmp|btoidcmp|btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|date_trunc|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|dsynonym_lexize|dtrunc|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|euc_tw_to_utf8|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|has_function_privilege|has_language_privilege|has_schema_privilege|has_sequence_privilege|has_server_privilege|has_table_privilege|has_tablespace_privilege|hash_aclitem|hash_array|hash_numeric|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4recv|int4send|int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isfinite|ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|justify_days|justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|lo_open|lo_tell|lo_truncate|lo_unlink|log|loread|lower|lowrite|lpad|lseg|lseg_center|lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|pg_available_extension_versions|pg_available_extensions|pg_backend_pid|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_is_visible|pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_indexes_size|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|pg_stat_get_buf_written_backend|pg_stat_get_db_blocks_fetched|pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|pg_stat_get_db_conflict_tablespace|pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|pg_stat_get_db_tuples_deleted|pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|pg_stat_get_function_calls|pg_stat_get_function_self_time|pg_stat_get_function_time|pg_stat_get_last_analyze_time|pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_time|pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|pg_tablespace_databases|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|pg_try_advisory_lock|pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|rank|record_eq|record_ge|record_gt|record_in|record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|rpad|rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|smgrout|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|time_smaller|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsvector_cmp|tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|upper|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|varbit_recv|varbit_send|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|varbitlt|varbitne|varbittypmodin|varbittypmodout|varcharin|varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists",n=this.createKeywordMapper({"support.function":t,keyword:e},"identifier",!0),r=[{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"variable.language",regex:'".*?"'},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:n,regex:"[a-zA-Z_][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\*"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}];this.$rules={start:[{token:"comment",regex:"--.*$"},s.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"keyword.statementBegin",regex:"^[a-zA-Z]+",next:"statement"},{token:"support.buildin",regex:"^\\\\[\\S]+.*$"}],statement:[{token:"comment",regex:"--.*$"},{token:"comment",regex:"\\/\\*",next:"commentStatement"},{token:"statementEnd",regex:";",next:"start"},{token:"string",regex:"\\$perl\\$",next:"perl-start"},{token:"string",regex:"\\$python\\$",next:"python-start"},{token:"string",regex:"\\$[\\w_0-9]*\\$$",next:"dollarSql"},{token:"string",regex:"\\$[\\w_0-9]*\\$",next:"dollarStatementString"}].concat(r),dollarSql:[{token:"comment",regex:"--.*$"},{token:"comment",regex:"\\/\\*",next:"commentDollarSql"},{token:"string",regex:"^\\$[\\w_0-9]*\\$",next:"statement"},{token:"string",regex:"\\$[\\w_0-9]*\\$",next:"dollarSqlString"}].concat(r),comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],commentStatement:[{token:"comment",regex:".*?\\*\\/",next:"statement"},{token:"comment",regex:".+"}],commentDollarSql:[{token:"comment",regex:".*?\\*\\/",next:"dollarSql"},{token:"comment",regex:".+"}],dollarStatementString:[{token:"string",regex:".*?\\$[\\w_0-9]*\\$",next:"statement"},{token:"string",regex:".+"}],dollarSqlString:[{token:"string",regex:".*?\\$[\\w_0-9]*\\$",next:"dollarSql"},{token:"string",regex:".+"}]},this.embedRules(s,"doc-",[s.getEndRule("start")]),this.embedRules(u,"perl-",[{token:"string",regex:"\\$perl\\$",next:"statement"}]),this.embedRules(a,"python-",[{token:"string",regex:"\\$python\\$",next:"statement"}])};r.inherits(f,o),t.PgsqlHighlightRules=f}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars",t="ARGV|ENV|INC|SIG",n="getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do",r=this.createKeywordMapper({keyword:e,"constant.language":t,"support.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield",t="True|False|None|NotImplemented|Ellipsis|__debug__",n="abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern",r=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":n,"constant.language":t,keyword:e},"identifier"),i="(?:r|u|ur|R|U|UR|Ur|uR)?",s="(?:(?:[1-9]\\d*)|(?:0))",o="(?:0[oO]?[0-7]+)",u="(?:0[xX][\\dA-Fa-f]+)",a="(?:0[bB][01]+)",f="(?:"+s+"|"+o+"|"+u+"|"+a+")",l="(?:[eE][+-]?\\d+)",c="(?:\\.\\d+)",h="(?:\\d+)",p="(?:(?:"+h+"?"+c+")|(?:"+h+"\\.))",d="(?:(?:"+p+"|"+h+")"+l+")",v="(?:"+d+"|"+p+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:i+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",regex:i+'"{3}.*$',next:"qqstring"},{token:"string",regex:i+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:i+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",regex:i+"'{3}.*$",next:"qstring"},{token:"string",regex:i+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+v+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:v},{token:"constant.numeric",regex:f+"[lL]\\b"},{token:"constant.numeric",regex:f+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.PythonHighlightRules=s}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-php.js b/web/js/cheef-editor/ace/mode-php.js new file mode 100644 index 000000000..8fd0f3a48 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-php.js @@ -0,0 +1 @@ +ace.define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/unicode"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./php_highlight_rules").PhpHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=e("../unicode"),h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(h,i),function(){this.tokenRe=new RegExp("^["+c.packages.L+c.packages.Mn+c.packages.Mc+c.packages.Nd+c.packages.Pc+"_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+c.packages.L+c.packages.Mn+c.packages.Mc+c.packages.Nd+c.packages.Pc+"_]|s])+","g"),this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)#/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"#")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="php-start"){var u=t.match(/^.*[\{\(\[\:]\s*$/);u&&(r+=n)}else if(e=="php-doc-start"){if(o!="php-doc-start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/php_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./doc_comment_highlight_rules").DocCommentHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=e("./html_highlight_rules").HtmlHighlightRules,a=function(){var e=s,t=i.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),n=i.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),r=i.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),o=i.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),u=i.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),a=i.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),f=i.arrayToMap("cfunction|old_function".split("|")),l=i.arrayToMap([]);this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},e.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"'",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(e){return n.hasOwnProperty(e)?"keyword":o.hasOwnProperty(e)?"constant.language":u.hasOwnProperty(e)?"variable.language":l.hasOwnProperty(e)?"invalid.illegal":t.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":e.match(/^(\$[a-zA-Z][a-zA-Z0-9_]*|self|parent)$/)?"variable":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:'\\\\(?:[nrtvef\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})'},{token:"constant.language.escape",regex:/\$[\w\d]+(?:\[[\w\d]+\])?/},{token:"constant.language.escape",regex:/\$\{[^"\}]+\}?/},{token:"string",regex:'"',next:"start"},{token:"string",regex:".+?"}],qstring:[{token:"constant.language.escape",regex:"\\\\['\\\\]"},{token:"string",regex:"'",next:"start"},{token:"string",regex:".+?"}]},this.embedRules(s,"doc-",[s.getEndRule("start")])};r.inherits(a,o);var f=function(){u.call(this);for(var e in this.$rules)this.$rules[e].unshift({token:"support.php_tag",regex:"<\\?(?:php|\\=)?",next:"php-start"});this.embedRules(a,"php-"),this.$rules["php-start"].unshift({token:"support.php_tag",regex:"\\?>",next:"start"})};r.inherits(f,u),t.PhpHighlightRules=f}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-powershell.js b/web/js/cheef-editor/ace/mode-powershell.js new file mode 100644 index 000000000..b0c6cf5c0 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-powershell.js @@ -0,0 +1 @@ +ace.define("ace/mode/powershell",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/powershell_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./powershell_highlight_rules").PowershellHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/powershell_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="function|if|else|elseif|switch|while|default|for|do|until|break|continue|foreach|return|filter|in|trap|throw|param|begin|process|end",t="Get-Alias|Import-Alias|New-Alias|Set-Alias|Get-AuthenticodeSignature|Set-AuthenticodeSignature|Set-Location|Get-ChildItem|Clear-Item|Get-Command|Measure-Command|Trace-Command|Add-Computer|Checkpoint-Computer|Remove-Computer|Restart-Computer|Restore-Computer|Stop-Computer|Reset-ComputerMachinePassword|Test-ComputerSecureChannel|Add-Content|Get-Content|Set-Content|Clear-Content|Get-Command|Invoke-Command|Enable-ComputerRestore|Disable-ComputerRestore|Get-ComputerRestorePoint|Test-Connection|ConvertFrom-CSV|ConvertTo-CSV|ConvertTo-Html|ConvertTo-Xml|ConvertFrom-SecureString|ConvertTo-SecureString|Copy-Item|Export-Counter|Get-Counter|Import-Counter|Get-Credential|Get-Culture|Get-ChildItem|Get-Date|Set-Date|Remove-Item|Compare-Object|Get-Event|Get-WinEvent|New-Event|Remove-Event|Unregister-Event|Wait-Event|Clear-EventLog|Get-Eventlog|Limit-EventLog|New-Eventlog|Remove-EventLog|Show-EventLog|Write-EventLog|Get-EventSubscriber|Register-EngineEvent|Register-ObjectEvent|Register-WmiEvent|Get-ExecutionPolicy|Set-ExecutionPolicy|Export-Alias|Export-Clixml|Export-Console|Export-Csv|ForEach-Object|Format-Custom|Format-List|Format-Table|Format-Wide|Export-FormatData|Get-FormatData|Get-Item|Get-ChildItem|Get-Help|Add-History|Clear-History|Get-History|Invoke-History|Get-Host|Read-Host|Write-Host|Get-HotFix|Import-Clixml|Import-Csv|Invoke-Command|Invoke-Expression|Get-Item|Invoke-Item|New-Item|Remove-Item|Set-Item|Clear-ItemProperty|Copy-ItemProperty|Get-ItemProperty|Move-ItemProperty|New-ItemProperty|Remove-ItemProperty|Rename-ItemProperty|Set-ItemProperty|Get-Job|Receive-Job|Remove-Job|Start-Job|Stop-Job|Wait-Job|Stop-Process|Update-List|Get-Location|Pop-Location|Push-Location|Set-Location|Send-MailMessage|Add-Member|Get-Member|Move-Item|Compare-Object|Group-Object|Measure-Object|New-Object|Select-Object|Sort-Object|Where-Object|Out-Default|Out-File|Out-GridView|Out-Host|Out-Null|Out-Printer|Out-String|Convert-Path|Join-Path|Resolve-Path|Split-Path|Test-Path|Get-Pfxcertificate|Pop-Location|Push-Location|Get-Process|Start-Process|Stop-Process|Wait-Process|Enable-PSBreakpoint|Disable-PSBreakpoint|Get-PSBreakpoint|Set-PSBreakpoint|Remove-PSBreakpoint|Get-PSDrive|New-PSDrive|Remove-PSDrive|Get-PSProvider|Set-PSdebug|Enter-PSSession|Exit-PSSession|Export-PSSession|Get-PSSession|Import-PSSession|New-PSSession|Remove-PSSession|Disable-PSSessionConfiguration|Enable-PSSessionConfiguration|Get-PSSessionConfiguration|Register-PSSessionConfiguration|Set-PSSessionConfiguration|Unregister-PSSessionConfiguration|New-PSSessionOption|Add-PsSnapIn|Get-PsSnapin|Remove-PSSnapin|Get-Random|Read-Host|Remove-Item|Rename-Item|Rename-ItemProperty|Select-Object|Select-XML|Send-MailMessage|Get-Service|New-Service|Restart-Service|Resume-Service|Set-Service|Start-Service|Stop-Service|Suspend-Service|Sort-Object|Start-Sleep|ConvertFrom-StringData|Select-String|Tee-Object|New-Timespan|Trace-Command|Get-Tracesource|Set-Tracesource|Start-Transaction|Complete-Transaction|Get-Transaction|Use-Transaction|Undo-Transaction|Start-Transcript|Stop-Transcript|Add-Type|Update-TypeData|Get-Uiculture|Get-Unique|Update-Formatdata|Update-Typedata|Clear-Variable|Get-Variable|New-Variable|Remove-Variable|Set-Variable|New-WebServiceProxy|Where-Object|Write-Debug|Write-Error|Write-Host|Write-Output|Write-Progress|Write-Verbose|Write-Warning|Set-WmiInstance|Invoke-WmiMethod|Get-WmiObject|Remove-WmiObject|Connect-WSMan|Disconnect-WSMan|Test-WSMan|Invoke-WSManAction|Disable-WSManCredSSP|Enable-WSManCredSSP|Get-WSManCredSSP|New-WSManInstance|Get-WSManInstance|Set-WSManInstance|Remove-WSManInstance|Set-WSManQuickConfig|New-WSManSessionOption",n=this.createKeywordMapper({"support.function":t,keyword:e},"identifier"),r="eq|ne|ge|gt|lt|le|like|notlike|match|notmatch|replace|contains|notcontains|ieq|ine|ige|igt|ile|ilt|ilike|inotlike|imatch|inotmatch|ireplace|icontains|inotcontains|is|isnot|as|and|or|band|bor|not";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment.start",regex:"<#",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"[$](?:[Tt]rue|[Ff]alse)\\b"},{token:"constant.language",regex:"[$][Nn]ull\\b"},{token:"variable.instance",regex:"[$][a-zA-Z][a-zA-Z0-9_]*\\b"},{token:n,regex:"[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"},{token:"keyword.operator",regex:"\\-(?:"+r+")"},{token:"keyword.operator",regex:"&|\\*|\\+|\\-|\\=|\\+=|\\-="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment.end",regex:"#>",next:"start"},{token:"doc.comment.tag",regex:"^\\.\\w+"},{token:"comment",regex:"\\w+"},{token:"comment",regex:"."}]}};r.inherits(s,i),t.PowershellHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-python.js b/web/js/cheef-editor/ace/mode-python.js new file mode 100644 index 000000000..c5ef6982f --- /dev/null +++ b/web/js/cheef-editor/ace/mode-python.js @@ -0,0 +1 @@ +ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./python_highlight_rules").PythonHighlightRules,u=e("./folding/pythonic").FoldMode,a=e("../range").Range,f=function(){this.$tokenizer=new s((new o).getRules()),this.foldingRules=new u("\\:")};r.inherits(f,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)#/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"#")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.$tokenizer.getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new a(n,r.length-i.length,n,r.length))}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield",t="True|False|None|NotImplemented|Ellipsis|__debug__",n="abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern",r=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":n,"constant.language":t,keyword:e},"identifier"),i="(?:r|u|ur|R|U|UR|Ur|uR)?",s="(?:(?:[1-9]\\d*)|(?:0))",o="(?:0[oO]?[0-7]+)",u="(?:0[xX][\\dA-Fa-f]+)",a="(?:0[bB][01]+)",f="(?:"+s+"|"+o+"|"+u+"|"+a+")",l="(?:[eE][+-]?\\d+)",c="(?:\\.\\d+)",h="(?:\\d+)",p="(?:(?:"+h+"?"+c+")|(?:"+h+"\\.))",d="(?:(?:"+p+"|"+h+")"+l+")",v="(?:"+d+"|"+p+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:i+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",regex:i+'"{3}.*$',next:"qqstring"},{token:"string",regex:i+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:i+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",regex:i+"'{3}.*$",next:"qstring"},{token:"string",regex:i+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+v+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:v},{token:"constant.numeric",regex:f+"[lL]\\b"},{token:"constant.numeric",regex:f+"\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+e+")(?:\\s*)(?:#.*)?$")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-r.js b/web/js/cheef-editor/ace/mode-r.js new file mode 100644 index 000000000..f4a27c904 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-r.js @@ -0,0 +1 @@ +ace.define("ace/mode/r",["require","exports","module","ace/range","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/r_highlight_rules","ace/mode/matching_brace_outdent","ace/unicode"],function(e,t,n){var r=e("../range").Range,i=e("../lib/oop"),s=e("./text").Mode,o=e("../tokenizer").Tokenizer,u=e("./text_highlight_rules").TextHighlightRules,a=e("./r_highlight_rules").RHighlightRules,f=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("../unicode"),c=function(){this.$tokenizer=new o((new a).getRules()),this.$outdent=new f};i.inherits(c,s),function(){this.tokenRe=new RegExp("^["+l.packages.L+l.packages.Mn+l.packages.Mc+l.packages.Nd+l.packages.Pc+"._]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+l.packages.L+l.packages.Mn+l.packages.Mc+l.packages.Nd+l.packages.Pc+"._]|s])+","g"),this.$complements={"(":")","[":"]",'"':'"',"'":"'","{":"}"},this.$reOpen=/^[(["'{]$/,this.$reClose=/^[)\]"'}]$/,this.getNextLineIndent=function(e,t,n,r,i){return this.codeModel.getNextLineIndent(i,t,e,n,r)},this.allowAutoInsert=this.smartAllowAutoInsert,this.checkOutdent=function(e,t,n){return/^\s+$/.test(t)?/^\s*[\{\}\)]/.test(n):!1},this.getIndentForOpenBrace=function(e){return this.codeModel.getIndentForOpenBrace(e)},this.autoOutdent=function(e,t,n){if(n==0)return 0;var i=t.getLine(n),s=i.match(/^(\s*[\}\)])/);if(s){var o=s[1].length,u=t.findMatchingBracket({row:n,column:o});if(!u||u.row==n)return 0;var a=this.codeModel.getIndentForOpenBrace(u);t.replace(new r(n,0,n,o-1),a)}s=i.match(/^(\s*\{)/);if(s){var o=s[1].length,a=this.codeModel.getBraceIndent(n-1);t.replace(new r(n,0,n,o-1),a)}},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""},this.transformAction=function(e,t,n,r,i){if(t==="insertion"&&i==="\n"){var s=n.getSelectionRange().start,o=/^((\s*#+')\s*)/.exec(r.doc.getLine(s.row));if(o&&n.getSelectionRange().start.column>=o[2].length)return{text:"\n"+o[1]}}return!1}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./tex_highlight_rules").TexHighlightRules,u=function(){var e=i.arrayToMap("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass".split("|")),t=i.arrayToMap("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_".split("|"));this.$rules={start:[{token:"comment.sectionhead",regex:"#+(?!').*(?:----|====|####)\\s*$"},{token:"comment",regex:"#+'",next:"rd-start"},{token:"comment",regex:"#.*$"},{token:"string",regex:'["]',next:"qqstring"},{token:"string",regex:"[']",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+[Li]?\\b"},{token:"constant.numeric",regex:"\\d+L\\b"},{token:"constant.numeric",regex:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.numeric",regex:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.language.boolean",regex:"(?:TRUE|FALSE|T|F)\\b"},{token:"identifier",regex:"`.*?`"},{token:function(n){return e[n]?"keyword":t[n]?"constant.language":n=="..."||n.match(/^\.\.\d+$/)?"variable.language":"identifier"},regex:"[a-zA-Z.][a-zA-Z0-9._]*\\b"},{token:"keyword.operator",regex:"%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:"},{token:"keyword.operator",regex:"%.*?%"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]};var n=(new o("comment")).getRules();for(var r=0;r\n",position:{row:0,column:15}},this.getLanguageMode=function(e){return this.$session.getState(e.row).match(/^r-/)?"R":"HTML"},this.getNextLineIndent=function(e,t,n,r,i){return this.codeModel.getNextLineIndent(i,t,e,n,r)}}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/html","ace/mode/folding/html"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript").Mode,o=e("./css").Mode,u=e("../tokenizer").Tokenizer,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/html").HtmlBehaviour,l=e("./folding/html").FoldMode,c=function(){var e=new a;this.$tokenizer=new u(e.getRules()),this.$behaviour=new f,this.$embeds=e.getEmbeds(),this.createModeDelegates({"js-":s,"css-":o}),this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){return 0},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_util"),a=e("./text_highlight_rules").TextHighlightRules,f=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),l=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},u.tag(this.$rules,"tag","start",f),u.tag(this.$rules,"style","css-start",f),u.tag(this.$rules,"script","js-start",f),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(s,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};r.inherits(l,a),t.HtmlHighlightRules=l}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/html",["require","exports","module","ace/lib/oop","ace/mode/behaviour/xml","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function a(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour/xml").XmlBehaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],f=function(){this.inherit(i),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),f=new o(r,s.row,s.column),l=f.getCurrentToken(),c=!1;if(!l||!a(l,"meta.tag")&&(!a(l,"text")||!l.value.match("/"))){do l=f.stepBackward();while(l&&(a(l,"string")||a(l,"keyword.operator")||a(l,"entity.attribute-name")||a(l,"text")))}else c=!0;if(!l||!a(l,"meta.tag-name")||f.stepBackward().value.match("/"))return;var h=l.value;if(c)var h=h.substring(0,s.column-l.start);if(u.indexOf(h)!==-1)return;return{text:">",selection:[1,1]}}})};r.inherits(f,i),t.HtmlBehaviour=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}),ace.define("ace/mode/rhtml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/r_highlight_rules","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./r_highlight_rules").RHighlightRules,s=e("./html_highlight_rules").HtmlHighlightRules,o=e("./text_highlight_rules").TextHighlightRules,u=function(){this.$rules=(new s).getRules(),this.$rules.start.unshift({token:"support.function.codebegin",regex:"^",next:"start"})};r.inherits(u,o),t.RHtmlHighlightRules=u}),ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./tex_highlight_rules").TexHighlightRules,u=function(){var e=i.arrayToMap("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass".split("|")),t=i.arrayToMap("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_".split("|"));this.$rules={start:[{token:"comment.sectionhead",regex:"#+(?!').*(?:----|====|####)\\s*$"},{token:"comment",regex:"#+'",next:"rd-start"},{token:"comment",regex:"#.*$"},{token:"string",regex:'["]',next:"qqstring"},{token:"string",regex:"[']",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+[Li]?\\b"},{token:"constant.numeric",regex:"\\d+L\\b"},{token:"constant.numeric",regex:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.numeric",regex:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.language.boolean",regex:"(?:TRUE|FALSE|T|F)\\b"},{token:"identifier",regex:"`.*?`"},{token:function(n){return e[n]?"keyword":t[n]?"constant.language":n=="..."||n.match(/^\.\.\d+$/)?"variable.language":"identifier"},regex:"[a-zA-Z.][a-zA-Z0-9._]*\\b"},{token:"keyword.operator",regex:"%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:"},{token:"keyword.operator",regex:"%.*?%"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]};var n=(new o("comment")).getRules();for(var r=0;r"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end\\s.*$",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u"},{token:"keyword",regex:"(?:use|include)"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]},this.embedRules(s,"doc-",[s.getEndRule("start")])};r.inherits(u,o),t.scadHighlightRules=u}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-scala.js b/web/js/cheef-editor/ace/mode-scala.js new file mode 100644 index 000000000..18983e8e7 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-scala.js @@ -0,0 +1 @@ +ace.define("ace/mode/scala",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("../tokenizer").Tokenizer,o=e("./scala_highlight_rules").ScalaHighlightRules,u=function(){i.call(this),this.$tokenizer=new s((new o).getRules())};r.inherits(u,i),function(){this.createWorker=function(e){return null}}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/scala_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with",t="true|false",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"support.function":n,"constant.language":t},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'"""',next:"tstring"},{token:"string",regex:'"(?=.)',next:"string"},{token:"symbol.constant",regex:"'[\\w\\d_]+"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],string:[{token:"escape",regex:'\\\\"'},{token:"string",regex:'"',next:"start"},{token:"string.invalid",regex:'[^"\\\\]*$',next:"start"},{token:"string",regex:'[^"\\\\]+'}],tstring:[{token:"string",regex:'"{3,5}',next:"start"},{token:"string",regex:".+?"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.ScalaHighlightRules=o}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-scss.js b/web/js/cheef-editor/ace/mode-scss.js new file mode 100644 index 000000000..d3e6260d2 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-scss.js @@ -0,0 +1 @@ +ace.define("ace/mode/scss",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./scss_highlight_rules").ScssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/cstyle").FoldMode,f=function(){this.$tokenizer=new s((new o).getRules(),"i"),this.$outdent=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),t="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),n="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),r=[];for(var i=0,s=e.length;i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-sh.js b/web/js/cheef-editor/ace/mode-sh.js new file mode 100644 index 000000000..1debff235 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-sh.js @@ -0,0 +1 @@ +ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/sh_highlight_rules","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./sh_highlight_rules").ShHighlightRules,u=e("../range").Range,a=function(){this.$tokenizer=new s((new o).getRules())};r.inherits(a,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)#/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var a=new u(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);a.start.row=o,a.end.row=o,a.end.column=l[0].length,t.replace(a,l[1])}}else t.indentRows(n,r,"#")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[\:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.$tokenizer.getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))}}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z][a-zA-Z0-9_]*",c="(?:(?:\\$"+l+")|(?:"+l+"=))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"variable.language",regex:h},{token:"variable",regex:c},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}]}};r.inherits(u,i),t.ShHighlightRules=u}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-sql.js b/web/js/cheef-editor/ace/mode-sql.js new file mode 100644 index 000000000..a3f6ec87d --- /dev/null +++ b/web/js/cheef-editor/ace/mode-sql.js @@ -0,0 +1 @@ +ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/sql_highlight_rules","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./sql_highlight_rules").SqlHighlightRules,u=e("../range").Range,a=function(){this.$tokenizer=new s((new o).getRules())};r.inherits(a,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=[],o=/^(\s*)--/;for(var a=n;a<=r;a++)if(!o.test(t.getLine(a))){i=!1;break}if(i){var f=new u(0,0,0,0);for(var a=n;a<=r;a++){var l=t.getLine(a),c=l.match(o);f.start.row=a,f.end.row=a,f.end.column=c[0].length,t.replace(f,c[1])}}else t.indentRows(n,r,"--")}}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.SqlHighlightRules=s}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-stylus.js b/web/js/cheef-editor/ace/mode-stylus.js new file mode 100644 index 000000000..2356da087 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-stylus.js @@ -0,0 +1 @@ +ace.define("ace/mode/stylus",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/stylus_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./stylus_highlight_rules").StylusHighlightRules,u=e("./folding/coffee").FoldMode,a=function(){var e=new o;this.foldingRules=new u,this.$tokenizer=new s(e.getRules())};r.inherits(a,i),function(){}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/stylus_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./css_highlight_rules"),o=function(){var e=this.createKeywordMapper({"support.type":s.supportType,"support.function":s.supportFunction,"support.constant":s.supportConstant,"support.constant.color":s.supportConstantColor,"support.constant.fonts":s.supportConstantFonts},"text",!0);this.$rules={start:[{token:"comment",regex:/\/\/.*$/},{token:"comment",regex:/\/\*/,next:"comment"},{token:["entity.name.function.stylus","text"],regex:"^([-a-zA-Z_][-\\w]*)?(\\()"},{token:["entity.other.attribute-name.class.stylus"],regex:"\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*"},{token:["entity.language.stylus"],regex:"^ *&"},{token:["variable.language.stylus"],regex:"(arguments)"},{token:["keyword.stylus"],regex:"@[-\\w]+"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:s.pseudoElements},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:s.pseudoClasses},{token:["entity.name.tag.stylus"],regex:"(?:\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\b)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation.definition.entity.stylus","entity.other.attribute-name.id.stylus"],regex:"(#)([a-zA-Z][a-zA-Z0-9_-]*)"},{token:"meta.vendor-prefix.stylus",regex:"-webkit-|-moz\\-|-ms-|-o-"},{token:"keyword.control.stylus",regex:"(?:!important|for|in|return|true|false|null|if|else|unless|return)\\b"},{token:"keyword.operator.stylus",regex:"!|~|\\+|-|(?:\\*)?\\*|\\/|%|(?:\\.)\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!="},{token:"keyword.operator.stylus",regex:"(?:in|is(?:nt)?|not)\\b"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:s.numRe},{token:"keyword",regex:"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\b"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"}],qstring:[{token:"string",regex:"[^'\\\\]+"},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"}]}};r.inherits(o,i),t.StylusHighlightRules=o}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0),t=[{token:"comment",regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],n=i.copyArray(t);n.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var r=i.copyArray(t);r.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var s=[{token:"comment",regex:".+"}],d=i.copyArray(s);d.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var v=i.copyArray(s);v.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var m=i.copyArray(s);m.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:d,ruleset:n,ruleset_comment:m,media_ruleset:r,media_comment:v}};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},i.tag(this.$rules,"tag","start")};r.inherits(o,s),t.XmlHighlightRules=o}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e){o.call(this),this.voidElements=e||{}};r.inherits(a,o),function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r.closing?t=="markbeginend"?"end":"":!r.tagName||this.voidElements[r.tagName.toLowerCase()]?"":r.selfClosing?"":r.value.indexOf("/"+r.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r="";for(var s=0;s?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/svg_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/xml_util"],function(e,t,n){var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./xml_highlight_rules").XmlHighlightRules,o=e("./xml_util"),u=function(){s.call(this),this.$rules.start.splice(3,0,{token:"meta.tag",regex:"<(?=script)",next:"script"}),o.tag(this.$rules,"script","js-start"),this.embedRules(i,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}])};r.inherits(u,s),t.SvgHighlightRules=u}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-tcl.js b/web/js/cheef-editor/ace/mode-tcl.js new file mode 100644 index 000000000..dd658f632 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-tcl.js @@ -0,0 +1 @@ +ace.define("ace/mode/tcl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/folding/cstyle","ace/mode/tcl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./folding/cstyle").FoldMode,u=e("./tcl_highlight_rules").TclHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,f=e("../range").Range,l=function(){this.$tokenizer=new s((new u).getRules()),this.$outdent=new a,this.foldingRules=new o};r.inherits(l,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)#/;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new f(0,0,0,0);for(var o=n;o<=r;o++){var a=t.getLine(o),l=a.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"#")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/tcl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*\\\\$",next:"commentfollow"},{token:"comment",regex:"#.*$"},{token:"support.function",regex:"[\\\\]$",next:"splitlineStart"},{token:"text",regex:'[\\\\](?:["]|[{]|[}]|[[]|[]]|[$]|[])'},{token:"text",regex:"^|[^{][;][^}]|[/\r/]",next:"commandItem"},{token:"string",regex:'[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'[ ]*["]',next:"qqstring"},{token:"variable.instancce",regex:"[$]",next:"variable"},{token:"support.function",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::"},{token:"identifier",regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"paren.lparen",regex:"[[{]",next:"commandItem"},{token:"paren.lparen",regex:"[(]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],commandItem:[{token:"comment",regex:"#.*\\\\$",next:"commentfollow"},{token:"comment",regex:"#.*$",next:"start"},{token:"string",regex:'[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"variable.instancce",regex:"[$]",next:"variable"},{token:"support.function",regex:"(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])",next:"commandItem"},{token:"support.function",regex:"[a-zA-Z0-9_/]+(?:[:][:])",next:"commandItem"},{token:"support.function",regex:"(?:[:][:])",next:"commandItem"},{token:"support.function",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::"},{token:"keyword",regex:"[a-zA-Z0-9_/]+",next:"start"}],commentfollow:[{token:"comment",regex:".*\\\\$",next:"commentfollow"},{token:"comment",regex:".+",next:"start"}],splitlineStart:[{token:"text",regex:"^.",next:"start"}],variable:[{token:"variable.instance",regex:"(?:[:][:])?[a-zA-Z_\\d]+(?:(?:[:][:])?[a-zA-Z_\\d]+)?(?:[(][a-zA-Z_\\d]+[)])?",next:"start"},{token:"variable.instance",regex:"[a-zA-Z_\\d]+(?:[(][a-zA-Z_\\d]+[)])?",next:"start"},{token:"variable.instance",regex:"{?[a-zA-Z_\\d]+}?",next:"start"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?["]',next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.TclHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-tex.js b/web/js/cheef-editor/ace/mode-tex.js new file mode 100644 index 000000000..9e61429c6 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-tex.js @@ -0,0 +1 @@ +ace.define("ace/mode/tex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./text_highlight_rules").TextHighlightRules,u=e("./tex_highlight_rules").TexHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,f=function(e){e?this.$tokenizer=new s((new o).getRules()):this.$tokenizer=new s((new u).getRules()),this.$outdent=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.allowAutoInsert=function(){return!1}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(e){e||(e="text"),this.$rules={start:[{token:"comment",regex:"%.*$"},{token:e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",next:"nospell"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:e,regex:"\\s+"}],nospell:[{token:"comment",regex:"%.*$",next:"start"},{token:"nospell."+e,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"},{token:"keyword",regex:"\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",next:"start"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])]"},{token:"paren.keyword.operator",regex:"}",next:"start"},{token:"nospell."+e,regex:"\\s+"},{token:"nospell."+e,regex:"\\w+"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-text.js b/web/js/cheef-editor/ace/mode-text.js new file mode 100644 index 000000000..e69de29bb diff --git a/web/js/cheef-editor/ace/mode-textile.js b/web/js/cheef-editor/ace/mode-textile.js new file mode 100644 index 000000000..0cd122833 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-textile.js @@ -0,0 +1 @@ +ace.define("ace/mode/textile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./textile_highlight_rules").TextileHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){return e=="intag"?n:""},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/textile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:function(e){return e.charAt(0)=="h"?"markup.heading."+e.charAt(1):"markup.heading"},regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]}};r.inherits(s,i),t.TextileHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-typescript.js b/web/js/cheef-editor/ace/mode-typescript.js new file mode 100644 index 000000000..18b5ff812 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-typescript.js @@ -0,0 +1 @@ +ace.define("ace/mode/typescript",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/typescript_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/mode/matching_brace_outdent"],function(e,t,n){var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("../tokenizer").Tokenizer,o=e("./typescript_highlight_rules").TypeScriptHighlightRules,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("./matching_brace_outdent").MatchingBraceOutdent,l=function(){var e=new o;this.$tokenizer=new s(e.getRules()),this.$outdent=new f,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.createWorker=function(e){return null}}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[(|)$^+*?]/},{token:"string.regexp",regex:/{|[^{\[\/\\(|)$^+*?]+/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"string.regexp.charachterclass",regex:/[^\]\-\\]+/},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",next:"regex_allowed"},{token:"comment",regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{token:"string",regex:".|\\w+|\\s+"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{token:"string",regex:".|\\w+|\\s+"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",regex:"\\s+"},{token:"comment.doc",regex:"TODO"},{token:"comment.doc",regex:"[^@\\*]+"},{token:"comment.doc",regex:"."}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),ace.define("ace/mode/typescript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=function(){var e=[{token:["keyword.operator.ts","text","variable.parameter.function.ts","text"],regex:"\\b(module)(\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*\\{)"},{token:["storage.type.variable.ts","text","keyword.other.ts","text"],regex:"(super)(\\s*\\()([a-zA-Z0-9,_?.$\\s]+\\s*)(\\))"},{token:["entity.name.function.ts","paren.lparen","paren.rparen"],regex:"([a-zA-Z_?.$][\\w?.$]*)(\\()(\\))"},{token:["variable.parameter.function.ts","text","variable.parameter.function.ts"],regex:"([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*:\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)"},{token:["keyword.operator.ts"],regex:"(?:\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\b)"},{token:["storage.type.variable.ts"],regex:"(?:\\b(this\\.|string\\b|bool\\b|number)\\b)"},{token:["keyword.operator.ts","storage.type.variable.ts","keyword.operator.ts","storage.type.variable.ts"],regex:"(class)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)(extends)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)?"},{token:"keyword",regex:"(?:super|export|class|extends|import)\\b"}],t=(new i).getRules();t.start=e.concat(t.start),this.$rules=t};r.inherits(s,i),t.TypeScriptHighlightRules=s}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-xml.js b/web/js/cheef-editor/ace/mode-xml.js new file mode 100644 index 000000000..8f90beb34 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-xml.js @@ -0,0 +1 @@ +ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=function(){this.$tokenizer=new s((new o).getRules()),this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./xml_util"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml-pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"xml-pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}]},i.tag(this.$rules,"tag","start")};r.inherits(o,s),t.XmlHighlightRules=o}),ace.define("ace/mode/xml_util",["require","exports","module"],function(e,t,n){function r(e){return[{token:"string",regex:'"',next:e+"_qqstring"},{token:"string",regex:"'",next:e+"_qstring"}]}function i(e,t){return[{token:"string",regex:e,next:t},{token:"constant.language.escape",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"string",regex:"\\w+|.|\\s+"}]}t.tag=function(e,t,n,s){e[t]=[{token:"text",regex:"\\s+"},{token:s?function(e){return s[e]?"meta.tag.tag-name."+s[e]:"meta.tag.tag-name"}:"meta.tag.tag-name",regex:"[-_a-zA-Z0-9:]+",next:t+"_embed_attribute_list"},{token:"empty",regex:"",next:t+"_embed_attribute_list"}],e[t+"_qstring"]=i("'",t+"_embed_attribute_list"),e[t+"_qqstring"]=i('"',t+"_embed_attribute_list"),e[t+"_embed_attribute_list"]=[{token:"meta.tag.r",regex:"/?>",next:n},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(r(t))}}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){function u(e,t){var n=!0,r=e.type.split("."),i=t.split(".");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,a=function(){this.inherit(s,["string_dquotes"]),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var s=n.getCursorPosition(),a=new o(r,s.row,s.column),f=a.getCurrentToken(),l=!1;if(!f||!u(f,"meta.tag")&&(!u(f,"text")||!f.value.match("/"))){do f=a.stepBackward();while(f&&(u(f,"string")||u(f,"keyword.operator")||u(f,"entity.attribute-name")||u(f,"text")))}else l=!0;if(!f||!u(f,"meta.tag-name")||a.stepBackward().value.match("/"))return;var c=f.value;if(l)var c=c.substring(0,s.column-f.start);return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+2);if(u=="-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e){o.call(this),this.voidElements=e||{}};r.inherits(a,o),function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r.closing?t=="markbeginend"?"end":"":!r.tagName||this.voidElements[r.tagName.toLowerCase()]?"":r.selfClosing?"":r.value.indexOf("/"+r.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r="";for(var s=0;s?)/,this._parseTag=function(e){var t=this.tagRe.exec(e),n=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:e,match:t?t[2]:"",closing:t?!!t[3]:!1,selfClosing:t?!!t[5]||t[2]=="/>":!1,tagName:t?t[4]:"",column:t[1]?n+t[1].length:n}},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){if(!r)var r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()};n+=t.value;if(n.indexOf(">")!==-1){var i=this._parseTag(n);return i.start=r,i.end={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length},e.stepForward(),i}}while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n="",r;do if(t.type.indexOf("meta.tag")===0){r||(r={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()+t.value.length}),n=t.value+n;if(n.indexOf("<")!==-1){var i=this._parseTag(n);return i.end=r,i.start={row:e.getCurrentTokenRow(),column:e.getCurrentTokenColumn()},e.stepBackward(),i}}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.voidElements[t.tagName])return;if(this.voidElements[n.tagName]){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r.match)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.column),l={row:n,column:r.column+r.tagName.length+2};while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.column+r.match.length),c={row:n,column:r.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,s.fromPoints(a.start,c)}else o.push(a)}}}}.call(a.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-xquery.js b/web/js/cheef-editor/ace/mode-xquery.js new file mode 100644 index 000000000..aabd69128 --- /dev/null +++ b/web/js/cheef-editor/ace/mode-xquery.js @@ -0,0 +1 @@ +ace.define("ace/mode/xquery",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xquery_highlight_rules","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../worker/worker_client").WorkerClient,i=e("../lib/oop"),s=e("./text").Mode,o=e("../tokenizer").Tokenizer,u=e("./xquery_highlight_rules").XQueryHighlightRules,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(e){this.$tokenizer=new o((new u).getRules()),this.$behaviour=new f(e),this.foldingRules=new l};i.inherits(c,s),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\s+$/.test(t)?/^\s*[\}\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\s*[\}\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\s*\(:(.*):\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:"(:"+s+":)")},this.createWorker=function(e){this.$deltas=[];var t=new r(["ace"],"ace/mode/xquery_worker","XQueryWorker"),n=this;return e.getDocument().on("change",function(e){n.$deltas.push(e.data)}),t.attachToDocument(e.getDocument()),t.on("start",function(e){n.$deltas=[]}),t.on("error",function(t){e.setAnnotations([t.data])}),t.on("ok",function(t){e.clearAnnotations()}),t.on("highlight",function(t){var r=0,i=e.getLength()-1,s=t.data.lines,o=t.data.states;for(var u=0;u"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"comment",regex:"\\(:",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"constant",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"variable",regex:"\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"text",regex:"\\s+"},{token:"support.function",regex:"\\w[\\w+_\\-:]+(?=\\()"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\*|=|<|>|\\-|\\+"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"}],tag:[{token:"text",regex:">",next:"start"},{token:"meta.tag",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],cdata:[{token:"comment",regex:"\\]\\]>",next:"start"},{token:"comment",regex:"\\s+"},{token:"comment",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".*:\\)",next:"start"},{token:"comment",regex:".+"}]}};r.inherits(s,i),t.XQueryHighlightRules=s}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=='"')return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/mode-yaml.js b/web/js/cheef-editor/ace/mode-yaml.js new file mode 100644 index 000000000..6a805218b --- /dev/null +++ b/web/js/cheef-editor/ace/mode-yaml.js @@ -0,0 +1 @@ +ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./yaml_highlight_rules").YamlHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("./folding/coffee").FoldMode,f=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(\:(?:\s+|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*\:(?:\s+|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[\\|>]\\w*",next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/[+\-]?[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?\b/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{token:"text",regex:"\\w+"}],qqstring:[{token:"string",regex:"(?=(?:(?:\\\\.)|(?:[^:]))*?:)",next:"start"},{token:"string",regex:".+"}]}};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-idle_fingers.js b/web/js/cheef-editor/ace/theme-idle_fingers.js new file mode 100644 index 000000000..b15dd6039 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-idle_fingers.js @@ -0,0 +1 @@ +ace.define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-idle-fingers",t.cssText=".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: #fff}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers .ace_scroller {background-color: #323232}.ace-idle-fingers .ace_text-layer {color: #FFFFFF}.ace-idle-fingers .ace_cursor {border-left: 2px solid #91FF00}.ace-idle-fingers .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;border-radius: 2px}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_markup.ace_underline {text-decoration: underline}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjL6zzBz5sz/ABEUBGCqhK6UAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-kr.js b/web/js/cheef-editor/ace/theme-kr.js new file mode 100644 index 000000000..89a7f8c5f --- /dev/null +++ b/web/js/cheef-editor/ace/theme-kr.js @@ -0,0 +1 @@ +ace.define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-kr-theme",t.cssText=".ace-kr-theme .ace_gutter {background: #1c1917;color: #FCFFE0}.ace-kr-theme .ace_print-margin {width: 1px;background: #1c1917}.ace-kr-theme .ace_scroller {background-color: #0B0A09}.ace-kr-theme .ace_text-layer {color: #FCFFE0}.ace-kr-theme .ace_cursor {border-left: 2px solid #FF9900}.ace-kr-theme .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #FF9900}.ace-kr-theme .ace_marker-layer .ace_selection {background: rgba(170, 0, 255, 0.45)}.ace-kr-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0B0A09;border-radius: 2px}.ace-kr-theme .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-kr-theme .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_marker-layer .ace_active-line {background: #38403D}.ace-kr-theme .ace_gutter-active-line {background-color : #38403D}.ace-kr-theme .ace_marker-layer .ace_selected-word {border: 1px solid rgba(170, 0, 255, 0.45)}.ace-kr-theme .ace_invisible {color: rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_keyword,.ace-kr-theme .ace_meta {color: #949C8B}.ace-kr-theme .ace_constant,.ace-kr-theme .ace_constant.ace_character,.ace-kr-theme .ace_constant.ace_character.ace_escape,.ace-kr-theme .ace_constant.ace_other {color: rgba(210, 117, 24, 0.76)}.ace-kr-theme .ace_invalid {color: #F8F8F8;background-color: #A41300}.ace-kr-theme .ace_support {color: #9FC28A}.ace-kr-theme .ace_support.ace_constant {color: #C27E66}.ace-kr-theme .ace_fold {background-color: #949C8B;border-color: #FCFFE0}.ace-kr-theme .ace_support.ace_function {color: #85873A}.ace-kr-theme .ace_storage {color: #FFEE80}.ace-kr-theme .ace_string {color: rgba(164, 161, 181, 0.8)}.ace-kr-theme .ace_string.ace_regexp {color: rgba(125, 255, 192, 0.65)}.ace-kr-theme .ace_comment {font-style: italic;color: #706D5B}.ace-kr-theme .ace_variable {color: #D1A796}.ace-kr-theme .ace_variable.ace_language {color: #FF80E1}.ace-kr-theme .ace_meta.ace_tag {color: #BABD9C}.ace-kr-theme .ace_markup.ace_underline {text-decoration: underline}.ace-kr-theme .ace_markup.ace_list {background-color: #0F0040}.ace-kr-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPg5uL8zzBz5sz/AA1WA+hUYIqjAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-merbivore.js b/web/js/cheef-editor/ace/theme-merbivore.js new file mode 100644 index 000000000..e43cbc737 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-merbivore.js @@ -0,0 +1 @@ +ace.define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-merbivore",t.cssText=".ace-merbivore .ace_gutter {background: #202020;color: #E6E1DC}.ace-merbivore .ace_print-margin {width: 1px;background: #555651}.ace-merbivore .ace_scroller {background-color: #161616}.ace-merbivore .ace_text-layer {color: #E6E1DC}.ace-merbivore .ace_cursor {border-left: 2px solid #FFFFFF}.ace-merbivore .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #FFFFFF}.ace-merbivore .ace_marker-layer .ace_selection {background: #454545}.ace-merbivore.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #161616;border-radius: 2px}.ace-merbivore .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore .ace_gutter-active-line {background-color: #333435}.ace-merbivore .ace_marker-layer .ace_selected-word {border: 1px solid #454545}.ace-merbivore .ace_invisible {color: #404040}.ace-merbivore .ace_entity.ace_name.ace_tag,.ace-merbivore .ace_keyword,.ace-merbivore .ace_meta,.ace-merbivore .ace_meta.ace_tag,.ace-merbivore .ace_storage,.ace-merbivore .ace_support.ace_function {color: #FC6F09}.ace-merbivore .ace_constant,.ace-merbivore .ace_constant.ace_character,.ace-merbivore .ace_constant.ace_character.ace_escape,.ace-merbivore .ace_constant.ace_other,.ace-merbivore .ace_support.ace_type {color: #1EDAFB}.ace-merbivore .ace_constant.ace_character.ace_escape {color: #519F50}.ace-merbivore .ace_constant.ace_language {color: #FDC251}.ace-merbivore .ace_constant.ace_library,.ace-merbivore .ace_string,.ace-merbivore .ace_support.ace_constant {color: #8DFF0A}.ace-merbivore .ace_constant.ace_numeric {color: #58C554}.ace-merbivore .ace_invalid {color: #FFFFFF;background-color: #990000}.ace-merbivore .ace_fold {background-color: #FC6F09;border-color: #E6E1DC}.ace-merbivore .ace_comment {font-style: italic;color: #AD2EA4}.ace-merbivore .ace_entity.ace_other.ace_attribute-name {color: #FFFF89}.ace-merbivore .ace_markup.ace_underline {text-decoration: underline}.ace-merbivore .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQExP7zzBz5sz/AA50BAyDznYhAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-merbivore_soft.js b/web/js/cheef-editor/ace/theme-merbivore_soft.js new file mode 100644 index 000000000..a55030a26 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-merbivore_soft.js @@ -0,0 +1 @@ +ace.define("ace/theme/merbivore_soft",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-merbivore-soft",t.cssText=".ace-merbivore-soft .ace_gutter {background: #262424;color: #E6E1DC}.ace-merbivore-soft .ace_print-margin {width: 1px;background: #262424}.ace-merbivore-soft .ace_scroller {background-color: #1C1C1C}.ace-merbivore-soft .ace_text-layer {color: #E6E1DC}.ace-merbivore-soft .ace_cursor {border-left: 2px solid #FFFFFF}.ace-merbivore-soft .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #FFFFFF}.ace-merbivore-soft .ace_marker-layer .ace_selection {background: #494949}.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1C1C1C;border-radius: 2px}.ace-merbivore-soft .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore-soft .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore-soft .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore-soft .ace_gutter-active-line {background-color: #333435}.ace-merbivore-soft .ace_marker-layer .ace_selected-word {border: 1px solid #494949}.ace-merbivore-soft .ace_invisible {color: #404040}.ace-merbivore-soft .ace_entity.ace_name.ace_tag,.ace-merbivore-soft .ace_keyword,.ace-merbivore-soft .ace_meta,.ace-merbivore-soft .ace_meta.ace_tag,.ace-merbivore-soft .ace_storage {color: #FC803A}.ace-merbivore-soft .ace_constant,.ace-merbivore-soft .ace_constant.ace_character,.ace-merbivore-soft .ace_constant.ace_character.ace_escape,.ace-merbivore-soft .ace_constant.ace_other,.ace-merbivore-soft .ace_support.ace_type {color: #68C1D8}.ace-merbivore-soft .ace_constant.ace_character.ace_escape {color: #B3E5B4}.ace-merbivore-soft .ace_constant.ace_language {color: #E1C582}.ace-merbivore-soft .ace_constant.ace_library,.ace-merbivore-soft .ace_string,.ace-merbivore-soft .ace_support.ace_constant {color: #8EC65F}.ace-merbivore-soft .ace_constant.ace_numeric {color: #7FC578}.ace-merbivore-soft .ace_invalid,.ace-merbivore-soft .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #FE3838}.ace-merbivore-soft .ace_fold {background-color: #FC803A;border-color: #E6E1DC}.ace-merbivore-soft .ace_comment,.ace-merbivore-soft .ace_meta {font-style: italic;color: #AC4BB8}.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {color: #EAF1A3}.ace-merbivore-soft .ace_markup.ace_underline {text-decoration: underline}.ace-merbivore-soft .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkZH5zzBz5sz/AA8EBB6crd1rAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-mono_industrial.js b/web/js/cheef-editor/ace/theme-mono_industrial.js new file mode 100644 index 000000000..8629638f5 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-mono_industrial.js @@ -0,0 +1 @@ +ace.define("ace/theme/mono_industrial",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-mono-industrial",t.cssText=".ace-mono-industrial .ace_gutter {background: #1d2521;color: #C5C9C9}.ace-mono-industrial .ace_print-margin {width: 1px;background: #555651}.ace-mono-industrial .ace_scroller {background-color: #222C28}.ace-mono-industrial .ace_text-layer {color: #FFFFFF}.ace-mono-industrial .ace_cursor {border-left: 2px solid #FFFFFF}.ace-mono-industrial .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #FFFFFF}.ace-mono-industrial .ace_marker-layer .ace_selection {background: rgba(145, 153, 148, 0.40)}.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #222C28;border-radius: 2px}.ace-mono-industrial .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-mono-industrial .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_marker-layer .ace_active-line {background: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_gutter-active-line {background-color: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_marker-layer .ace_selected-word {border: 1px solid rgba(145, 153, 148, 0.40)}.ace-mono-industrial .ace_invisible {color: rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_string {background-color: #151C19;color: #FFFFFF}.ace-mono-industrial .ace_keyword,.ace-mono-industrial .ace_meta {color: #A39E64}.ace-mono-industrial .ace_constant,.ace-mono-industrial .ace_constant.ace_character,.ace-mono-industrial .ace_constant.ace_character.ace_escape,.ace-mono-industrial .ace_constant.ace_numeric,.ace-mono-industrial .ace_constant.ace_other {color: #E98800}.ace-mono-industrial .ace_entity.ace_name.ace_function,.ace-mono-industrial .ace_keyword.ace_operator,.ace-mono-industrial .ace_variable {color: #A8B3AB}.ace-mono-industrial .ace_invalid {color: #FFFFFF;background-color: rgba(153, 0, 0, 0.68)}.ace-mono-industrial .ace_support.ace_constant {color: #C87500}.ace-mono-industrial .ace_fold {background-color: #A8B3AB;border-color: #FFFFFF}.ace-mono-industrial .ace_support.ace_function {color: #588E60}.ace-mono-industrial .ace_entity.ace_name,.ace-mono-industrial .ace_support.ace_class,.ace-mono-industrial .ace_support.ace_type {color: #5778B6}.ace-mono-industrial .ace_storage {color: #C23B00}.ace-mono-industrial .ace_variable.ace_language,.ace-mono-industrial .ace_variable.ace_parameter {color: #648BD2}.ace-mono-industrial .ace_comment {color: #666C68;background-color: #151C19}.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {color: #909993}.ace-mono-industrial .ace_markup.ace_underline {text-decoration: underline}.ace-mono-industrial .ace_entity.ace_name.ace_tag {color: #A65EFF}.ace-mono-industrial .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ0tH4zzBz5sz/ABAOBECKH+evAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-monokai.js b/web/js/cheef-editor/ace/theme-monokai.js new file mode 100644 index 000000000..4f174bf47 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-monokai.js @@ -0,0 +1 @@ +ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-monokai",t.cssText=".ace-monokai .ace_gutter {background: #2f3129;color: #f1f1f1}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai .ace_scroller {background-color: #272822}.ace-monokai .ace_text-layer {color: #F8F8F2}.ace-monokai .ace_cursor {border-left: 2px solid #F8F8F0}.ace-monokai .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;border-radius: 2px}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #49483E}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_markup.ace_underline {text-decoration: underline}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ11D6z7Bq1ar/ABCKBG6g04U2AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-pastel_on_dark.js b/web/js/cheef-editor/ace/theme-pastel_on_dark.js new file mode 100644 index 000000000..7350acb3c --- /dev/null +++ b/web/js/cheef-editor/ace/theme-pastel_on_dark.js @@ -0,0 +1 @@ +ace.define("ace/theme/pastel_on_dark",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-pastel-on-dark",t.cssText=".ace-pastel-on-dark .ace_gutter {background: #353030;color: #8F938F}.ace-pastel-on-dark .ace_print-margin {width: 1px;background: #353030}.ace-pastel-on-dark .ace_scroller {background-color: #2C2828}.ace-pastel-on-dark .ace_text-layer {color: #8F938F}.ace-pastel-on-dark .ace_cursor {border-left: 2px solid #A7A7A7}.ace-pastel-on-dark .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #A7A7A7}.ace-pastel-on-dark .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2C2828;border-radius: 2px}.ace-pastel-on-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-pastel-on-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_keyword,.ace-pastel-on-dark .ace_meta {color: #757aD8}.ace-pastel-on-dark .ace_constant,.ace-pastel-on-dark .ace_constant.ace_character,.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,.ace-pastel-on-dark .ace_constant.ace_other {color: #4FB7C5}.ace-pastel-on-dark .ace_keyword.ace_operator {color: #797878}.ace-pastel-on-dark .ace_constant.ace_character {color: #AFA472}.ace-pastel-on-dark .ace_constant.ace_language {color: #DE8E30}.ace-pastel-on-dark .ace_constant.ace_numeric {color: #CCCCCC}.ace-pastel-on-dark .ace_invalid,.ace-pastel-on-dark .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-pastel-on-dark .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-pastel-on-dark .ace_fold {background-color: #757aD8;border-color: #8F938F}.ace-pastel-on-dark .ace_support.ace_function {color: #AEB2F8}.ace-pastel-on-dark .ace_string {color: #66A968}.ace-pastel-on-dark .ace_string.ace_regexp {color: #E9C062}.ace-pastel-on-dark .ace_comment {color: #A6C6FF}.ace-pastel-on-dark .ace_variable {color: #BEBF55}.ace-pastel-on-dark .ace_variable.ace_language {color: #C1C144}.ace-pastel-on-dark .ace_xml-pe {color: #494949}.ace-pastel-on-dark .ace_markup.ace_underline {text-decoration: underline}.ace-pastel-on-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0dD4z9DR0fEfAA+vBBPqhbn1AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-solarized_dark.js b/web/js/cheef-editor/ace/theme-solarized_dark.js new file mode 100644 index 000000000..0a1ba4026 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-solarized_dark.js @@ -0,0 +1 @@ +ace.define("ace/theme/solarized_dark",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-solarized-dark",t.cssText=".ace-solarized-dark .ace_gutter {background: #01313f;color: #d0edf7}.ace-solarized-dark .ace_print-margin {width: 1px;background: #33555E}.ace-solarized-dark .ace_scroller {background-color: #002B36}.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,.ace-solarized-dark .ace_storage,.ace-solarized-dark .ace_text-layer {color: #93A1A1}.ace-solarized-dark .ace_cursor {border-left: 2px solid #D30102}.ace-solarized-dark .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #D30102}.ace-solarized-dark .ace_marker-layer .ace_active-line,.ace-solarized-dark .ace_marker-layer .ace_selection {background: rgba(255, 255, 255, 0.1)}.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002B36;border-radius: 2px}.ace-solarized-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-solarized-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_gutter-active-line {background-color: #0d3440}.ace-solarized-dark .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-dark .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_keyword,.ace-solarized-dark .ace_meta,.ace-solarized-dark .ace_support.ace_class,.ace-solarized-dark .ace_support.ace_type {color: #859900}.ace-solarized-dark .ace_constant.ace_character,.ace-solarized-dark .ace_constant.ace_other {color: #CB4B16}.ace-solarized-dark .ace_constant.ace_language {color: #B58900}.ace-solarized-dark .ace_constant.ace_numeric {color: #D33682}.ace-solarized-dark .ace_fold {background-color: #268BD2;border-color: #93A1A1}.ace-solarized-dark .ace_entity.ace_name.ace_function,.ace-solarized-dark .ace_entity.ace_name.ace_tag,.ace-solarized-dark .ace_support.ace_function,.ace-solarized-dark .ace_variable,.ace-solarized-dark .ace_variable.ace_language {color: #268BD2}.ace-solarized-dark .ace_string {color: #2AA198}.ace-solarized-dark .ace_string.ace_regexp {color: #D30102}.ace-solarized-dark .ace_comment {font-style: italic;color: #657B83}.ace-solarized-dark .ace_markup.ace_underline {text-decoration: underline}.ace-solarized-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db7zzBz5sz/AA82BCv7wOIDAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-solarized_light.js b/web/js/cheef-editor/ace/theme-solarized_light.js new file mode 100644 index 000000000..f0c446f24 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-solarized_light.js @@ -0,0 +1 @@ +ace.define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-solarized-light",t.cssText=".ace-solarized-light .ace_gutter {background: #fbf1d3;color: #333}.ace-solarized-light .ace_print-margin {width: 1px;background: #e8e8e8}.ace-solarized-light .ace_scroller {background-color: #FDF6E3}.ace-solarized-light .ace_text-layer {color: #586E75}.ace-solarized-light .ace_cursor {border-left: 2px solid #000000}.ace-solarized-light .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #000000}.ace-solarized-light .ace_marker-layer .ace_selection {background: #073642}.ace-solarized-light.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FDF6E3;border-radius: 2px}.ace-solarized-light .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-solarized-light .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_marker-layer .ace_active-line {background: #EEE8D5}.ace-solarized-light .ace_gutter-active-line {background-color : #dcdcdc}.ace-solarized-light .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-light .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_keyword,.ace-solarized-light .ace_meta,.ace-solarized-light .ace_support.ace_class,.ace-solarized-light .ace_support.ace_type {color: #859900}.ace-solarized-light .ace_constant.ace_character,.ace-solarized-light .ace_constant.ace_other {color: #CB4B16}.ace-solarized-light .ace_constant.ace_language {color: #B58900}.ace-solarized-light .ace_constant.ace_numeric {color: #D33682}.ace-solarized-light .ace_fold {background-color: #268BD2;border-color: #586E75}.ace-solarized-light .ace_entity.ace_name.ace_function,.ace-solarized-light .ace_entity.ace_name.ace_tag,.ace-solarized-light .ace_support.ace_function,.ace-solarized-light .ace_variable,.ace-solarized-light .ace_variable.ace_language {color: #268BD2}.ace-solarized-light .ace_storage {color: #073642}.ace-solarized-light .ace_string {color: #2AA198}.ace-solarized-light .ace_string.ace_regexp {color: #D30102}.ace-solarized-light .ace_comment,.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {color: #93A1A1}.ace-solarized-light .ace_markup.ace_underline {text-decoration: underline}.ace-solarized-light .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4++3xf4ZVq1b9BwAjxwbT1g3hiwAAAABJRU5ErkJggg==) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-textmate.js b/web/js/cheef-editor/ace/theme-textmate.js new file mode 100644 index 000000000..d8ef4710d --- /dev/null +++ b/web/js/cheef-editor/ace/theme-textmate.js @@ -0,0 +1 @@ +ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm .ace_scroller {background-color: #FFFFFF;}.ace-tm .ace_cursor {border-left: 2px solid black;}.ace-tm .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_markup.ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_markup.ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-tomorrow.js b/web/js/cheef-editor/ace/theme-tomorrow.js new file mode 100644 index 000000000..6c99f7ac1 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-tomorrow.js @@ -0,0 +1 @@ +ace.define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-tomorrow",t.cssText=".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow .ace_scroller {background-color: #FFFFFF}.ace-tomorrow .ace_text-layer {color: #4D4D4C}.ace-tomorrow .ace_cursor {border-left: 2px solid #AEAFAD}.ace-tomorrow .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_markup.ace_underline {text-decoration: underline}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-tomorrow_night.js b/web/js/cheef-editor/ace/theme-tomorrow_night.js new file mode 100644 index 000000000..6ce48ca52 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-tomorrow_night.js @@ -0,0 +1 @@ +ace.define("ace/theme/tomorrow_night",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night",t.cssText=".ace-tomorrow-night .ace_gutter {background: #25282c;color: #C5C8C6}.ace-tomorrow-night .ace_print-margin {width: 1px;background: #25282c}.ace-tomorrow-night .ace_scroller {background-color: #1D1F21}.ace-tomorrow-night .ace_text-layer {color: #C5C8C6}.ace-tomorrow-night .ace_cursor {border-left: 2px solid #AEAFAD}.ace-tomorrow-night .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #AEAFAD}.ace-tomorrow-night .ace_marker-layer .ace_selection {background: #373B41}.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1D1F21;border-radius: 2px}.ace-tomorrow-night .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #4B4E55}.ace-tomorrow-night .ace_marker-layer .ace_active-line {background: #282A2E}.ace-tomorrow-night .ace_gutter-active-line {background-color: #282A2E}.ace-tomorrow-night .ace_marker-layer .ace_selected-word {border: 1px solid #373B41}.ace-tomorrow-night .ace_invisible {color: #4B4E55}.ace-tomorrow-night .ace_keyword,.ace-tomorrow-night .ace_meta,.ace-tomorrow-night .ace_storage,.ace-tomorrow-night .ace_storage.ace_type,.ace-tomorrow-night .ace_support.ace_type {color: #B294BB}.ace-tomorrow-night .ace_keyword.ace_operator {color: #8ABEB7}.ace-tomorrow-night .ace_constant.ace_character,.ace-tomorrow-night .ace_constant.ace_language,.ace-tomorrow-night .ace_constant.ace_numeric,.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night .ace_support.ace_constant,.ace-tomorrow-night .ace_variable.ace_parameter {color: #DE935F}.ace-tomorrow-night .ace_constant.ace_other {color: #CED1CF}.ace-tomorrow-night .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night .ace_fold {background-color: #81A2BE;border-color: #C5C8C6}.ace-tomorrow-night .ace_entity.ace_name.ace_function,.ace-tomorrow-night .ace_support.ace_function,.ace-tomorrow-night .ace_variable {color: #81A2BE}.ace-tomorrow-night .ace_support.ace_class,.ace-tomorrow-night .ace_support.ace_type {color: #F0C674}.ace-tomorrow-night .ace_markup.ace_heading,.ace-tomorrow-night .ace_string {color: #B5BD68}.ace-tomorrow-night .ace_entity.ace_name.ace_tag,.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night .ace_meta.ace_tag,.ace-tomorrow-night .ace_string.ace_regexp,.ace-tomorrow-night .ace_variable {color: #CC6666}.ace-tomorrow-night .ace_comment {color: #969896}.ace-tomorrow-night .ace_markup.ace_underline {text-decoration: underline}.ace-tomorrow-night .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQlVf8z7Bq1ar/AA/hBFp7egmpAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-tomorrow_night_blue.js b/web/js/cheef-editor/ace/theme-tomorrow_night_blue.js new file mode 100644 index 000000000..743a65566 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-tomorrow_night_blue.js @@ -0,0 +1 @@ +ace.define("ace/theme/tomorrow_night_blue",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night-blue",t.cssText=".ace-tomorrow-night-blue .ace_gutter {background: #00204b;color: #7388b5}.ace-tomorrow-night-blue .ace_print-margin {width: 1px;background: #00204b}.ace-tomorrow-night-blue .ace_scroller {background-color: #002451}.ace-tomorrow-night-blue .ace_constant.ace_other,.ace-tomorrow-night-blue .ace_text-layer {color: #FFFFFF}.ace-tomorrow-night-blue .ace_cursor {border-left: 2px solid #FFFFFF}.ace-tomorrow-night-blue .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #FFFFFF}.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {background: #003F8E}.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002451;border-radius: 2px}.ace-tomorrow-night-blue .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404F7D}.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {background: #00346E}.ace-tomorrow-night-blue .ace_gutter-active-line {background-color: #022040}.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {border: 1px solid #003F8E}.ace-tomorrow-night-blue .ace_invisible {color: #404F7D}.ace-tomorrow-night-blue .ace_keyword,.ace-tomorrow-night-blue .ace_meta,.ace-tomorrow-night-blue .ace_storage,.ace-tomorrow-night-blue .ace_storage.ace_type,.ace-tomorrow-night-blue .ace_support.ace_type {color: #EBBBFF}.ace-tomorrow-night-blue .ace_keyword.ace_operator {color: #99FFFF}.ace-tomorrow-night-blue .ace_constant.ace_character,.ace-tomorrow-night-blue .ace_constant.ace_language,.ace-tomorrow-night-blue .ace_constant.ace_numeric,.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-blue .ace_support.ace_constant,.ace-tomorrow-night-blue .ace_variable.ace_parameter {color: #FFC58F}.ace-tomorrow-night-blue .ace_invalid {color: #FFFFFF;background-color: #F99DA5}.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #EBBBFF}.ace-tomorrow-night-blue .ace_fold {background-color: #BBDAFF;border-color: #FFFFFF}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,.ace-tomorrow-night-blue .ace_support.ace_function,.ace-tomorrow-night-blue .ace_variable {color: #BBDAFF}.ace-tomorrow-night-blue .ace_support.ace_class,.ace-tomorrow-night-blue .ace_support.ace_type {color: #FFEEAD}.ace-tomorrow-night-blue .ace_markup.ace_heading,.ace-tomorrow-night-blue .ace_string {color: #D1F1A9}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-blue .ace_meta.ace_tag,.ace-tomorrow-night-blue .ace_string.ace_regexp,.ace-tomorrow-night-blue .ace_variable {color: #FF9DA4}.ace-tomorrow-night-blue .ace_comment {color: #7285B7}.ace-tomorrow-night-blue .ace_markup.ace_underline {text-decoration: underline}.ace-tomorrow-night-blue .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgUAn8z7Bq1ar/ABBUBHJ4/r3JAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-tomorrow_night_bright.js b/web/js/cheef-editor/ace/theme-tomorrow_night_bright.js new file mode 100644 index 000000000..0540d1525 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-tomorrow_night_bright.js @@ -0,0 +1 @@ +ace.define("ace/theme/tomorrow_night_bright",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night-bright",t.cssText=".ace-tomorrow-night-bright .ace_gutter {background: #1a1a1a;color: #DEDEDE}.ace-tomorrow-night-bright .ace_print-margin {width: 1px;background: #1a1a1a}.ace-tomorrow-night-bright .ace_scroller {background-color: #000000}.ace-tomorrow-night-bright .ace_text-layer {color: #DEDEDE}.ace-tomorrow-night-bright .ace_cursor {border-left: 2px solid #9F9F9F}.ace-tomorrow-night-bright .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #9F9F9F}.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {background: #424242}.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #000000;border-radius: 2px}.ace-tomorrow-night-bright .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #343434}.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-tomorrow-night-bright .ace_gutter-active-line {background-color: #2A2A2A}.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {border: 1px solid #424242}.ace-tomorrow-night-bright .ace_invisible {color: #343434}.ace-tomorrow-night-bright .ace_keyword,.ace-tomorrow-night-bright .ace_meta,.ace-tomorrow-night-bright .ace_storage,.ace-tomorrow-night-bright .ace_storage.ace_type,.ace-tomorrow-night-bright .ace_support.ace_type {color: #C397D8}.ace-tomorrow-night-bright .ace_keyword.ace_operator {color: #70C0B1}.ace-tomorrow-night-bright .ace_constant.ace_character,.ace-tomorrow-night-bright .ace_constant.ace_language,.ace-tomorrow-night-bright .ace_constant.ace_numeric,.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-bright .ace_support.ace_constant,.ace-tomorrow-night-bright .ace_variable.ace_parameter {color: #E78C45}.ace-tomorrow-night-bright .ace_constant.ace_other {color: #EEEEEE}.ace-tomorrow-night-bright .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night-bright .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,.ace-tomorrow-night-bright .ace_support.ace_function,.ace-tomorrow-night-bright .ace_variable {color: #7AA6DA}.ace-tomorrow-night-bright .ace_support.ace_class,.ace-tomorrow-night-bright .ace_support.ace_type {color: #E7C547}.ace-tomorrow-night-bright .ace_markup.ace_heading,.ace-tomorrow-night-bright .ace_string {color: #B9CA4A}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-bright .ace_meta.ace_tag,.ace-tomorrow-night-bright .ace_string.ace_regexp,.ace-tomorrow-night-bright .ace_variable {color: #D54E53}.ace-tomorrow-night-bright .ace_comment {color: #969896}.ace-tomorrow-night-bright .ace_markup.ace_underline {text-decoration: underline}.ace-tomorrow-night-bright .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGD4z7Bq1ar/AAz9A/2naJQKAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-tomorrow_night_eighties.js b/web/js/cheef-editor/ace/theme-tomorrow_night_eighties.js new file mode 100644 index 000000000..f5d33a7e8 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-tomorrow_night_eighties.js @@ -0,0 +1 @@ +ace.define("ace/theme/tomorrow_night_eighties",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night-eighties",t.cssText=".ace-tomorrow-night-eighties .ace_gutter {background: #272727;color: #CCC}.ace-tomorrow-night-eighties .ace_print-margin {width: 1px;background: #272727}.ace-tomorrow-night-eighties .ace_scroller {background-color: #2D2D2D}.ace-tomorrow-night-eighties .ace_constant.ace_other,.ace-tomorrow-night-eighties .ace_text-layer {color: #CCCCCC}.ace-tomorrow-night-eighties .ace_cursor {border-left: 2px solid #CCCCCC}.ace-tomorrow-night-eighties .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #CCCCCC}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {background: #515151}.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2D2D2D;border-radius: 2px}.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #6A6A6A}.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {background: #393939}.ace-tomorrow-night-eighties .ace_gutter-active-line {background-color: #393939}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {border: 1px solid #515151}.ace-tomorrow-night-eighties .ace_invisible {color: #6A6A6A}.ace-tomorrow-night-eighties .ace_keyword,.ace-tomorrow-night-eighties .ace_meta,.ace-tomorrow-night-eighties .ace_storage,.ace-tomorrow-night-eighties .ace_storage.ace_type,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #CC99CC}.ace-tomorrow-night-eighties .ace_keyword.ace_operator {color: #66CCCC}.ace-tomorrow-night-eighties .ace_constant.ace_character,.ace-tomorrow-night-eighties .ace_constant.ace_language,.ace-tomorrow-night-eighties .ace_constant.ace_numeric,.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-eighties .ace_support.ace_constant,.ace-tomorrow-night-eighties .ace_variable.ace_parameter {color: #F99157}.ace-tomorrow-night-eighties .ace_invalid {color: #CDCDCD;background-color: #F2777A}.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {color: #CDCDCD;background-color: #CC99CC}.ace-tomorrow-night-eighties .ace_fold {background-color: #6699CC;border-color: #CCCCCC}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,.ace-tomorrow-night-eighties .ace_support.ace_function,.ace-tomorrow-night-eighties .ace_variable {color: #6699CC}.ace-tomorrow-night-eighties .ace_support.ace_class,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #FFCC66}.ace-tomorrow-night-eighties .ace_markup.ace_heading,.ace-tomorrow-night-eighties .ace_string {color: #99CC99}.ace-tomorrow-night-eighties .ace_comment {color: #999999}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-eighties .ace_meta.ace_tag,.ace-tomorrow-night-eighties .ace_variable {color: #F2777A}.ace-tomorrow-night-eighties .ace_markup.ace_underline {text-decoration: underline}.ace-tomorrow-night-eighties .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ1dX9z7Bq1ar/ABE1BITwhhuFAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-twilight.js b/web/js/cheef-editor/ace/theme-twilight.js new file mode 100644 index 000000000..0ee85dd0b --- /dev/null +++ b/web/js/cheef-editor/ace/theme-twilight.js @@ -0,0 +1 @@ +ace.define("ace/theme/twilight",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-twilight",t.cssText=".ace-twilight .ace_gutter {background: #232323;color: #E2E2E2}.ace-twilight .ace_print-margin {width: 1px;background: #232323}.ace-twilight .ace_scroller {background-color: #141414}.ace-twilight .ace_text-layer {color: #F8F8F8}.ace-twilight .ace_cursor {border-left: 2px solid #A7A7A7}.ace-twilight .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #A7A7A7}.ace-twilight .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-twilight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #141414;border-radius: 2px}.ace-twilight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-twilight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-twilight .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-twilight .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-twilight .ace_keyword,.ace-twilight .ace_meta {color: #CDA869}.ace-twilight .ace_constant,.ace-twilight .ace_constant.ace_character,.ace-twilight .ace_constant.ace_character.ace_escape,.ace-twilight .ace_constant.ace_other,.ace-twilight .ace_markup.ace_heading,.ace-twilight .ace_support.ace_constant {color: #CF6A4C}.ace-twilight .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-twilight .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-twilight .ace_support {color: #9B859D}.ace-twilight .ace_fold {background-color: #AC885B;border-color: #F8F8F8}.ace-twilight .ace_support.ace_function {color: #DAD085}.ace-twilight .ace_markup.ace_list,.ace-twilight .ace_storage {color: #F9EE98}.ace-twilight .ace_entity.ace_name.ace_function,.ace-twilight .ace_meta.ace_tag,.ace-twilight .ace_variable {color: #AC885B}.ace-twilight .ace_string {color: #8F9D6A}.ace-twilight .ace_string.ace_regexp {color: #E9C062}.ace-twilight .ace_comment {font-style: italic;color: #5F5A60}.ace-twilight .ace_variable {color: #7587A6}.ace-twilight .ace_xml-pe {color: #494949}.ace-twilight .ace_markup.ace_underline {text-decoration: underline}.ace-twilight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERH5zzBz5sz/AA5EBAYqeZXWAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-vibrant_ink.js b/web/js/cheef-editor/ace/theme-vibrant_ink.js new file mode 100644 index 000000000..047a645c0 --- /dev/null +++ b/web/js/cheef-editor/ace/theme-vibrant_ink.js @@ -0,0 +1 @@ +ace.define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-vibrant-ink",t.cssText=".ace-vibrant-ink .ace_gutter {background: #1a1a1a;color: #BEBEBE}.ace-vibrant-ink .ace_print-margin {width: 1px;background: #1a1a1a}.ace-vibrant-ink .ace_scroller {background-color: #0F0F0F}.ace-vibrant-ink .ace_text-layer {color: #FFFFFF}.ace-vibrant-ink .ace_cursor {border-left: 2px solid #FFFFFF}.ace-vibrant-ink .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #FFFFFF}.ace-vibrant-ink .ace_marker-layer .ace_selection {background: #6699CC}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0F0F0F;border-radius: 2px}.ace-vibrant-ink .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-vibrant-ink .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-vibrant-ink .ace_marker-layer .ace_active-line {background: #333333}.ace-vibrant-ink .ace_gutter-active-line {background-color: #333333}.ace-vibrant-ink .ace_marker-layer .ace_selected-word {border: 1px solid #6699CC}.ace-vibrant-ink .ace_invisible {color: #404040}.ace-vibrant-ink .ace_keyword,.ace-vibrant-ink .ace_meta {color: #FF6600}.ace-vibrant-ink .ace_constant,.ace-vibrant-ink .ace_constant.ace_character,.ace-vibrant-ink .ace_constant.ace_character.ace_escape,.ace-vibrant-ink .ace_constant.ace_other {color: #339999}.ace-vibrant-ink .ace_constant.ace_numeric {color: #99CC99}.ace-vibrant-ink .ace_invalid,.ace-vibrant-ink .ace_invalid.ace_deprecated {color: #CCFF33;background-color: #000000}.ace-vibrant-ink .ace_fold {background-color: #FFCC00;border-color: #FFFFFF}.ace-vibrant-ink .ace_entity.ace_name.ace_function,.ace-vibrant-ink .ace_support.ace_function,.ace-vibrant-ink .ace_variable {color: #FFCC00}.ace-vibrant-ink .ace_variable.ace_parameter {font-style: italic}.ace-vibrant-ink .ace_string {color: #66FF00}.ace-vibrant-ink .ace_string.ace_regexp {color: #44B4CC}.ace-vibrant-ink .ace_comment {color: #9933CC}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {font-style: italic;color: #99CC99}.ace-vibrant-ink .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPg5+f/z7Bq1ar/AA5lBCqoLxsgAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/theme-xcode.js b/web/js/cheef-editor/ace/theme-xcode.js new file mode 100644 index 000000000..943a15d1a --- /dev/null +++ b/web/js/cheef-editor/ace/theme-xcode.js @@ -0,0 +1 @@ +ace.define("ace/theme/xcode",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-xcode",t.cssText="/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css (UUID: EE3AD170-2B7F-4DE1-B724-C75F13FE0085) */.ace-xcode .ace_gutter {background: #e8e8e8;color: #333}.ace-xcode .ace_print-margin {width: 1px;background: #e8e8e8}.ace-xcode .ace_scroller {background-color: #FFFFFF}.ace-xcode .ace_text-layer {color: #000000}.ace-xcode .ace_cursor {border-left: 2px solid #000000}.ace-xcode .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #000000}.ace-xcode .ace_marker-layer .ace_selection {background: #B5D5FF}.ace-xcode.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-xcode .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-xcode .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-xcode .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_marker-layer .ace_selected-word {border: 1px solid #B5D5FF}.ace-xcode .ace_constant.ace_language,.ace-xcode .ace_keyword,.ace-xcode .ace_meta,.ace-xcode .ace_variable.ace_language {color: #C800A4}.ace-xcode .ace_invisible {color: #BFBFBF}.ace-xcode .ace_constant.ace_character,.ace-xcode .ace_constant.ace_other {color: #275A5E}.ace-xcode .ace_constant.ace_numeric {color: #3A00DC}.ace-xcode .ace_entity.ace_other.ace_attribute-name,.ace-xcode .ace_support.ace_constant,.ace-xcode .ace_support.ace_function {color: #450084}.ace-xcode .ace_fold {background-color: #C800A4;border-color: #000000}.ace-xcode .ace_entity.ace_name.ace_tag,.ace-xcode .ace_support.ace_class,.ace-xcode .ace_support.ace_type {color: #790EAD}.ace-xcode .ace_storage {color: #C900A4}.ace-xcode .ace_string {color: #DF0002}.ace-xcode .ace_comment {color: #008E00}.ace-xcode .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y;}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/web/js/cheef-editor/ace/worker-coffee.js b/web/js/cheef-editor/ace/worker-coffee.js new file mode 100644 index 000000000..fbb2546f8 --- /dev/null +++ b/web/js/cheef-editor/ace/worker-coffee.js @@ -0,0 +1 @@ +"no use strict";function initBaseUrls(e){require.tlns=e}function initSender(){var e=require(null,"ace/lib/event_emitter").EventEmitter,t=require(null,"ace/lib/oop"),n=function(){};return function(){t.implement(this,e),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(n.prototype),new n}if(typeof window!="undefined"&&window.document)throw"atempt to load ace worker into main window instead of webWorker";var console={log:function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},error:function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})}},window={console:console},normalizeModule=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return normalizeModule(e,n[0])+"!"+normalizeModule(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&i!=t){var i=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},require=function(e,t){if(!t.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");t=normalizeModule(e,t);var n=require.modules[t];if(n)return n.initialized||(n.initialized=!0,n.exports=n.factory().exports),n.exports;var r=t.split("/");r[0]=require.tlns[r[0]]||r[0];var i=r.join("/")+".js";return require.id=t,importScripts(i),require(e,t)};require.modules={},require.tlns={};var define=function(e,t,n){arguments.length==2?(n=t,typeof e!="string"&&(t=e,e=require.id)):arguments.length==1&&(n=e,e=require.id);if(e.indexOf("text!")===0)return;var r=function(t,n){return require(e,t,n)};require.modules[e]={factory:function(){var e={exports:{}},t=n(r,e.exports,e);return t&&(e.exports=t),e}}},main,sender;onmessage=function(e){var t=e.data;if(t.command){if(!main[t.command])throw new Error("Unknown command:"+t.command);main[t.command].apply(main,t.args)}else if(t.init){initBaseUrls(t.tlns),require(null,"ace/lib/fixoldbrowsers"),sender=initSender();var n=require(null,t.module)[t.classname];main=new n(sender)}else t.event&&sender&&sender._emit(t.event,t.data)},define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){e("./regexp"),e("./es5-shim")}),define("ace/lib/regexp",["require","exports","module"],function(e,t,n){function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;et.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function m(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError;var r=o.call(arguments,1),i=function(){if(this instanceof i){var e=function(){};e.prototype=n.prototype;var s=new e,u=n.apply(s,r.concat(o.call(arguments)));return u!==null&&Object(u)===u?u:s}return n.apply(t,r.concat(o.call(arguments)))};return i});var r=Function.prototype.call,i=Array.prototype,s=Object.prototype,o=i.slice,u=r.bind(s.toString),a=r.bind(s.hasOwnProperty),f,l,c,h,p;if(p=a(s,"__defineGetter__"))f=r.bind(s.__defineGetter__),l=r.bind(s.__defineSetter__),c=r.bind(s.__lookupGetter__),h=r.bind(s.__lookupSetter__);Array.isArray||(Array.isArray=function(t){return u(t)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=D(this),r=arguments[1],i=0,s=n.length>>>0;if(u(t)!="[object Function]")throw new TypeError;while(i>>0,i=Array(r),s=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var o=0;o>>0,i=[],s=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var o=0;o>>0,i=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var s=0;s>>0,i=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var s=0;s>>0;if(u(t)!="[object Function]")throw new TypeError;if(!r&&arguments.length==1)throw new TypeError;var i=0,s;if(arguments.length>=2)s=arguments[1];else do{if(i in n){s=n[i++];break}if(++i>=r)throw new TypeError}while(!0);for(;i>>0;if(u(t)!="[object Function]")throw new TypeError;if(!r&&arguments.length==1)throw new TypeError;var i,s=r-1;if(arguments.length>=2)i=arguments[1];else do{if(s in n){i=n[s--];break}if(--s<0)throw new TypeError}while(!0);do s in this&&(i=t.call(void 0,i,n[s],s,n));while(s--);return i}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t){var n=D(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=M(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,M(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:s)});if(!Object.getOwnPropertyDescriptor){var d="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(d+t);if(!a(t,n))return;var r,i,o;r={enumerable:!0,configurable:!0};if(p){var u=t.__proto__;t.__proto__=s;var i=c(t,n),o=h(t,n);t.__proto__=u;if(i||o)return i&&(r.get=i),o&&(r.set=o),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var v;Object.prototype.__proto__===null?v=function(){return{__proto__:null}}:v=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=v();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var g=m({}),y=typeof document=="undefined"||m(document.createElement("div"));if(!g||!y)var b=Object.defineProperty}if(!Object.defineProperty||b){var w="Property description must be an object: ",E="Object.defineProperty called on non-object: ",S="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(E+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(w+r);if(b)try{return b.call(Object,t,n,r)}catch(i){}if(a(r,"value"))if(p&&(c(t,n)||h(t,n))){var o=t.__proto__;t.__proto__=s,delete t[n],t[n]=r.value,t.__proto__=o}else t[n]=r.value;else{if(!p)throw new TypeError(S);a(r,"get")&&f(t,n,r.get),a(r,"set")&&l(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)a(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(x){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(a(t,n))n+="?";t[n]=!0;var r=a(t,n);return delete t[n],r});if(!Object.keys){var T=!0,N=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=N.length;for(var k in{toString:null})T=!1;Object.keys=function P(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var P=[];for(var t in e)a(e,t)&&P.push(t);if(T)for(var n=0,r=C;n9999?"+":"")+("00000"+Math.abs(i)).slice(0<=i&&i<=9999?-4:-6),n=t.length;while(n--)r=t[n],r<10&&(t[n]="0"+r);return i+"-"+t.slice(0,2).join("-")+"T"+t.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(t){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(e){var t=function i(t,n,r,s,o,u,a){var f=arguments.length;if(this instanceof e){var l=f==1&&String(t)===t?new e(i.parse(t)):f>=7?new e(t,n,r,s,o,u,a):f>=6?new e(t,n,r,s,o,u):f>=5?new e(t,n,r,s,o):f>=4?new e(t,n,r,s):f>=3?new e(t,n,r):f>=2?new e(t,n):f>=1?new e(t):new e;return l.constructor=i,l}return e.apply(this,arguments)},n=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var r in e)t[r]=e[r];return t.now=e.now,t.UTC=e.UTC,t.prototype=e.prototype,t.prototype.constructor=t,t.parse=function(r){var i=n.exec(r);if(i){i.shift();for(var s=1;s<7;s++)i[s]=+(i[s]||(s<3?1:0)),s==1&&i[s]--;var o=+i.pop(),u=+i.pop(),a=i.pop(),f=0;if(a){if(u>23||o>59)return NaN;f=(u*60+o)*6e4*(a=="+"?-1:1)}var l=+i[0];return 0<=l&&l<=99?(i[0]=l+400,e.UTC.apply(this,i)+f-126227808e5):e.UTC.apply(this,i)+f}return e.parse.apply(this,arguments)},t}(Date));var L=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||L.trim()){L="["+L+"]";var A=new RegExp("^"+L+L+"*"),O=new RegExp(L+L+"*$");String.prototype.trim=function(){return String(this).replace(A,"").replace(O,"")}}var M=function(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e},_="a"[0]!="a",D=function(e){if(e==null)throw new TypeError;return _&&typeof e=="string"&&e?e.split(""):Object(e)}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){var r={};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=function(){this.propagationStopped=!0}),t.preventDefault||(t.preventDefault=function(){this.defaultPrevented=!0});for(var i=0;i=t&&(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this.insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){if(t.length==0)return{row:e,column:0};if(t.length>65535){var n=this.insertLines(e,t.slice(65535));t=t.slice(0,65535)}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._emit("change",{data:o}),n||i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._emit("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._emit("change",{data:i}),r},this.remove=function(e){e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this.removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._emit("change",{data:a}),r.start},this.removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._emit("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._emit("change",{data:o})},this.replace=function(e,t){if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this.insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}}}).call(u.prototype),t.Document=u}),define("ace/range",["require","exports","module"],function(e,t,n){var r=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row==e.start.row&&this.end.row==e.end.row&&this.start.column==e.start.column&&this.end.column==e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};if(this.start.row>t)var i={row:t+1,column:0};if(this.start.rowthis.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column;t.action==="insertText"?n.start.row===r&&n.start.column<=i?n.start.row===n.end.row?i+=n.end.column-n.start.column:(i-=n.start.column,r+=n.end.row-n.start.row):n.start.row!==n.end.row&&n.start.row=i?i=n.start.column:i=Math.max(0,i-(n.end.column-n.start.column)):n.start.row!==n.end.row&&n.start.row=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){return(new Array(t+1)).join(e)};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0||G.call(a,n)>=0)&&(f=n.toUpperCase(),f==="WHEN"&&(c=this.tag(),G.call(x,c)>=0)?f="LEADING_WHEN":f==="FOR"?this.seenFor=!0:f==="UNLESS"?f="IF":G.call(U,f)>=0?f="UNARY":G.call(H,f)>=0&&(f!=="INSTANCEOF"&&this.seenFor?(f="FOR"+f,this.seenFor=!1):(f="RELATION",this.value()==="!"&&(this.tokens.pop(),n="!"+n)))),G.call(E,n)>=0&&(t?(f="IDENTIFIER",n=new String(n),n.reserved=!0):G.call(B,n)>=0&&this.error('reserved word "'+n+'"')),t||(G.call(o,n)>=0&&(n=u[n]),f=function(){switch(n){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return f}}()),this.token(f,n),e&&this.token(":",":"),r.length)):0},e.prototype.numberToken=function(){var e,t,n,r,i;if(!(n=_.exec(this.chunk)))return 0;r=n[0],/^0[BOX]/.test(r)?this.error("radix prefix '"+r+"' must be lowercase"):/E/.test(r)&&!/^0x/.test(r)?this.error("exponential notation '"+r+"' must be indicated with a lowercase 'e'"):/^0\d*[89]/.test(r)?this.error("decimal literal '"+r+"' must not be prefixed with '0'"):/^0\d+/.test(r)&&this.error("octal literal '"+r+"' must be prefixed with '0o'"),t=r.length;if(i=/^0o([0-7]+)/.exec(r))r="0x"+parseInt(i[1],8).toString(16);if(e=/^0b([01]+)/.exec(r))r="0x"+parseInt(e[1],2).toString(16);return this.token("NUMBER",r),t},e.prototype.stringToken=function(){var e,t,n;switch(this.chunk.charAt(0)){case"'":if(!(e=I.exec(this.chunk)))return 0;this.token("STRING",(n=e[0]).replace(L,"\\\n"));break;case'"':if(!(n=this.balancedString(this.chunk,'"')))return 0;0=0)?0:(n=P.exec(this.chunk))?(o=n,n=o[0],i=o[1],e=o[2],i.slice(0,2)==="/*"&&this.error("regular expressions cannot begin with `*`"),i==="//"&&(i="/(?:)/"),this.token("REGEX",""+i+e),n.length):0)},e.prototype.heregexToken=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p;r=e[0],t=e[1],n=e[2];if(0>t.indexOf("#{"))return i=t.replace(m,"").replace(/\//g,"\\/"),i.match(/^\*/)&&this.error("regular expressions cannot begin with `*`"),this.token("REGEX","/"+(i||"(?:)")+"/"+n),r.length;this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),o=[],l=this.interpolateString(t,{regex:!0});for(a=0,f=l.length;athis.indent){if(r)return this.indebt=i-this.indent,this.suppressNewlines(),t.length;e=i-this.indent+this.outdebt,this.token("INDENT",e),this.indents.push(e),this.ends.push("OUTDENT"),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-i,r);return this.indent=i,t.length},e.prototype.outdentToken=function(e,t){var n,r;while(e>0)r=this.indents.length-1,this.indents[r]===void 0?e=0:this.indents[r]===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.indents[r]=0)&&this.error('reserved word "'+this.value()+"\" can't be assigned");if((u=t[1])==="||"||u==="&&")return t[0]="COMPOUND_ASSIGN",t[1]+="=",r.length}if(r===";")this.seenFor=!1,n="TERMINATOR";else if(G.call(k,r)>=0)n="MATH";else if(G.call(l,r)>=0)n="COMPARE";else if(G.call(c,r)>=0)n="COMPOUND_ASSIGN";else if(G.call(U,r)>=0)n="UNARY";else if(G.call(F,r)>=0)n="SHIFT";else if(G.call(N,r)>=0||r==="?"&&(t!=null?t.spaced:void 0))n="LOGIC";else if(t&&!t.spaced)if(r==="("&&(a=t[0],G.call(i,a)>=0))t[0]==="?"&&(t[0]="FUNC_EXIST"),n="CALL_START";else if(r==="["&&(f=t[0],G.call(y,f)>=0)){n="INDEX_START";switch(t[0]){case"?":t[0]="INDEX_SOAK"}}switch(r){case"(":case"{":case"[":this.ends.push(b[r]);break;case")":case"}":case"]":this.pair(r)}return this.token(n,r),r.length},e.prototype.sanitizeHeredoc=function(e,t){var n,r,i,s,o;i=t.indent,r=t.herecomment;if(r){p.test(e)&&this.error('block comment cannot contain "*/", starting');if(e.indexOf("\n")<=0)return e}else while(s=d.exec(e)){n=s[1];if(i===null||0<(o=n.length)&&of;r=1<=f?++a:--a){if(n){--n;continue}switch(i=e.charAt(r)){case"\\":++n;continue;case t:u.pop();if(!u.length)return e.slice(0,+r+1||9e9);t=u[u.length-1];continue}t!=="}"||i!=='"'&&i!=="'"?t==="}"&&i==="/"&&(s=v.exec(e.slice(r))||P.exec(e.slice(r)))?n+=s[0].length-1:t==="}"&&i==="{"?u.push(t="}"):t==='"'&&o==="#"&&i==="{"&&u.push(t="}"):u.push(t=i),o=i}return this.error("missing "+u.pop()+", starting")},e.prototype.interpolateString=function(t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w;n==null&&(n={}),i=n.heredoc,h=n.regex,d=[],c=0,s=-1;while(f=t.charAt(s+=1)){if(f==="\\"){s+=1;continue}if(f!=="#"||t.charAt(s+1)!=="{"||!(r=this.balancedString(t.slice(s+1),"}")))continue;c1&&(l.unshift(["(","(",this.line]),l.push([")",")",this.line])),d.push(["TOKENS",l])}s+=r.length,c=s+1}s>c&&c1)&&this.token("(","(");for(s=m=0,g=d.length;m|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,z=/^[^\n\S]+/,f=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,s=/^[-=]>/,A=/^(?:\n[^\n\S]*)+/,I=/^'[^\\']*(?:\\.[^\\']*)*'/,w=/^`[^\\`]*(?:\\.[^\\`]*)*`/,P=/^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/,v=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,m=/\s+(?:#.*)?/g,L=/\n/g,d=/\n+([^\n\S]*)/g,p=/\*\//,T=/^\s*(?:,|\??\.(?![.\d])|::)/,R=/\s+$/,c=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],U=["!","~","NEW","TYPEOF","DELETE","DO"],N=["&&","||","&","|","^"],F=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],k=["*","/","%"],H=["IN","OF","INSTANCEOF"],r=["TRUE","FALSE"],O=["NUMBER","REGEX","BOOL","NULL","UNDEFINED","++","--","]"],M=O.concat(")","}","THIS","IDENTIFIER","STRING"),i=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],y=i.concat("NUMBER","BOOL","NULL","UNDEFINED"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E=[].indexOf||function(e){for(var t=0,n=this.length;t=0)r+=1;else if(f=i[0],E.call(s,f)>=0)r-=1;e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,r,i;i=this.tokens;for(e=n=0,r=i.length;n=0)?(n.splice(t,1),0):1})},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return(n=e[0])===")"||n==="CALL_END"||e[0]==="OUTDENT"&&this.tag(t-1)===")"},e=function(e,t){return this.tokens[e[0]==="OUTDENT"?t-1:t][0]="CALL_END"},this.scanTokens(function(n,r){return n[0]==="CALL_START"&&this.detectEnd(r+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e,t){var n;return(n=e[0])==="]"||n==="INDEX_END"},e=function(e,t){return e[0]="INDEX_END"},this.scanTokens(function(n,r){return n[0]==="INDEX_START"&&this.detectEnd(r+1,t,e),1})},e.prototype.addImplicitBraces=function(){var e,t,n,r,i,u,a,l;return r=[],i=null,l=null,n=!0,u=0,a=0,t=function(e,t){var r,i,s,o,u,c;return u=this.tokens.slice(t+1,+(t+3)+1||9e9),r=u[0],o=u[1],s=u[2],"HERECOMMENT"===(r!=null?r[0]:void 0)?!1:(i=e[0],E.call(p,i)>=0&&(n=!1),(i==="TERMINATOR"||i==="OUTDENT"||E.call(f,i)>=0&&n&&t-a!==1)&&(!l&&this.tag(t-1)!==","||(o!=null?o[0]:void 0)!==":"&&((r!=null?r[0]:void 0)!=="@"||(s!=null?s[0]:void 0)!==":"))||i===","&&r&&(c=r[0])!=="IDENTIFIER"&&c!=="NUMBER"&&c!=="STRING"&&c!=="@"&&c!=="TERMINATOR"&&c!=="OUTDENT")},e=function(e,t){var n;return n=this.generate("}","}",e[2]),this.tokens.splice(t,0,n)},this.scanTokens(function(u,f,c){var h,d,v,m,g,y,b,w;if(b=m=u[0],E.call(o,b)>=0)return r.push([m==="INDENT"&&this.tag(f-1)==="{"?"{":m,f]),1;if(E.call(s,m)>=0)return i=r.pop(),1;if(m!==":"||(h=this.tag(f-2))!==":"&&((w=r[r.length-1])!=null?w[0]:void 0)==="{")return 1;n=!0,a=f+1,r.push(["{"]),d=h==="@"?f-2:f-1;while(this.tag(d-2)==="HERECOMMENT")d-=2;return v=this.tag(d-1),l=!v||E.call(p,v)>=0,y=new String("{"),y.generated=!0,g=this.generate("{",y,u[2]),c.splice(d,0,g),this.detectEnd(f+2,t,e),2})},e.prototype.addImplicitParentheses=function(){var e,t,n,r,i;return n=i=r=!1,t=function(e,t){var n,s,o,a;s=e[0];if(!i&&e.fromThen)return!0;if(s==="IF"||s==="ELSE"||s==="CATCH"||s==="->"||s==="=>"||s==="CLASS")i=!0;if(s==="IF"||s==="ELSE"||s==="SWITCH"||s==="TRY"||s==="=")r=!0;return s!=="."&&s!=="?."&&s!=="::"||this.tag(t-1)!=="OUTDENT"?!e.generated&&this.tag(t-1)!==","&&(E.call(f,s)>=0||s==="INDENT"&&!r)&&(s!=="INDENT"||(o=this.tag(t-2))!=="CLASS"&&o!=="EXTENDS"&&(a=this.tag(t-1),E.call(u,a)<0)&&(!(n=this.tokens[t+1])||!n.generated||n[0]!=="{")):!0},e=function(e,t){return this.tokens.splice(t,0,this.generate("CALL_END",")",e[2]))},this.scanTokens(function(s,o,u){var f,h,d,v,m,g,y,b;m=s[0];if(m==="CLASS"||m==="IF"||m==="FOR"||m==="WHILE")n=!0;return g=u.slice(o-1,+(o+1)+1||9e9),v=g[0],h=g[1],d=g[2],f=!n&&m==="INDENT"&&d&&d.generated&&d[0]==="{"&&v&&(y=v[0],E.call(l,y)>=0),i=!1,r=!1,E.call(p,m)>=0&&(n=!1),v&&!v.spaced&&m==="?"&&(s.call=!0),s.fromThen?1:f||(v!=null?v.spaced:void 0)&&(v.call||(b=v[0],E.call(l,b)>=0))&&(E.call(a,m)>=0||!s.spaced&&!s.newLine&&E.call(c,m)>=0)?(u.splice(o,0,this.generate("CALL_START","(",s[2])),this.detectEnd(o+1,t,e),v[0]==="?"&&(v[0]="FUNC_EXIST"),2):1})},e.prototype.addImplicitIndentation=function(){var e,t,n,r,i;return i=n=r=null,t=function(e,t){var n;return e[1]!==";"&&(n=e[0],E.call(d,n)>=0)&&(e[0]!=="ELSE"||i==="IF"||i==="THEN")},e=function(e,t){return this.tokens.splice(this.tag(t-1)===","?t-1:t,0,r)},this.scanTokens(function(s,o,u){var a,f,l;return a=s[0],a==="TERMINATOR"&&this.tag(o+1)==="THEN"?(u.splice(o,1),0):a==="ELSE"&&this.tag(o-1)!=="OUTDENT"?(u.splice.apply(u,[o,0].concat(S.call(this.indentation(s)))),2):a!=="CATCH"||(f=this.tag(o+2))!=="OUTDENT"&&f!=="TERMINATOR"&&f!=="FINALLY"?E.call(v,a)>=0&&this.tag(o+1)!=="INDENT"&&(a!=="ELSE"||this.tag(o+1)!=="IF")?(i=a,l=this.indentation(s,!0),n=l[0],r=l[1],i==="THEN"&&(n.fromThen=!0),u.splice(o+1,0,n),this.detectEnd(o+2,t,e),a==="THEN"&&u.splice(o,1),1):1:(u.splice.apply(u,[o+2,0].concat(S.call(this.indentation(s)))),4)})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n;return(n=e[0])==="TERMINATOR"||n==="INDENT"},e=function(e,t){if(e[0]!=="INDENT"||e.generated&&!e.fromThen)return n[0]="POST_"+n[0]},this.scanTokens(function(r,i){return r[0]!=="IF"?1:(n=r,this.detectEnd(i+1,t,e),1)})},e.prototype.indentation=function(e,t){var n,r;return t==null&&(t=!1),n=["INDENT",2,e[2]],r=["OUTDENT",2,e[2]],t&&(n.generated=r.generated=!0),[n,r]},e.prototype.generate=function(e,t,n){var r;return r=[e,t,n],r.generated=!0,r},e.prototype.tag=function(e){var t;return(t=this.tokens[e])!=null?t[0]:void 0},e}(),r=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],t.INVERSES=h={},o=[],s=[];for(y=0,b=r.length;y","=>","[","(","{","--","++"],c=["+","-"],u=["->","=>","{","[",","],f=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],v=["ELSE","->","=>","TRY","FINALLY","THEN"],d=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],p=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(e,t,n){var r,i,s;t.starts=function(e,t,n){return t===e.substr(n,t.length)},t.ends=function(e,t,n){var r;return r=t.length,t===e.substr(e.length-r-(n||0),r)},t.compact=function(e){var t,n,r,i;i=[];for(n=0,r=e.length;n":51,"=>":52,OptComma:53,",":54,Param:55,ParamVar:56,"...":57,Array:58,Object:59,Splat:60,SimpleAssignable:61,Accessor:62,Parenthetical:63,Range:64,This:65,".":66,"?.":67,"::":68,Index:69,INDEX_START:70,IndexValue:71,INDEX_END:72,INDEX_SOAK:73,Slice:74,"{":75,AssignList:76,"}":77,CLASS:78,EXTENDS:79,OptFuncExist:80,Arguments:81,SUPER:82,FUNC_EXIST:83,CALL_START:84,CALL_END:85,ArgList:86,THIS:87,"@":88,"[":89,"]":90,RangeDots:91,"..":92,Arg:93,SimpleArgs:94,TRY:95,Catch:96,FINALLY:97,CATCH:98,THROW:99,"(":100,")":101,WhileSource:102,WHILE:103,WHEN:104,UNTIL:105,Loop:106,LOOP:107,ForBody:108,FOR:109,ForStart:110,ForSource:111,ForVariables:112,OWN:113,ForValue:114,FORIN:115,FOROF:116,BY:117,SWITCH:118,Whens:119,ELSE:120,When:121,LEADING_WHEN:122,IfBlock:123,IF:124,POST_IF:125,UNARY:126,"-":127,"+":128,"--":129,"++":130,"?":131,MATH:132,SHIFT:133,COMPARE:134,LOGIC:135,RELATION:136,COMPOUND_ASSIGN:137,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",70:"INDEX_START",72:"INDEX_END",73:"INDEX_SOAK",75:"{",77:"}",78:"CLASS",79:"EXTENDS",82:"SUPER",83:"FUNC_EXIST",84:"CALL_START",85:"CALL_END",87:"THIS",88:"@",89:"[",90:"]",92:"..",95:"TRY",97:"FINALLY",98:"CATCH",99:"THROW",100:"(",101:")",103:"WHILE",104:"WHEN",105:"UNTIL",107:"LOOP",109:"FOR",113:"OWN",115:"FORIN",116:"FOROF",117:"BY",118:"SWITCH",120:"ELSE",122:"LEADING_WHEN",124:"IF",125:"POST_IF",126:"UNARY",127:"-",128:"+",129:"--",130:"++",131:"?",132:"MATH",133:"SHIFT",134:"COMPARE",135:"LOGIC",136:"RELATION",137:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[10,2],[10,1],[11,1],[15,5],[15,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[13,1],[13,1],[13,1],[13,1],[13,1],[62,2],[62,2],[62,2],[62,1],[62,1],[69,3],[69,2],[71,1],[71,1],[59,4],[76,0],[76,1],[76,3],[76,4],[76,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[80,0],[80,1],[81,2],[81,4],[65,1],[65,1],[44,2],[58,2],[58,4],[91,1],[91,1],[64,5],[74,3],[74,2],[74,2],[74,1],[86,1],[86,3],[86,4],[86,4],[86,6],[93,1],[93,1],[94,1],[94,3],[19,2],[19,3],[19,4],[19,5],[96,3],[24,2],[63,3],[63,5],[102,2],[102,4],[102,2],[102,4],[20,2],[20,2],[20,2],[20,1],[106,2],[106,2],[21,2],[21,2],[21,2],[108,2],[108,2],[110,2],[110,3],[114,1],[114,1],[114,1],[114,1],[112,1],[112,3],[111,2],[111,2],[111,4],[111,4],[111,4],[111,6],[111,6],[22,5],[22,7],[22,4],[22,6],[119,1],[119,2],[121,3],[121,4],[123,3],[123,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,3]],performAction:function(t,n,r,i,s,o,u){var a=o.length-1;switch(s){case 1:return this.$=new i.Block;case 2:return this.$=o[a];case 3:return this.$=o[a-1];case 4:this.$=i.Block.wrap([o[a]]);break;case 5:this.$=o[a-2].push(o[a]);break;case 6:this.$=o[a-1];break;case 7:this.$=o[a];break;case 8:this.$=o[a];break;case 9:this.$=o[a];break;case 10:this.$=o[a];break;case 11:this.$=new i.Literal(o[a]);break;case 12:this.$=o[a];break;case 13:this.$=o[a];break;case 14:this.$=o[a];break;case 15:this.$=o[a];break;case 16:this.$=o[a];break;case 17:this.$=o[a];break;case 18:this.$=o[a];break;case 19:this.$=o[a];break;case 20:this.$=o[a];break;case 21:this.$=o[a];break;case 22:this.$=o[a];break;case 23:this.$=o[a];break;case 24:this.$=new i.Block;break;case 25:this.$=o[a-1];break;case 26:this.$=new i.Literal(o[a]);break;case 27:this.$=new i.Literal(o[a]);break;case 28:this.$=new i.Literal(o[a]);break;case 29:this.$=o[a];break;case 30:this.$=new i.Literal(o[a]);break;case 31:this.$=new i.Literal(o[a]);break;case 32:this.$=new i.Literal(o[a]);break;case 33:this.$=new i.Undefined;break;case 34:this.$=new i.Null;break;case 35:this.$=new i.Bool(o[a]);break;case 36:this.$=new i.Assign(o[a-2],o[a]);break;case 37:this.$=new i.Assign(o[a-3],o[a]);break;case 38:this.$=new i.Assign(o[a-4],o[a-1]);break;case 39:this.$=new i.Value(o[a]);break;case 40:this.$=new i.Assign(new i.Value(o[a-2]),o[a],"object");break;case 41:this.$=new i.Assign(new i.Value(o[a-4]),o[a-1],"object");break;case 42:this.$=o[a];break;case 43:this.$=o[a];break;case 44:this.$=o[a];break;case 45:this.$=o[a];break;case 46:this.$=new i.Return(o[a]);break;case 47:this.$=new i.Return;break;case 48:this.$=new i.Comment(o[a]);break;case 49:this.$=new i.Code(o[a-3],o[a],o[a-1]);break;case 50:this.$=new i.Code([],o[a],o[a-1]);break;case 51:this.$="func";break;case 52:this.$="boundfunc";break;case 53:this.$=o[a];break;case 54:this.$=o[a];break;case 55:this.$=[];break;case 56:this.$=[o[a]];break;case 57:this.$=o[a-2].concat(o[a]);break;case 58:this.$=o[a-3].concat(o[a]);break;case 59:this.$=o[a-5].concat(o[a-2]);break;case 60:this.$=new i.Param(o[a]);break;case 61:this.$=new i.Param(o[a-1],null,!0);break;case 62:this.$=new i.Param(o[a-2],o[a]);break;case 63:this.$=o[a];break;case 64:this.$=o[a];break;case 65:this.$=o[a];break;case 66:this.$=o[a];break;case 67:this.$=new i.Splat(o[a-1]);break;case 68:this.$=new i.Value(o[a]);break;case 69:this.$=o[a-1].add(o[a]);break;case 70:this.$=new i.Value(o[a-1],[].concat(o[a]));break;case 71:this.$=o[a];break;case 72:this.$=o[a];break;case 73:this.$=new i.Value(o[a]);break;case 74:this.$=new i.Value(o[a]);break;case 75:this.$=o[a];break;case 76:this.$=new i.Value(o[a]);break;case 77:this.$=new i.Value(o[a]);break;case 78:this.$=new i.Value(o[a]);break;case 79:this.$=o[a];break;case 80:this.$=new i.Access(o[a]);break;case 81:this.$=new i.Access(o[a],"soak");break;case 82:this.$=[new i.Access(new i.Literal("prototype")),new i.Access(o[a])];break;case 83:this.$=new i.Access(new i.Literal("prototype"));break;case 84:this.$=o[a];break;case 85:this.$=o[a-1];break;case 86:this.$=i.extend(o[a],{soak:!0});break;case 87:this.$=new i.Index(o[a]);break;case 88:this.$=new i.Slice(o[a]);break;case 89:this.$=new i.Obj(o[a-2],o[a-3].generated);break;case 90:this.$=[];break;case 91:this.$=[o[a]];break;case 92:this.$=o[a-2].concat(o[a]);break;case 93:this.$=o[a-3].concat(o[a]);break;case 94:this.$=o[a-5].concat(o[a-2]);break;case 95:this.$=new i.Class;break;case 96:this.$=new i.Class(null,null,o[a]);break;case 97:this.$=new i.Class(null,o[a]);break;case 98:this.$=new i.Class(null,o[a-1],o[a]);break;case 99:this.$=new i.Class(o[a]);break;case 100:this.$=new i.Class(o[a-1],null,o[a]);break;case 101:this.$=new i.Class(o[a-2],o[a]);break;case 102:this.$=new i.Class(o[a-3],o[a-1],o[a]);break;case 103:this.$=new i.Call(o[a-2],o[a],o[a-1]);break;case 104:this.$=new i.Call(o[a-2],o[a],o[a-1]);break;case 105:this.$=new i.Call("super",[new i.Splat(new i.Literal("arguments"))]);break;case 106:this.$=new i.Call("super",o[a]);break;case 107:this.$=!1;break;case 108:this.$=!0;break;case 109:this.$=[];break;case 110:this.$=o[a-2];break;case 111:this.$=new i.Value(new i.Literal("this"));break;case 112:this.$=new i.Value(new i.Literal("this"));break;case 113:this.$=new i.Value(new i.Literal("this"),[new i.Access(o[a])],"this");break;case 114:this.$=new i.Arr([]);break;case 115:this.$=new i.Arr(o[a-2]);break;case 116:this.$="inclusive";break;case 117:this.$="exclusive";break;case 118:this.$=new i.Range(o[a-3],o[a-1],o[a-2]);break;case 119:this.$=new i.Range(o[a-2],o[a],o[a-1]);break;case 120:this.$=new i.Range(o[a-1],null,o[a]);break;case 121:this.$=new i.Range(null,o[a],o[a-1]);break;case 122:this.$=new i.Range(null,null,o[a]);break;case 123:this.$=[o[a]];break;case 124:this.$=o[a-2].concat(o[a]);break;case 125:this.$=o[a-3].concat(o[a]);break;case 126:this.$=o[a-2];break;case 127:this.$=o[a-5].concat(o[a-2]);break;case 128:this.$=o[a];break;case 129:this.$=o[a];break;case 130:this.$=o[a];break;case 131:this.$=[].concat(o[a-2],o[a]);break;case 132:this.$=new i.Try(o[a]);break;case 133:this.$=new i.Try(o[a-1],o[a][0],o[a][1]);break;case 134:this.$=new i.Try(o[a-2],null,null,o[a]);break;case 135:this.$=new i.Try(o[a-3],o[a-2][0],o[a-2][1],o[a]);break;case 136:this.$=[o[a-1],o[a]];break;case 137:this.$=new i.Throw(o[a]);break;case 138:this.$=new i.Parens(o[a-1]);break;case 139:this.$=new i.Parens(o[a-2]);break;case 140:this.$=new i.While(o[a]);break;case 141:this.$=new i.While(o[a-2],{guard:o[a]});break;case 142:this.$=new i.While(o[a],{invert:!0});break;case 143:this.$=new i.While(o[a-2],{invert:!0,guard:o[a]});break;case 144:this.$=o[a-1].addBody(o[a]);break;case 145:this.$=o[a].addBody(i.Block.wrap([o[a-1]]));break;case 146:this.$=o[a].addBody(i.Block.wrap([o[a-1]]));break;case 147:this.$=o[a];break;case 148:this.$=(new i.While(new i.Literal("true"))).addBody(o[a]);break;case 149:this.$=(new i.While(new i.Literal("true"))).addBody(i.Block.wrap([o[a]]));break;case 150:this.$=new i.For(o[a-1],o[a]);break;case 151:this.$=new i.For(o[a-1],o[a]);break;case 152:this.$=new i.For(o[a],o[a-1]);break;case 153:this.$={source:new i.Value(o[a])};break;case 154:this.$=function(){return o[a].own=o[a-1].own,o[a].name=o[a-1][0],o[a].index=o[a-1][1],o[a]}();break;case 155:this.$=o[a];break;case 156:this.$=function(){return o[a].own=!0,o[a]}();break;case 157:this.$=o[a];break;case 158:this.$=o[a];break;case 159:this.$=new i.Value(o[a]);break;case 160:this.$=new i.Value(o[a]);break;case 161:this.$=[o[a]];break;case 162:this.$=[o[a-2],o[a]];break;case 163:this.$={source:o[a]};break;case 164:this.$={source:o[a],object:!0};break;case 165:this.$={source:o[a-2],guard:o[a]};break;case 166:this.$={source:o[a-2],guard:o[a],object:!0};break;case 167:this.$={source:o[a-2],step:o[a]};break;case 168:this.$={source:o[a-4],guard:o[a-2],step:o[a]};break;case 169:this.$={source:o[a-4],step:o[a-2],guard:o[a]};break;case 170:this.$=new i.Switch(o[a-3],o[a-1]);break;case 171:this.$=new i.Switch(o[a-5],o[a-3],o[a-1]);break;case 172:this.$=new i.Switch(null,o[a-1]);break;case 173:this.$=new i.Switch(null,o[a-3],o[a-1]);break;case 174:this.$=o[a];break;case 175:this.$=o[a-1].concat(o[a]);break;case 176:this.$=[[o[a-1],o[a]]];break;case 177:this.$=[[o[a-2],o[a-1]]];break;case 178:this.$=new i.If(o[a-1],o[a],{type:o[a-2]});break;case 179:this.$=o[a-4].addElse(new i.If(o[a-1],o[a],{type:o[a-2]}));break;case 180:this.$=o[a];break;case 181:this.$=o[a-2].addElse(o[a]);break;case 182:this.$=new i.If(o[a],i.Block.wrap([o[a-2]]),{type:o[a-1],statement:!0});break;case 183:this.$=new i.If(o[a],i.Block.wrap([o[a-2]]),{type:o[a-1],statement:!0});break;case 184:this.$=new i.Op(o[a-1],o[a]);break;case 185:this.$=new i.Op("-",o[a]);break;case 186:this.$=new i.Op("+",o[a]);break;case 187:this.$=new i.Op("--",o[a]);break;case 188:this.$=new i.Op("++",o[a]);break;case 189:this.$=new i.Op("--",o[a-1],null,!0);break;case 190:this.$=new i.Op("++",o[a-1],null,!0);break;case 191:this.$=new i.Existence(o[a-1]);break;case 192:this.$=new i.Op("+",o[a-2],o[a]);break;case 193:this.$=new i.Op("-",o[a-2],o[a]);break;case 194:this.$=new i.Op(o[a-1],o[a-2],o[a]);break;case 195:this.$=new i.Op(o[a-1],o[a-2],o[a]);break;case 196:this.$=new i.Op(o[a-1],o[a-2],o[a]);break;case 197:this.$=new i.Op(o[a-1],o[a-2],o[a]);break;case 198:this.$=function(){return o[a-1].charAt(0)==="!"?(new i.Op(o[a-1].slice(1),o[a-2],o[a])).invert():new i.Op(o[a-1],o[a-2],o[a])}();break;case 199:this.$=new i.Assign(o[a-2],o[a],o[a-1]);break;case 200:this.$=new i.Assign(o[a-4],o[a-1],o[a-3]);break;case 201:this.$=new i.Extends(o[a-2],o[a])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{6:[1,75]},{1:[2,4],6:[2,4],26:[2,4],101:[2,4]},{4:77,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,76],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,7],6:[2,7],26:[2,7],101:[2,7],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,8],6:[2,8],26:[2,8],101:[2,8],102:90,103:[1,65],105:[1,66],108:91,109:[1,68],110:69,125:[1,89]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:93,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],72:[2,12],73:[1,100],77:[2,12],80:92,83:[1,94],84:[2,107],85:[2,12],90:[2,12],92:[2,12],101:[2,12],103:[2,12],104:[2,12],105:[2,12],109:[2,12],117:[2,12],125:[2,12],127:[2,12],128:[2,12],131:[2,12],132:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],62:102,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],72:[2,13],73:[1,100],77:[2,13],80:101,83:[1,94],84:[2,107],85:[2,13],90:[2,13],92:[2,13],101:[2,13],103:[2,13],104:[2,13],105:[2,13],109:[2,13],117:[2,13],125:[2,13],127:[2,13],128:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],72:[2,14],77:[2,14],85:[2,14],90:[2,14],92:[2,14],101:[2,14],103:[2,14],104:[2,14],105:[2,14],109:[2,14],117:[2,14],125:[2,14],127:[2,14],128:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],72:[2,15],77:[2,15],85:[2,15],90:[2,15],92:[2,15],101:[2,15],103:[2,15],104:[2,15],105:[2,15],109:[2,15],117:[2,15],125:[2,15],127:[2,15],128:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],72:[2,16],77:[2,16],85:[2,16],90:[2,16],92:[2,16],101:[2,16],103:[2,16],104:[2,16],105:[2,16],109:[2,16],117:[2,16],125:[2,16],127:[2,16],128:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],72:[2,17],77:[2,17],85:[2,17],90:[2,17],92:[2,17],101:[2,17],103:[2,17],104:[2,17],105:[2,17],109:[2,17],117:[2,17],125:[2,17],127:[2,17],128:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],72:[2,18],77:[2,18],85:[2,18],90:[2,18],92:[2,18],101:[2,18],103:[2,18],104:[2,18],105:[2,18],109:[2,18],117:[2,18],125:[2,18],127:[2,18],128:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],72:[2,19],77:[2,19],85:[2,19],90:[2,19],92:[2,19],101:[2,19],103:[2,19],104:[2,19],105:[2,19],109:[2,19],117:[2,19],125:[2,19],127:[2,19],128:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19],135:[2,19],136:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],72:[2,20],77:[2,20],85:[2,20],90:[2,20],92:[2,20],101:[2,20],103:[2,20],104:[2,20],105:[2,20],109:[2,20],117:[2,20],125:[2,20],127:[2,20],128:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],72:[2,21],77:[2,21],85:[2,21],90:[2,21],92:[2,21],101:[2,21],103:[2,21],104:[2,21],105:[2,21],109:[2,21],117:[2,21],125:[2,21],127:[2,21],128:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],72:[2,22],77:[2,22],85:[2,22],90:[2,22],92:[2,22],101:[2,22],103:[2,22],104:[2,22],105:[2,22],109:[2,22],117:[2,22],125:[2,22],127:[2,22],128:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],72:[2,23],77:[2,23],85:[2,23],90:[2,23],92:[2,23],101:[2,23],103:[2,23],104:[2,23],105:[2,23],109:[2,23],117:[2,23],125:[2,23],127:[2,23],128:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23]},{1:[2,9],6:[2,9],26:[2,9],101:[2,9],103:[2,9],105:[2,9],109:[2,9],125:[2,9]},{1:[2,10],6:[2,10],26:[2,10],101:[2,10],103:[2,10],105:[2,10],109:[2,10],125:[2,10]},{1:[2,11],6:[2,11],26:[2,11],101:[2,11],103:[2,11],105:[2,11],109:[2,11],125:[2,11]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,103],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],70:[2,75],72:[2,75],73:[2,75],77:[2,75],83:[2,75],84:[2,75],85:[2,75],90:[2,75],92:[2,75],101:[2,75],103:[2,75],104:[2,75],105:[2,75],109:[2,75],117:[2,75],125:[2,75],127:[2,75],128:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],70:[2,76],72:[2,76],73:[2,76],77:[2,76],83:[2,76],84:[2,76],85:[2,76],90:[2,76],92:[2,76],101:[2,76],103:[2,76],104:[2,76],105:[2,76],109:[2,76],117:[2,76],125:[2,76],127:[2,76],128:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],70:[2,77],72:[2,77],73:[2,77],77:[2,77],83:[2,77],84:[2,77],85:[2,77],90:[2,77],92:[2,77],101:[2,77],103:[2,77],104:[2,77],105:[2,77],109:[2,77],117:[2,77],125:[2,77],127:[2,77],128:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],70:[2,78],72:[2,78],73:[2,78],77:[2,78],83:[2,78],84:[2,78],85:[2,78],90:[2,78],92:[2,78],101:[2,78],103:[2,78],104:[2,78],105:[2,78],109:[2,78],117:[2,78],125:[2,78],127:[2,78],128:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],70:[2,79],72:[2,79],73:[2,79],77:[2,79],83:[2,79],84:[2,79],85:[2,79],90:[2,79],92:[2,79],101:[2,79],103:[2,79],104:[2,79],105:[2,79],109:[2,79],117:[2,79],125:[2,79],127:[2,79],128:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],70:[2,105],72:[2,105],73:[2,105],77:[2,105],81:104,83:[2,105],84:[1,105],85:[2,105],90:[2,105],92:[2,105],101:[2,105],103:[2,105],104:[2,105],105:[2,105],109:[2,105],117:[2,105],125:[2,105],127:[2,105],128:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105]},{6:[2,55],25:[2,55],27:109,28:[1,73],44:110,48:106,49:[2,55],54:[2,55],55:107,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{5:115,25:[1,5]},{8:116,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:118,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:119,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{13:121,14:122,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:123,44:63,58:47,59:48,61:120,63:25,64:26,65:27,75:[1,70],82:[1,28],87:[1,58],88:[1,59],89:[1,57],100:[1,56]},{13:121,14:122,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:123,44:63,58:47,59:48,61:124,63:25,64:26,65:27,75:[1,70],82:[1,28],87:[1,58],88:[1,59],89:[1,57],100:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,72],73:[2,72],77:[2,72],79:[1,128],83:[2,72],84:[2,72],85:[2,72],90:[2,72],92:[2,72],101:[2,72],103:[2,72],104:[2,72],105:[2,72],109:[2,72],117:[2,72],125:[2,72],127:[2,72],128:[2,72],129:[1,125],130:[1,126],131:[2,72],132:[2,72],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[1,127]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],49:[2,180],54:[2,180],57:[2,180],72:[2,180],77:[2,180],85:[2,180],90:[2,180],92:[2,180],101:[2,180],103:[2,180],104:[2,180],105:[2,180],109:[2,180],117:[2,180],120:[1,129],125:[2,180],127:[2,180],128:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180],135:[2,180],136:[2,180]},{5:130,25:[1,5]},{5:131,25:[1,5]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],72:[2,147],77:[2,147],85:[2,147],90:[2,147],92:[2,147],101:[2,147],103:[2,147],104:[2,147],105:[2,147],109:[2,147],117:[2,147],125:[2,147],127:[2,147],128:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147],135:[2,147],136:[2,147]},{5:132,25:[1,5]},{8:133,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,134],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,95],5:135,6:[2,95],13:121,14:122,25:[1,5],26:[2,95],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:123,44:63,49:[2,95],54:[2,95],57:[2,95],58:47,59:48,61:137,63:25,64:26,65:27,72:[2,95],75:[1,70],77:[2,95],79:[1,136],82:[1,28],85:[2,95],87:[1,58],88:[1,59],89:[1,57],90:[2,95],92:[2,95],100:[1,56],101:[2,95],103:[2,95],104:[2,95],105:[2,95],109:[2,95],117:[2,95],125:[2,95],127:[2,95],128:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95],135:[2,95],136:[2,95]},{8:138,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,47],6:[2,47],8:139,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,47],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],101:[2,47],102:39,103:[2,47],105:[2,47],106:40,107:[1,67],108:41,109:[2,47],110:69,118:[1,42],123:37,124:[1,64],125:[2,47],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],54:[2,48],77:[2,48],101:[2,48],103:[2,48],105:[2,48],109:[2,48],125:[2,48]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],70:[2,73],72:[2,73],73:[2,73],77:[2,73],83:[2,73],84:[2,73],85:[2,73],90:[2,73],92:[2,73],101:[2,73],103:[2,73],104:[2,73],105:[2,73],109:[2,73],117:[2,73],125:[2,73],127:[2,73],128:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],70:[2,74],72:[2,74],73:[2,74],77:[2,74],83:[2,74],84:[2,74],85:[2,74],90:[2,74],92:[2,74],101:[2,74],103:[2,74],104:[2,74],105:[2,74],109:[2,74],117:[2,74],125:[2,74],127:[2,74],128:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],70:[2,29],72:[2,29],73:[2,29],77:[2,29],83:[2,29],84:[2,29],85:[2,29],90:[2,29],92:[2,29],101:[2,29],103:[2,29],104:[2,29],105:[2,29],109:[2,29],117:[2,29],125:[2,29],127:[2,29],128:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],70:[2,30],72:[2,30],73:[2,30],77:[2,30],83:[2,30],84:[2,30],85:[2,30],90:[2,30],92:[2,30],101:[2,30],103:[2,30],104:[2,30],105:[2,30],109:[2,30],117:[2,30],125:[2,30],127:[2,30],128:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30],135:[2,30],136:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],70:[2,31],72:[2,31],73:[2,31],77:[2,31],83:[2,31],84:[2,31],85:[2,31],90:[2,31],92:[2,31],101:[2,31],103:[2,31],104:[2,31],105:[2,31],109:[2,31],117:[2,31],125:[2,31],127:[2,31],128:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],70:[2,32],72:[2,32],73:[2,32],77:[2,32],83:[2,32],84:[2,32],85:[2,32],90:[2,32],92:[2,32],101:[2,32],103:[2,32],104:[2,32],105:[2,32],109:[2,32],117:[2,32],125:[2,32],127:[2,32],128:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],70:[2,33],72:[2,33],73:[2,33],77:[2,33],83:[2,33],84:[2,33],85:[2,33],90:[2,33],92:[2,33],101:[2,33],103:[2,33],104:[2,33],105:[2,33],109:[2,33],117:[2,33],125:[2,33],127:[2,33],128:[2,33],131:[2,33],132:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],70:[2,34],72:[2,34],73:[2,34],77:[2,34],83:[2,34],84:[2,34],85:[2,34],90:[2,34],92:[2,34],101:[2,34],103:[2,34],104:[2,34],105:[2,34],109:[2,34],117:[2,34],125:[2,34],127:[2,34],128:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],66:[2,35],67:[2,35],68:[2,35],70:[2,35],72:[2,35],73:[2,35],77:[2,35],83:[2,35],84:[2,35],85:[2,35],90:[2,35],92:[2,35],101:[2,35],103:[2,35],104:[2,35],105:[2,35],109:[2,35],117:[2,35],125:[2,35],127:[2,35],128:[2,35],131:[2,35],132:[2,35],133:[2,35],134:[2,35],135:[2,35],136:[2,35]},{4:140,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,141],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:142,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:144,87:[1,58],88:[1,59],89:[1,57],90:[1,143],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],70:[2,111],72:[2,111],73:[2,111],77:[2,111],83:[2,111],84:[2,111],85:[2,111],90:[2,111],92:[2,111],101:[2,111],103:[2,111],104:[2,111],105:[2,111],109:[2,111],117:[2,111],125:[2,111],127:[2,111],128:[2,111],131:[2,111],132:[2,111],133:[2,111],134:[2,111],135:[2,111],136:[2,111]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],27:148,28:[1,73],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],70:[2,112],72:[2,112],73:[2,112],77:[2,112],83:[2,112],84:[2,112],85:[2,112],90:[2,112],92:[2,112],101:[2,112],103:[2,112],104:[2,112],105:[2,112],109:[2,112],117:[2,112],125:[2,112],127:[2,112],128:[2,112],131:[2,112],132:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112]},{25:[2,51]},{25:[2,52]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],70:[2,68],72:[2,68],73:[2,68],77:[2,68],79:[2,68],83:[2,68],84:[2,68],85:[2,68],90:[2,68],92:[2,68],101:[2,68],103:[2,68],104:[2,68],105:[2,68],109:[2,68],117:[2,68],125:[2,68],127:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],70:[2,71],72:[2,71],73:[2,71],77:[2,71],79:[2,71],83:[2,71],84:[2,71],85:[2,71],90:[2,71],92:[2,71],101:[2,71],103:[2,71],104:[2,71],105:[2,71],109:[2,71],117:[2,71],125:[2,71],127:[2,71],128:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71]},{8:149,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:150,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:151,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{5:152,8:153,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{27:158,28:[1,73],44:159,58:160,59:161,64:154,75:[1,70],88:[1,113],89:[1,57],112:155,113:[1,156],114:157},{111:162,115:[1,163],116:[1,164]},{6:[2,90],11:168,25:[2,90],27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:166,42:167,44:171,46:[1,46],54:[2,90],76:165,77:[2,90],88:[1,113]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],70:[2,27],72:[2,27],73:[2,27],77:[2,27],83:[2,27],84:[2,27],85:[2,27],90:[2,27],92:[2,27],101:[2,27],103:[2,27],104:[2,27],105:[2,27],109:[2,27],117:[2,27],125:[2,27],127:[2,27],128:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],43:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],70:[2,28],72:[2,28],73:[2,28],77:[2,28],83:[2,28],84:[2,28],85:[2,28],90:[2,28],92:[2,28],101:[2,28],103:[2,28],104:[2,28],105:[2,28],109:[2,28],117:[2,28],125:[2,28],127:[2,28],128:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28],135:[2,28],136:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],40:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],70:[2,26],72:[2,26],73:[2,26],77:[2,26],79:[2,26],83:[2,26],84:[2,26],85:[2,26],90:[2,26],92:[2,26],101:[2,26],103:[2,26],104:[2,26],105:[2,26],109:[2,26],115:[2,26],116:[2,26],117:[2,26],125:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26]},{1:[2,6],6:[2,6],7:172,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],101:[2,6],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],72:[2,24],77:[2,24],85:[2,24],90:[2,24],92:[2,24],97:[2,24],98:[2,24],101:[2,24],103:[2,24],104:[2,24],105:[2,24],109:[2,24],117:[2,24],120:[2,24],122:[2,24],125:[2,24],127:[2,24],128:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24]},{6:[1,74],26:[1,173]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],72:[2,191],77:[2,191],85:[2,191],90:[2,191],92:[2,191],101:[2,191],103:[2,191],104:[2,191],105:[2,191],109:[2,191],117:[2,191],125:[2,191],127:[2,191],128:[2,191],131:[2,191],132:[2,191],133:[2,191],134:[2,191],135:[2,191],136:[2,191]},{8:174,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:175,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:176,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:177,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:178,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:179,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:180,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:181,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],72:[2,146],77:[2,146],85:[2,146],90:[2,146],92:[2,146],101:[2,146],103:[2,146],104:[2,146],105:[2,146],109:[2,146],117:[2,146],125:[2,146],127:[2,146],128:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146],135:[2,146],136:[2,146]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],72:[2,151],77:[2,151],85:[2,151],90:[2,151],92:[2,151],101:[2,151],103:[2,151],104:[2,151],105:[2,151],109:[2,151],117:[2,151],125:[2,151],127:[2,151],128:[2,151],131:[2,151],132:[2,151],133:[2,151],134:[2,151],135:[2,151],136:[2,151]},{8:182,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],72:[2,145],77:[2,145],85:[2,145],90:[2,145],92:[2,145],101:[2,145],103:[2,145],104:[2,145],105:[2,145],109:[2,145],117:[2,145],125:[2,145],127:[2,145],128:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145],135:[2,145],136:[2,145]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],72:[2,150],77:[2,150],85:[2,150],90:[2,150],92:[2,150],101:[2,150],103:[2,150],104:[2,150],105:[2,150],109:[2,150],117:[2,150],125:[2,150],127:[2,150],128:[2,150],131:[2,150],132:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150]},{81:183,84:[1,105]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],70:[2,69],72:[2,69],73:[2,69],77:[2,69],79:[2,69],83:[2,69],84:[2,69],85:[2,69],90:[2,69],92:[2,69],101:[2,69],103:[2,69],104:[2,69],105:[2,69],109:[2,69],117:[2,69],125:[2,69],127:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69]},{84:[2,108]},{27:184,28:[1,73]},{27:185,28:[1,73]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],27:186,28:[1,73],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],70:[2,83],72:[2,83],73:[2,83],77:[2,83],79:[2,83],83:[2,83],84:[2,83],85:[2,83],90:[2,83],92:[2,83],101:[2,83],103:[2,83],104:[2,83],105:[2,83],109:[2,83],117:[2,83],125:[2,83],127:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],70:[2,84],72:[2,84],73:[2,84],77:[2,84],79:[2,84],83:[2,84],84:[2,84],85:[2,84],90:[2,84],92:[2,84],101:[2,84],103:[2,84],104:[2,84],105:[2,84],109:[2,84],117:[2,84],125:[2,84],127:[2,84],128:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84]},{8:188,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],57:[1,192],58:47,59:48,61:36,63:25,64:26,65:27,71:187,74:189,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],91:190,92:[1,191],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{69:193,70:[1,99],73:[1,100]},{81:194,84:[1,105]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],70:[2,70],72:[2,70],73:[2,70],77:[2,70],79:[2,70],83:[2,70],84:[2,70],85:[2,70],90:[2,70],92:[2,70],101:[2,70],103:[2,70],104:[2,70],105:[2,70],109:[2,70],117:[2,70],125:[2,70],127:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70]},{6:[1,196],8:195,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,197],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],70:[2,106],72:[2,106],73:[2,106],77:[2,106],83:[2,106],84:[2,106],85:[2,106],90:[2,106],92:[2,106],101:[2,106],103:[2,106],104:[2,106],105:[2,106],109:[2,106],117:[2,106],125:[2,106],127:[2,106],128:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],85:[1,198],86:199,87:[1,58],88:[1,59],89:[1,57],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,53],25:[2,53],49:[1,201],53:203,54:[1,202]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{6:[2,60],25:[2,60],26:[2,60],40:[1,205],49:[2,60],54:[2,60],57:[1,204]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:148,28:[1,73]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:144,87:[1,58],88:[1,59],89:[1,57],90:[1,143],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,50],6:[2,50],25:[2,50],26:[2,50],49:[2,50],54:[2,50],57:[2,50],72:[2,50],77:[2,50],85:[2,50],90:[2,50],92:[2,50],101:[2,50],103:[2,50],104:[2,50],105:[2,50],109:[2,50],117:[2,50],125:[2,50],127:[2,50],128:[2,50],131:[2,50],132:[2,50],133:[2,50],134:[2,50],135:[2,50],136:[2,50]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],72:[2,184],77:[2,184],85:[2,184],90:[2,184],92:[2,184],101:[2,184],102:87,103:[2,184],104:[2,184],105:[2,184],108:88,109:[2,184],110:69,117:[2,184],125:[2,184],127:[2,184],128:[2,184],131:[1,78],132:[2,184],133:[2,184],134:[2,184],135:[2,184],136:[2,184]},{102:90,103:[1,65],105:[1,66],108:91,109:[1,68],110:69,125:[1,89]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],72:[2,185],77:[2,185],85:[2,185],90:[2,185],92:[2,185],101:[2,185],102:87,103:[2,185],104:[2,185],105:[2,185],108:88,109:[2,185],110:69,117:[2,185],125:[2,185],127:[2,185],128:[2,185],131:[1,78],132:[2,185],133:[2,185],134:[2,185],135:[2,185],136:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],72:[2,186],77:[2,186],85:[2,186],90:[2,186],92:[2,186],101:[2,186],102:87,103:[2,186],104:[2,186],105:[2,186],108:88,109:[2,186],110:69,117:[2,186],125:[2,186],127:[2,186],128:[2,186],131:[1,78],132:[2,186],133:[2,186],134:[2,186],135:[2,186],136:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,187],73:[2,72],77:[2,187],83:[2,72],84:[2,72],85:[2,187],90:[2,187],92:[2,187],101:[2,187],103:[2,187],104:[2,187],105:[2,187],109:[2,187],117:[2,187],125:[2,187],127:[2,187],128:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187],135:[2,187],136:[2,187]},{62:93,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],73:[1,100],80:92,83:[1,94],84:[2,107]},{62:102,66:[1,95],67:[1,96],68:[1,97],69:98,70:[1,99],73:[1,100],80:101,83:[1,94],84:[2,107]},{66:[2,75],67:[2,75],68:[2,75],70:[2,75],73:[2,75],83:[2,75],84:[2,75]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,188],73:[2,72],77:[2,188],83:[2,72],84:[2,72],85:[2,188],90:[2,188],92:[2,188],101:[2,188],103:[2,188],104:[2,188],105:[2,188],109:[2,188],117:[2,188],125:[2,188],127:[2,188],128:[2,188],131:[2,188],132:[2,188],133:[2,188],134:[2,188],135:[2,188],136:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],72:[2,189],77:[2,189],85:[2,189],90:[2,189],92:[2,189],101:[2,189],103:[2,189],104:[2,189],105:[2,189],109:[2,189],117:[2,189],125:[2,189],127:[2,189],128:[2,189],131:[2,189],132:[2,189],133:[2,189],134:[2,189],135:[2,189],136:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],72:[2,190],77:[2,190],85:[2,190],90:[2,190],92:[2,190],101:[2,190],103:[2,190],104:[2,190],105:[2,190],109:[2,190],117:[2,190],125:[2,190],127:[2,190],128:[2,190],131:[2,190],132:[2,190],133:[2,190],134:[2,190],135:[2,190],136:[2,190]},{8:206,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,207],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:208,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{5:209,25:[1,5],124:[1,210]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],49:[2,132],54:[2,132],57:[2,132],72:[2,132],77:[2,132],85:[2,132],90:[2,132],92:[2,132],96:211,97:[1,212],98:[1,213],101:[2,132],103:[2,132],104:[2,132],105:[2,132],109:[2,132],117:[2,132],125:[2,132],127:[2,132],128:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132],135:[2,132],136:[2,132]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],72:[2,144],77:[2,144],85:[2,144],90:[2,144],92:[2,144],101:[2,144],103:[2,144],104:[2,144],105:[2,144],109:[2,144],117:[2,144],125:[2,144],127:[2,144],128:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144],135:[2,144],136:[2,144]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],72:[2,152],77:[2,152],85:[2,152],90:[2,152],92:[2,152],101:[2,152],103:[2,152],104:[2,152],105:[2,152],109:[2,152],117:[2,152],125:[2,152],127:[2,152],128:[2,152],131:[2,152],132:[2,152],133:[2,152],134:[2,152],135:[2,152],136:[2,152]},{25:[1,214],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{119:215,121:216,122:[1,217]},{1:[2,96],6:[2,96],25:[2,96],26:[2,96],49:[2,96],54:[2,96],57:[2,96],72:[2,96],77:[2,96],85:[2,96],90:[2,96],92:[2,96],101:[2,96],103:[2,96],104:[2,96],105:[2,96],109:[2,96],117:[2,96],125:[2,96],127:[2,96],128:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96]},{8:218,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,99],5:219,6:[2,99],25:[1,5],26:[2,99],49:[2,99],54:[2,99],57:[2,99],66:[2,72],67:[2,72],68:[2,72],70:[2,72],72:[2,99],73:[2,72],77:[2,99],79:[1,220],83:[2,72],84:[2,72],85:[2,99],90:[2,99],92:[2,99],101:[2,99],103:[2,99],104:[2,99],105:[2,99],109:[2,99],117:[2,99],125:[2,99],127:[2,99],128:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99],135:[2,99],136:[2,99]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],72:[2,137],77:[2,137],85:[2,137],90:[2,137],92:[2,137],101:[2,137],102:87,103:[2,137],104:[2,137],105:[2,137],108:88,109:[2,137],110:69,117:[2,137],125:[2,137],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,46],6:[2,46],26:[2,46],101:[2,46],102:87,103:[2,46],105:[2,46],108:88,109:[2,46],110:69,125:[2,46],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,74],101:[1,221]},{4:222,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,128],25:[2,128],54:[2,128],57:[1,224],90:[2,128],91:223,92:[1,191],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],70:[2,114],72:[2,114],73:[2,114],77:[2,114],83:[2,114],84:[2,114],85:[2,114],90:[2,114],92:[2,114],101:[2,114],103:[2,114],104:[2,114],105:[2,114],109:[2,114],115:[2,114],116:[2,114],117:[2,114],125:[2,114],127:[2,114],128:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114]},{6:[2,53],25:[2,53],53:225,54:[1,226],90:[2,53]},{6:[2,123],25:[2,123],26:[2,123],54:[2,123],85:[2,123],90:[2,123]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:227,87:[1,58],88:[1,59],89:[1,57],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],85:[2,129],90:[2,129]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],40:[2,113],43:[2,113],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],70:[2,113],72:[2,113],73:[2,113],77:[2,113],79:[2,113],83:[2,113],84:[2,113],85:[2,113],90:[2,113],92:[2,113],101:[2,113],103:[2,113],104:[2,113],105:[2,113],109:[2,113],115:[2,113],116:[2,113],117:[2,113],125:[2,113],127:[2,113],128:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113]},{5:228,25:[1,5],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],72:[2,140],77:[2,140],85:[2,140],90:[2,140],92:[2,140],101:[2,140],102:87,103:[1,65],104:[1,229],105:[1,66],108:88,109:[1,68],110:69,117:[2,140],125:[2,140],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],72:[2,142],77:[2,142],85:[2,142],90:[2,142],92:[2,142],101:[2,142],102:87,103:[1,65],104:[1,230],105:[1,66],108:88,109:[1,68],110:69,117:[2,142],125:[2,142],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],72:[2,148],77:[2,148],85:[2,148],90:[2,148],92:[2,148],101:[2,148],103:[2,148],104:[2,148],105:[2,148],109:[2,148],117:[2,148],125:[2,148],127:[2,148],128:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],72:[2,149],77:[2,149],85:[2,149],90:[2,149],92:[2,149],101:[2,149],102:87,103:[1,65],104:[2,149],105:[1,66],108:88,109:[1,68],110:69,117:[2,149],125:[2,149],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],72:[2,153],77:[2,153],85:[2,153],90:[2,153],92:[2,153],101:[2,153],103:[2,153],104:[2,153],105:[2,153],109:[2,153],117:[2,153],125:[2,153],127:[2,153],128:[2,153],131:[2,153],132:[2,153],133:[2,153],134:[2,153],135:[2,153],136:[2,153]},{115:[2,155],116:[2,155]},{27:158,28:[1,73],44:159,58:160,59:161,75:[1,70],88:[1,113],89:[1,114],112:231,114:157},{54:[1,232],115:[2,161],116:[2,161]},{54:[2,157],115:[2,157],116:[2,157]},{54:[2,158],115:[2,158],116:[2,158]},{54:[2,159],115:[2,159],116:[2,159]},{54:[2,160],115:[2,160],116:[2,160]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],72:[2,154],77:[2,154],85:[2,154],90:[2,154],92:[2,154],101:[2,154],103:[2,154],104:[2,154],105:[2,154],109:[2,154],117:[2,154],125:[2,154],127:[2,154],128:[2,154],131:[2,154],132:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154]},{8:233,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:234,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,53],25:[2,53],53:235,54:[1,236],77:[2,53]},{6:[2,91],25:[2,91],26:[2,91],54:[2,91],77:[2,91]},{6:[2,39],25:[2,39],26:[2,39],43:[1,237],54:[2,39],77:[2,39]},{6:[2,42],25:[2,42],26:[2,42],54:[2,42],77:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],77:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],77:[2,44]},{6:[2,45],25:[2,45],26:[2,45],43:[2,45],54:[2,45],77:[2,45]},{1:[2,5],6:[2,5],26:[2,5],101:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],49:[2,25],54:[2,25],57:[2,25],72:[2,25],77:[2,25],85:[2,25],90:[2,25],92:[2,25],97:[2,25],98:[2,25],101:[2,25],103:[2,25],104:[2,25],105:[2,25],109:[2,25],117:[2,25],120:[2,25],122:[2,25],125:[2,25],127:[2,25],128:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],72:[2,192],77:[2,192],85:[2,192],90:[2,192],92:[2,192],101:[2,192],102:87,103:[2,192],104:[2,192],105:[2,192],108:88,109:[2,192],110:69,117:[2,192],125:[2,192],127:[2,192],128:[2,192],131:[1,78],132:[1,81],133:[2,192],134:[2,192],135:[2,192],136:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],72:[2,193],77:[2,193],85:[2,193],90:[2,193],92:[2,193],101:[2,193],102:87,103:[2,193],104:[2,193],105:[2,193],108:88,109:[2,193],110:69,117:[2,193],125:[2,193],127:[2,193],128:[2,193],131:[1,78],132:[1,81],133:[2,193],134:[2,193],135:[2,193],136:[2,193]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],72:[2,194],77:[2,194],85:[2,194],90:[2,194],92:[2,194],101:[2,194],102:87,103:[2,194],104:[2,194],105:[2,194],108:88,109:[2,194],110:69,117:[2,194],125:[2,194],127:[2,194],128:[2,194],131:[1,78],132:[2,194],133:[2,194],134:[2,194],135:[2,194],136:[2,194]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],72:[2,195],77:[2,195],85:[2,195],90:[2,195],92:[2,195],101:[2,195],102:87,103:[2,195],104:[2,195],105:[2,195],108:88,109:[2,195],110:69,117:[2,195],125:[2,195],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[2,195],134:[2,195],135:[2,195],136:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],72:[2,196],77:[2,196],85:[2,196],90:[2,196],92:[2,196],101:[2,196],102:87,103:[2,196],104:[2,196],105:[2,196],108:88,109:[2,196],110:69,117:[2,196],125:[2,196],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[2,196],135:[2,196],136:[1,85]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],72:[2,197],77:[2,197],85:[2,197],90:[2,197],92:[2,197],101:[2,197],102:87,103:[2,197],104:[2,197],105:[2,197],108:88,109:[2,197],110:69,117:[2,197],125:[2,197],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[2,197],136:[1,85]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],72:[2,198],77:[2,198],85:[2,198],90:[2,198],92:[2,198],101:[2,198],102:87,103:[2,198],104:[2,198],105:[2,198],108:88,109:[2,198],110:69,117:[2,198],125:[2,198],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[2,198],135:[2,198],136:[2,198]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],72:[2,183],77:[2,183],85:[2,183],90:[2,183],92:[2,183],101:[2,183],102:87,103:[1,65],104:[2,183],105:[1,66],108:88,109:[1,68],110:69,117:[2,183],125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],72:[2,182],77:[2,182],85:[2,182],90:[2,182],92:[2,182],101:[2,182],102:87,103:[1,65],104:[2,182],105:[1,66],108:88,109:[1,68],110:69,117:[2,182],125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],66:[2,103],67:[2,103],68:[2,103],70:[2,103],72:[2,103],73:[2,103],77:[2,103],83:[2,103],84:[2,103],85:[2,103],90:[2,103],92:[2,103],101:[2,103],103:[2,103],104:[2,103],105:[2,103],109:[2,103],117:[2,103],125:[2,103],127:[2,103],128:[2,103],131:[2,103],132:[2,103],133:[2,103],134:[2,103],135:[2,103],136:[2,103]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],70:[2,80],72:[2,80],73:[2,80],77:[2,80],79:[2,80],83:[2,80],84:[2,80],85:[2,80],90:[2,80],92:[2,80],101:[2,80],103:[2,80],104:[2,80],105:[2,80],109:[2,80],117:[2,80],125:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],70:[2,81],72:[2,81],73:[2,81],77:[2,81],79:[2,81],83:[2,81],84:[2,81],85:[2,81],90:[2,81],92:[2,81],101:[2,81],103:[2,81],104:[2,81],105:[2,81],109:[2,81],117:[2,81],125:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],70:[2,82],72:[2,82],73:[2,82],77:[2,82],79:[2,82],83:[2,82],84:[2,82],85:[2,82],90:[2,82],92:[2,82],101:[2,82],103:[2,82],104:[2,82],105:[2,82],109:[2,82],117:[2,82],125:[2,82],127:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82]},{72:[1,238]},{57:[1,192],72:[2,87],91:239,92:[1,191],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{72:[2,88]},{8:240,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,72:[2,122],75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{12:[2,116],28:[2,116],30:[2,116],31:[2,116],33:[2,116],34:[2,116],35:[2,116],36:[2,116],37:[2,116],38:[2,116],45:[2,116],46:[2,116],47:[2,116],51:[2,116],52:[2,116],72:[2,116],75:[2,116],78:[2,116],82:[2,116],87:[2,116],88:[2,116],89:[2,116],95:[2,116],99:[2,116],100:[2,116],103:[2,116],105:[2,116],107:[2,116],109:[2,116],118:[2,116],124:[2,116],126:[2,116],127:[2,116],128:[2,116],129:[2,116],130:[2,116]},{12:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],72:[2,117],75:[2,117],78:[2,117],82:[2,117],87:[2,117],88:[2,117],89:[2,117],95:[2,117],99:[2,117],100:[2,117],103:[2,117],105:[2,117],107:[2,117],109:[2,117],118:[2,117],124:[2,117],126:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],70:[2,86],72:[2,86],73:[2,86],77:[2,86],79:[2,86],83:[2,86],84:[2,86],85:[2,86],90:[2,86],92:[2,86],101:[2,86],103:[2,86],104:[2,86],105:[2,86],109:[2,86],117:[2,86],125:[2,86],127:[2,86],128:[2,86],129:[2,86],130:[2,86],131:[2,86],132:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],70:[2,104],72:[2,104],73:[2,104],77:[2,104],83:[2,104],84:[2,104],85:[2,104],90:[2,104],92:[2,104],101:[2,104],103:[2,104],104:[2,104],105:[2,104],109:[2,104],117:[2,104],125:[2,104],127:[2,104],128:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],72:[2,36],77:[2,36],85:[2,36],90:[2,36],92:[2,36],101:[2,36],102:87,103:[2,36],104:[2,36],105:[2,36],108:88,109:[2,36],110:69,117:[2,36],125:[2,36],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{8:241,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:242,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],49:[2,109],54:[2,109],57:[2,109],66:[2,109],67:[2,109],68:[2,109],70:[2,109],72:[2,109],73:[2,109],77:[2,109],83:[2,109],84:[2,109],85:[2,109],90:[2,109],92:[2,109],101:[2,109],103:[2,109],104:[2,109],105:[2,109],109:[2,109],117:[2,109],125:[2,109],127:[2,109],128:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109],135:[2,109],136:[2,109]},{6:[2,53],25:[2,53],53:243,54:[1,226],85:[2,53]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],57:[1,244],85:[2,128],90:[2,128],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{50:245,51:[1,60],52:[1,61]},{6:[2,54],25:[2,54],26:[2,54],27:109,28:[1,73],44:110,55:246,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{6:[1,247],25:[1,248]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61]},{8:249,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],72:[2,199],77:[2,199],85:[2,199],90:[2,199],92:[2,199],101:[2,199],102:87,103:[2,199],104:[2,199],105:[2,199],108:88,109:[2,199],110:69,117:[2,199],125:[2,199],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{8:250,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],72:[2,201],77:[2,201],85:[2,201],90:[2,201],92:[2,201],101:[2,201],102:87,103:[2,201],104:[2,201],105:[2,201],108:88,109:[2,201],110:69,117:[2,201],125:[2,201],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],49:[2,181],54:[2,181],57:[2,181],72:[2,181],77:[2,181],85:[2,181],90:[2,181],92:[2,181],101:[2,181],103:[2,181],104:[2,181],105:[2,181],109:[2,181],117:[2,181],125:[2,181],127:[2,181],128:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181],135:[2,181],136:[2,181]},{8:251,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],49:[2,133],54:[2,133],57:[2,133],72:[2,133],77:[2,133],85:[2,133],90:[2,133],92:[2,133],97:[1,252],101:[2,133],103:[2,133],104:[2,133],105:[2,133],109:[2,133],117:[2,133],125:[2,133],127:[2,133],128:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133],135:[2,133],136:[2,133]},{5:253,25:[1,5]},{27:254,28:[1,73]},{119:255,121:216,122:[1,217]},{26:[1,256],120:[1,257],121:258,122:[1,217]},{26:[2,174],120:[2,174],122:[2,174]},{8:260,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],94:259,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,97],5:261,6:[2,97],25:[1,5],26:[2,97],49:[2,97],54:[2,97],57:[2,97],72:[2,97],77:[2,97],85:[2,97],90:[2,97],92:[2,97],101:[2,97],102:87,103:[1,65],104:[2,97],105:[1,66],108:88,109:[1,68],110:69,117:[2,97],125:[2,97],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],49:[2,100],54:[2,100],57:[2,100],72:[2,100],77:[2,100],85:[2,100],90:[2,100],92:[2,100],101:[2,100],103:[2,100],104:[2,100],105:[2,100],109:[2,100],117:[2,100],125:[2,100],127:[2,100],128:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100]},{8:262,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],66:[2,138],67:[2,138],68:[2,138],70:[2,138],72:[2,138],73:[2,138],77:[2,138],83:[2,138],84:[2,138],85:[2,138],90:[2,138],92:[2,138],101:[2,138],103:[2,138],104:[2,138],105:[2,138],109:[2,138],117:[2,138],125:[2,138],127:[2,138],128:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138],135:[2,138],136:[2,138]},{6:[1,74],26:[1,263]},{8:264,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,67],12:[2,117],25:[2,67],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],54:[2,67],75:[2,117],78:[2,117],82:[2,117],87:[2,117],88:[2,117],89:[2,117],90:[2,67],95:[2,117],99:[2,117],100:[2,117],103:[2,117],105:[2,117],107:[2,117],109:[2,117],118:[2,117],124:[2,117],126:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117]},{6:[1,266],25:[1,267],90:[1,265]},{6:[2,54],8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,54],26:[2,54],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],85:[2,54],87:[1,58],88:[1,59],89:[1,57],90:[2,54],93:268,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,53],25:[2,53],26:[2,53],53:269,54:[1,226]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],49:[2,178],54:[2,178],57:[2,178],72:[2,178],77:[2,178],85:[2,178],90:[2,178],92:[2,178],101:[2,178],103:[2,178],104:[2,178],105:[2,178],109:[2,178],117:[2,178],120:[2,178],125:[2,178],127:[2,178],128:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178],135:[2,178],136:[2,178]},{8:270,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:271,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{115:[2,156],116:[2,156]},{27:158,28:[1,73],44:159,58:160,59:161,75:[1,70],88:[1,113],89:[1,114],114:272},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],49:[2,163],54:[2,163],57:[2,163],72:[2,163],77:[2,163],85:[2,163],90:[2,163],92:[2,163],101:[2,163],102:87,103:[2,163],104:[1,273],105:[2,163],108:88,109:[2,163],110:69,117:[1,274],125:[2,163],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],49:[2,164],54:[2,164],57:[2,164],72:[2,164],77:[2,164],85:[2,164],90:[2,164],92:[2,164],101:[2,164],102:87,103:[2,164],104:[1,275],105:[2,164],108:88,109:[2,164],110:69,117:[2,164],125:[2,164],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,277],25:[1,278],77:[1,276]},{6:[2,54],11:168,25:[2,54],26:[2,54],27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:279,42:167,44:171,46:[1,46],77:[2,54],88:[1,113]},{8:280,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,281],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],70:[2,85],72:[2,85],73:[2,85],77:[2,85],79:[2,85],83:[2,85],84:[2,85],85:[2,85],90:[2,85],92:[2,85],101:[2,85],103:[2,85],104:[2,85],105:[2,85],109:[2,85],117:[2,85],125:[2,85],127:[2,85],128:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85]},{8:282,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,72:[2,120],75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{72:[2,121],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],72:[2,37],77:[2,37],85:[2,37],90:[2,37],92:[2,37],101:[2,37],102:87,103:[2,37],104:[2,37],105:[2,37],108:88,109:[2,37],110:69,117:[2,37],125:[2,37],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{26:[1,283],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,266],25:[1,267],85:[1,284]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],85:[2,67],90:[2,67]},{5:285,25:[1,5]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{27:109,28:[1,73],44:110,55:286,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{6:[2,55],25:[2,55],26:[2,55],27:109,28:[1,73],44:110,48:287,54:[2,55],55:107,56:108,58:111,59:112,75:[1,70],88:[1,113],89:[1,114]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{26:[1,288],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{5:289,25:[1,5],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{5:290,25:[1,5]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],72:[2,134],77:[2,134],85:[2,134],90:[2,134],92:[2,134],101:[2,134],103:[2,134],104:[2,134],105:[2,134],109:[2,134],117:[2,134],125:[2,134],127:[2,134],128:[2,134],131:[2,134],132:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134]},{5:291,25:[1,5]},{26:[1,292],120:[1,293],121:258,122:[1,217]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],72:[2,172],77:[2,172],85:[2,172],90:[2,172],92:[2,172],101:[2,172],103:[2,172],104:[2,172],105:[2,172],109:[2,172],117:[2,172],125:[2,172],127:[2,172],128:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172],135:[2,172],136:[2,172]},{5:294,25:[1,5]},{26:[2,175],120:[2,175],122:[2,175]},{5:295,25:[1,5],54:[1,296]},{25:[2,130],54:[2,130],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],49:[2,98],54:[2,98],57:[2,98],72:[2,98],77:[2,98],85:[2,98],90:[2,98],92:[2,98],101:[2,98],103:[2,98],104:[2,98],105:[2,98],109:[2,98],117:[2,98],125:[2,98],127:[2,98],128:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98],135:[2,98],136:[2,98]},{1:[2,101],5:297,6:[2,101],25:[1,5],26:[2,101],49:[2,101],54:[2,101],57:[2,101],72:[2,101],77:[2,101],85:[2,101],90:[2,101],92:[2,101],101:[2,101],102:87,103:[1,65],104:[2,101],105:[1,66],108:88,109:[1,68],110:69,117:[2,101],125:[2,101],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{101:[1,298]},{90:[1,299],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],70:[2,115],72:[2,115],73:[2,115],77:[2,115],83:[2,115],84:[2,115],85:[2,115],90:[2,115],92:[2,115],101:[2,115],103:[2,115],104:[2,115],105:[2,115],109:[2,115],115:[2,115],116:[2,115],117:[2,115],125:[2,115],127:[2,115],128:[2,115],131:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],93:300,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:200,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:147,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],86:301,87:[1,58],88:[1,59],89:[1,57],93:145,95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],85:[2,124],90:[2,124]},{6:[1,266],25:[1,267],26:[1,302]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],72:[2,141],77:[2,141],85:[2,141],90:[2,141],92:[2,141],101:[2,141],102:87,103:[1,65],104:[2,141],105:[1,66],108:88,109:[1,68],110:69,117:[2,141],125:[2,141],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],72:[2,143],77:[2,143],85:[2,143],90:[2,143],92:[2,143],101:[2,143],102:87,103:[1,65],104:[2,143],105:[1,66],108:88,109:[1,68],110:69,117:[2,143],125:[2,143],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{115:[2,162],116:[2,162]},{8:303,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:304,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:305,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,89],6:[2,89],25:[2,89],26:[2,89],40:[2,89],49:[2,89],54:[2,89],57:[2,89],66:[2,89],67:[2,89],68:[2,89],70:[2,89],72:[2,89],73:[2,89],77:[2,89],83:[2,89],84:[2,89],85:[2,89],90:[2,89],92:[2,89],101:[2,89],103:[2,89],104:[2,89],105:[2,89],109:[2,89],115:[2,89],116:[2,89],117:[2,89],125:[2,89],127:[2,89],128:[2,89],131:[2,89],132:[2,89],133:[2,89],134:[2,89],135:[2,89],136:[2,89]},{11:168,27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:306,42:167,44:171,46:[1,46],88:[1,113]},{6:[2,90],11:168,25:[2,90],26:[2,90],27:169,28:[1,73],29:170,30:[1,71],31:[1,72],41:166,42:167,44:171,46:[1,46],54:[2,90],76:307,88:[1,113]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],77:[2,92]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],77:[2,40],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{8:308,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{72:[2,119],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,38],6:[2,38],25:[2,38],26:[2,38],49:[2,38],54:[2,38],57:[2,38],72:[2,38],77:[2,38],85:[2,38],90:[2,38],92:[2,38],101:[2,38],103:[2,38],104:[2,38],105:[2,38],109:[2,38],117:[2,38],125:[2,38],127:[2,38],128:[2,38],131:[2,38],132:[2,38],133:[2,38],134:[2,38],135:[2,38],136:[2,38]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],70:[2,110],72:[2,110],73:[2,110],77:[2,110],83:[2,110],84:[2,110],85:[2,110],90:[2,110],92:[2,110],101:[2,110],103:[2,110],104:[2,110],105:[2,110],109:[2,110],117:[2,110],125:[2,110],127:[2,110],128:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],72:[2,49],77:[2,49],85:[2,49],90:[2,49],92:[2,49],101:[2,49],103:[2,49],104:[2,49],105:[2,49],109:[2,49],117:[2,49],125:[2,49],127:[2,49],128:[2,49],131:[2,49],132:[2,49],133:[2,49],134:[2,49],135:[2,49],136:[2,49]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{6:[2,53],25:[2,53],26:[2,53],53:309,54:[1,202]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],72:[2,200],77:[2,200],85:[2,200],90:[2,200],92:[2,200],101:[2,200],103:[2,200],104:[2,200],105:[2,200],109:[2,200],117:[2,200],125:[2,200],127:[2,200],128:[2,200],131:[2,200],132:[2,200],133:[2,200],134:[2,200],135:[2,200],136:[2,200]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],49:[2,179],54:[2,179],57:[2,179],72:[2,179],77:[2,179],85:[2,179],90:[2,179],92:[2,179],101:[2,179],103:[2,179],104:[2,179],105:[2,179],109:[2,179],117:[2,179],120:[2,179],125:[2,179],127:[2,179],128:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179],135:[2,179],136:[2,179]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],72:[2,135],77:[2,135],85:[2,135],90:[2,135],92:[2,135],101:[2,135],103:[2,135],104:[2,135],105:[2,135],109:[2,135],117:[2,135],125:[2,135],127:[2,135],128:[2,135],131:[2,135],132:[2,135],133:[2,135],134:[2,135],135:[2,135],136:[2,135]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],72:[2,136],77:[2,136],85:[2,136],90:[2,136],92:[2,136],97:[2,136],101:[2,136],103:[2,136],104:[2,136],105:[2,136],109:[2,136],117:[2,136],125:[2,136],127:[2,136],128:[2,136],131:[2,136],132:[2,136],133:[2,136],134:[2,136],135:[2,136],136:[2,136]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],72:[2,170],77:[2,170],85:[2,170],90:[2,170],92:[2,170],101:[2,170],103:[2,170],104:[2,170],105:[2,170],109:[2,170],117:[2,170],125:[2,170],127:[2,170],128:[2,170],131:[2,170],132:[2,170],133:[2,170],134:[2,170],135:[2,170],136:[2,170]},{5:310,25:[1,5]},{26:[1,311]},{6:[1,312],26:[2,176],120:[2,176],122:[2,176]},{8:313,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{1:[2,102],6:[2,102],25:[2,102],26:[2,102],49:[2,102],54:[2,102],57:[2,102],72:[2,102],77:[2,102],85:[2,102],90:[2,102],92:[2,102],101:[2,102],103:[2,102],104:[2,102],105:[2,102],109:[2,102],117:[2,102],125:[2,102],127:[2,102],128:[2,102],131:[2,102],132:[2,102],133:[2,102],134:[2,102],135:[2,102],136:[2,102]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],66:[2,139],67:[2,139],68:[2,139],70:[2,139],72:[2,139],73:[2,139],77:[2,139],83:[2,139],84:[2,139],85:[2,139],90:[2,139],92:[2,139],101:[2,139],103:[2,139],104:[2,139],105:[2,139],109:[2,139],117:[2,139],125:[2,139],127:[2,139],128:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139],135:[2,139],136:[2,139]},{1:[2,118],6:[2,118],25:[2,118],26:[2,118],49:[2,118],54:[2,118],57:[2,118],66:[2,118],67:[2,118],68:[2,118],70:[2,118],72:[2,118],73:[2,118],77:[2,118],83:[2,118],84:[2,118],85:[2,118],90:[2,118],92:[2,118],101:[2,118],103:[2,118],104:[2,118],105:[2,118],109:[2,118],117:[2,118],125:[2,118],127:[2,118],128:[2,118],131:[2,118],132:[2,118],133:[2,118],134:[2,118],135:[2,118],136:[2,118]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],85:[2,125],90:[2,125]},{6:[2,53],25:[2,53],26:[2,53],53:314,54:[1,226]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],85:[2,126],90:[2,126]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],49:[2,165],54:[2,165],57:[2,165],72:[2,165],77:[2,165],85:[2,165],90:[2,165],92:[2,165],101:[2,165],102:87,103:[2,165],104:[2,165],105:[2,165],108:88,109:[2,165],110:69,117:[1,315],125:[2,165],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],72:[2,167],77:[2,167],85:[2,167],90:[2,167],92:[2,167],101:[2,167],102:87,103:[2,167],104:[1,316],105:[2,167],108:88,109:[2,167],110:69,117:[2,167],125:[2,167],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],49:[2,166],54:[2,166],57:[2,166],72:[2,166],77:[2,166],85:[2,166],90:[2,166],92:[2,166],101:[2,166],102:87,103:[2,166],104:[2,166],105:[2,166],108:88,109:[2,166],110:69,117:[2,166],125:[2,166],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],77:[2,93]},{6:[2,53],25:[2,53],26:[2,53],53:317,54:[1,236]},{26:[1,318],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,247],25:[1,248],26:[1,319]},{26:[1,320]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],72:[2,173],77:[2,173],85:[2,173],90:[2,173],92:[2,173],101:[2,173],103:[2,173],104:[2,173],105:[2,173],109:[2,173],117:[2,173],125:[2,173],127:[2,173],128:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173],135:[2,173],136:[2,173]},{26:[2,177],120:[2,177],122:[2,177]},{25:[2,131],54:[2,131],102:87,103:[1,65],105:[1,66],108:88,109:[1,68],110:69,125:[1,86],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[1,266],25:[1,267],26:[1,321]},{8:322,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{8:323,9:117,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,75:[1,70],78:[1,43],82:[1,28],87:[1,58],88:[1,59],89:[1,57],95:[1,38],99:[1,44],100:[1,56],102:39,103:[1,65],105:[1,66],106:40,107:[1,67],108:41,109:[1,68],110:69,118:[1,42],123:37,124:[1,64],126:[1,31],127:[1,32],128:[1,33],129:[1,34],130:[1,35]},{6:[1,277],25:[1,278],26:[1,324]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],77:[2,41]},{6:[2,59],25:[2,59],26:[2,59],49:[2,59],54:[2,59]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],72:[2,171],77:[2,171],85:[2,171],90:[2,171],92:[2,171],101:[2,171],103:[2,171],104:[2,171],105:[2,171],109:[2,171],117:[2,171],125:[2,171],127:[2,171],128:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171],135:[2,171],136:[2,171]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],85:[2,127],90:[2,127]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],72:[2,168],77:[2,168],85:[2,168],90:[2,168],92:[2,168],101:[2,168],102:87,103:[2,168],104:[2,168],105:[2,168],108:88,109:[2,168],110:69,117:[2,168],125:[2,168],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],72:[2,169],77:[2,169],85:[2,169],90:[2,169],92:[2,169],101:[2,169],102:87,103:[2,169],104:[2,169],105:[2,169],108:88,109:[2,169],110:69,117:[2,169],125:[2,169],127:[1,80],128:[1,79],131:[1,78],132:[1,81],133:[1,82],134:[1,83],135:[1,84],136:[1,85]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],77:[2,94]}],defaultActions:{60:[2,51],61:[2,52],75:[2,3],94:[2,108],189:[2,88]},parseError:function(t,n){throw new Error(t)},parse:function(t){function d(e){r.length=r.length-2*e,i.length=i.length-e,s.length=s.length-e}function v(){var e;return e=n.lexer.lex()||1,typeof e!="number"&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u="",a=0,f=0,l=0,c=2,h=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var p=this.lexer.yylloc;s.push(p),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var m,g,y,b,w,E,S={},x,T,N,C;for(;;){y=r[r.length-1],this.defaultActions[y]?b=this.defaultActions[y]:(m==null&&(m=v()),b=o[y]&&o[y][m]);if(typeof b=="undefined"||!b.length||!b[0]){if(!l){C=[];for(x in o[y])this.terminals_[x]&&x>2&&C.push("'"+this.terminals_[x]+"'");var k="";this.lexer.showPosition?k="Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[m]+"'":k="Parse error on line "+(a+1)+": Unexpected "+(m==1?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:C})}if(l==3){if(m==h)throw new Error(k||"Parsing halted.");f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,m=v()}for(;;){if(c.toString()in o[y])break;if(y==0)throw new Error(k||"Parsing halted.");d(1),y=r[r.length-1]}g=m,m=c,y=r[r.length-1],b=o[y]&&o[y][c],l=3}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:r.push(m),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(b[1]),m=null,g?(m=g,g=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:T=this.productions_[b[1]][1],S.$=i[i.length-T],S._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},E=this.performAction.call(S,u,f,a,this.yy,b[1],i,s);if(typeof E!="undefined")return E;T&&(r=r.slice(0,-1*T*2),i=i.slice(0,-1*T),s=s.slice(0,-1*T)),r.push(this.productions_[b[1]][0]),i.push(S.$),s.push(S._$),N=o[r[r.length-2]][r[r.length-1]],r.push(N);break;case 3:return!0}}return!0}};undefined,n.exports=r}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/lexer","ace/mode/coffee/helpers"],function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt,rt,it,st,ot,ut,at,ft,lt,ct,ht,pt={}.hasOwnProperty,dt=function(e,t){function r(){this.constructor=e}for(var n in t)pt.call(t,n)&&(e[n]=t[n]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},vt=[].indexOf||function(e){for(var t=0,n=this.length;t1&&e.level>=T?"("+n+")":n)},t.prototype.compileRoot=function(e){var t,n,r,i,s,o;return e.indent=e.bare?"":X,e.scope=new R(null,this,null),e.level=k,this.spaced=!0,i="",e.bare||(s=function(){var e,t,i,s;i=this.expressions,s=[];for(r=e=0,t=i.length;e=S?"(void 0)":"void 0"},t}(o),t.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return dt(t,e),t.prototype.isAssignable=M,t.prototype.isComplex=M,t.prototype.compileNode=function(){return"null"},t}(o),t.Bool=function(e){function t(e){this.val=e}return dt(t,e),t.prototype.isAssignable=M,t.prototype.isComplex=M,t.prototype.compileNode=function(){return this.val},t}(o),t.Return=F=function(e){function t(e){e&&!e.unwrap().isUndefined&&(this.expression=e)}return dt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Y,t.prototype.makeReturn=V,t.prototype.jumps=V,t.prototype.compile=function(e,n){var r,i;return r=(i=this.expression)!=null?i.makeReturn():void 0,!r||r instanceof t?t.__super__.compile.call(this,e,n):r.compile(e,n)},t.prototype.compileNode=function(e){return this.tab+("return"+[this.expression?" "+this.expression.compile(e,C):void 0]+";")},t}(o),t.Value=Q=function(e){function t(e,n,r){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],r&&(this[r]=!0),this)}return dt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.isArray=function(){return!this.properties.length&&this.base instanceof i},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.base instanceof L&&I.test(this.base.value)},t.prototype.isString=function(){return this.base instanceof L&&y.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,r;r=this.properties.concat(this.base);for(t=0,n=r.length;t"+this.equals],a=p[0],i=p[1],n=this.stepNum?+this.stepNum>0?""+a+" "+this.toVar:""+i+" "+this.toVar:u?(d=[+this.fromNum,+this.toNum],r=d[0],c=d[1],d,r<=c?""+a+" "+c:""+i+" "+c):(t=""+this.fromVar+" <= "+this.toVar,""+t+" ? "+a+" "+this.toVar+" : "+i+" "+this.toVar),l=this.stepVar?""+s+" += "+this.stepVar:u?f?r<=c?"++"+s:"--"+s:r<=c?""+s+"++":""+s+"--":f?""+t+" ? ++"+s+" : --"+s:""+t+" ? "+s+"++ : "+s+"--",f&&(h=""+o+" = "+h),f&&(l=""+o+" = "+l),""+h+"; "+n+"; "+l):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20)return f=function(){v=[];for(var e=p=+this.fromNum,t=+this.toNum;p<=t?e<=t:e>=t;p<=t?e++:e--)v.push(e);return v}.apply(this),this.exclusive&&f.pop(),"["+f.join(", ")+"]";o=this.tab+X,s=e.scope.freeVariable("i"),l=e.scope.freeVariable("results"),a="\n"+o+l+" = [];",this.fromNum&&this.toNum?(e.index=s,n=this.compileNode(e)):(c=""+s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),r=""+this.fromVar+" <= "+this.toVar,n="var "+c+"; "+r+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+r+" ? "+s+"++ : "+s+"--"),u="{ "+l+".push("+s+"); }\n"+o+"return "+l+";\n"+e.indent,i=function(e){return e!=null?e.contains(function(e){return e instanceof L&&e.value==="arguments"&&!e.asKey}):void 0};if(i(this.from)||i(this.to))t=", arguments";return"(function() {"+a+"\n"+o+"for ("+n+")"+u+"}).apply(this"+(t!=null?t:"")+")"},t}(o),t.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return dt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,r,i,s,o;return o=this.range,i=o.to,n=o.from,r=n&&n.compile(e,C)||"0",t=i&&i.compile(e,C),i&&(!!this.range.exclusive||+t!==-1)&&(s=", "+(this.range.exclusive?t:I.test(t)?""+(+t+1):(t=i.compile(e,S),"+"+t+" + 1 || 9e9"))),".slice("+r+(s||"")+")"},t}(o),t.Obj=_=function(e){function t(e,t){this.generated=t!=null?t:!1,this.objects=this.properties=e||[]}return dt(t,e),t.prototype.children=["properties"],t.prototype.compileNode=function(e){var t,n,r,i,o,u,a,f,l,c,p;l=this.properties;if(!l.length)return this.front?"({})":"{}";if(this.generated)for(c=0,p=l.length;c=0?"[\n"+e.indent+t+"\n"+this.tab+"]":"["+t+"]")):"[]"},t.prototype.assigns=function(e){var t,n,r,i;i=this.objects;for(n=0,r=i.length;n=0)throw SyntaxError("variable name may not be "+e);return e&&(e=m.test(e)&&e)},t.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){if(t.classBody)return!1;if(t instanceof L&&t.value==="this")return t.value=e;if(t instanceof c){t.klass=e;if(t.bound)return t.context=e}})},t.prototype.addBoundFunctions=function(e){var t,n,i,s,o,u;if(this.boundFuncs.length){o=this.boundFuncs,u=[];for(i=0,s=o.length;i=0);if(i&&this.context!=="object")throw SyntaxError('variable name may not be "'+s+'"')}return dt(t,e),t.prototype.children=["variable","value"],t.prototype.isStatement=function(e){return(e!=null?e.level:void 0)===k&&this.context!=null&&vt.call(this.context,"?")>=0},t.prototype.assigns=function(e){return this[this.context==="object"?"value":"variable"].assigns(e)},t.prototype.unfoldSoak=function(e){return ft(e,this,"variable")},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f;if(t=this.variable instanceof Q){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if((o=this.context)==="||="||o==="&&="||o==="?=")return this.compileConditional(e)}r=this.variable.compile(e,T);if(!this.context){if(!(s=this.variable.unwrapAll()).isAssignable())throw SyntaxError('"'+this.variable.compile(e)+'" cannot be assigned.');if(typeof s.hasProperties=="function"?!s.hasProperties():!void 0)this.param?e.scope.add(r,"var"):e.scope.find(r)}return this.value instanceof c&&(n=A.exec(r))&&(n[1]&&(this.value.klass=n[1]),this.value.name=(u=(a=(f=n[2])!=null?f:n[3])!=null?a:n[4])!=null?u:n[5]),i=this.value.compile(e,T),this.context==="object"?""+r+": "+i:(i=r+(" "+(this.context||"=")+" ")+i,e.level<=T?i:"("+i+")")},t.prototype.compilePatternMatch=function(e){var n,i,s,o,u,a,f,l,c,h,p,d,v,g,y,b,w,S,x,C,A,O,M,_,D,P,j;y=e.level===k,w=this.value,h=this.variable.base.objects;if(!(p=h.length))return s=w.compile(e),e.level>=N?"("+s+")":s;a=this.variable.isObject();if(y&&p===1&&!((c=h[0])instanceof z)){c instanceof t?(A=c,O=A.variable,u=O.base,c=A.value):c.base instanceof H?(M=(new Q(c.unwrapAll())).cacheReference(e),c=M[0],u=M[1]):u=a?c["this"]?c.properties[0].name:c:new L(0),n=m.test(u.unwrap().value||0),w=new Q(w),w.properties.push(new(n?r:E)(u));if(_=c.unwrap().value,vt.call(B,_)>=0)throw new SyntaxError("assignment to a reserved word: "+c.compile(e)+" = "+w.compile(e));return(new t(c,w,null,{param:this.param})).compile(e,k)}S=w.compile(e,T),i=[],g=!1;if(!m.test(S)||this.variable.assigns(S))i.push(""+(d=e.scope.freeVariable("ref"))+" = "+S),S=d;for(o=x=0,C=h.length;x=0)throw new SyntaxError("assignment to a reserved word: "+c.compile(e)+" = "+b.compile(e));i.push((new t(c,b,null,{param:this.param,subpattern:!0})).compile(e,T))}return!y&&!this.subpattern&&i.push(S),s=i.join(", "),e.level=0&&(e.isExistentialEquals=!0),(new D(this.context.slice(0,-1),n,new t(r,this.value,"="))).compile(e)},t.prototype.compileSplice=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;return l=this.variable.properties.pop().range,r=l.from,u=l.to,n=l.exclusive,o=this.variable.compile(e),c=(r!=null?r.cache(e,N):void 0)||["0","0"],i=c[0],s=c[1],u?(r!=null?r.isSimpleNumber():void 0)&&u.isSimpleNumber()?(u=+u.compile(e)- +s,n||(u+=1)):(u=u.compile(e,S)+" - "+s,n||(u+=" + 1")):u="9e9",h=this.value.cache(e,T),a=h[0],f=h[1],t="[].splice.apply("+o+", ["+i+", "+u+"].concat("+a+")), "+f,e.level>k?"("+t+")":t},t}(o),t.Code=c=function(e){function t(e,t,n){this.params=e||[],this.body=t||new u,this.bound=n==="boundfunc",this.bound&&(this.context="_this")}return dt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=M,t.prototype.compileNode=function(e){var t,n,r,o,u,a,f,l,c,h,p,d,v,m,g,y,w,E,x,T,N,C,k,A,O,M,_,P,H,B,j,F,I;e.scope=new R(e.scope,this.body,this),e.scope.shared=et(e,"sharedScope"),e.indent+=X,delete e.bare,delete e.isExistentialEquals,c=[],n=[],_=this.paramNames();for(g=0,x=_.length;g=S?"("+t+")":t},t.prototype.paramNames=function(){var e,t,n,r,i;e=[],i=this.params;for(n=0,r=i.length;n=0)throw SyntaxError('parameter name "'+e+'" is not allowed')}return dt(t,e),t.prototype.children=["name","value"],t.prototype.compile=function(e){return this.name.compile(e,T)},t.prototype.asReference=function(e){var t;return this.reference?this.reference:(t=this.name,t["this"]?(t=t.properties[0].name,t.value.reserved&&(t=new L(e.scope.freeVariable(t.value)))):t.isComplex()&&(t=new L(e.scope.freeVariable("arg"))),t=new Q(t),this.splat&&(t=new z(t)),this.reference=t)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.names=function(e){var t,n,r,i,o,u;e==null&&(e=this.name),t=function(e){var t;return t=e.properties[0].name.value,t.reserved?[]:[t]};if(e instanceof L)return[e.value];if(e instanceof Q)return t(e);n=[],u=e.objects;for(i=0,o=u.length;i=n.length)return"";if(n.length===1)return o=n[0].compile(e,T),r?o:""+lt("slice")+".call("+o+")";i=n.slice(a);for(u=l=0,c=i.length;l1?t.expressions.unshift(new b((new H(this.guard)).invert(),new L("continue"))):this.guard&&(t=u.wrap([new b(this.guard,t)]))),t="\n"+t.compile(e,k)+"\n"+this.tab),n=i+this.tab+("while ("+this.condition.compile(e,C)+") {"+t+"}"),this.returns&&(n+="\n"+this.tab+"return "+r+";"),n},t}(o),t.Op=D=function(e){function r(e,n,r,i){if(e==="in")return new w(n,r);if(e==="do")return this.generateDo(n);if(e==="new"){if(n instanceof a&&!n["do"]&&!n.isNew)return n.newInstance();if(n instanceof c&&n.bound||n["do"])n=new H(n)}return this.operator=t[e]||e,this.first=n,this.second=r,this.flip=!!i,this}var t,n;return dt(r,e),t={"==":"===","!=":"!==",of:"in"},n={"!==":"===","===":"!=="},r.prototype.children=["first","second"],r.prototype.isSimpleNumber=M,r.prototype.isUnary=function(){return!this.second},r.prototype.isComplex=function(){var e;return!this.isUnary()||(e=this.operator)!=="+"&&e!=="-"||this.first.isComplex()},r.prototype.isChainable=function(){var e;return(e=this.operator)==="<"||e===">"||e===">="||e==="<="||e==="==="||e==="!=="},r.prototype.invert=function(){var e,t,i,s,o;if(this.isChainable()&&this.first.isChainable()){e=!0,t=this;while(t&&t.operator)e&&(e=t.operator in n),t=t.first;if(!e)return(new H(this)).invert();t=this;while(t&&t.operator)t.invert=!t.invert,t.operator=n[t.operator],t=t.first;return this}return(s=n[this.operator])?(this.operator=s,this.first.unwrap()instanceof r&&this.first.invert(),this):this.second?(new H(this)).invert():this.operator==="!"&&(i=this.first.unwrap())instanceof r&&((o=i.operator)==="!"||o==="in"||o==="instanceof")?i:new r("!",this)},r.prototype.unfoldSoak=function(e){var t;return((t=this.operator)==="++"||t==="--"||t==="delete")&&ft(e,this,"first")},r.prototype.generateDo=function(e){var t,n,r,i,o,u,f,l;i=[],n=e instanceof s&&(o=e.value.unwrap())instanceof c?o:e,l=n.params||[];for(u=0,f=l.length;u=0))throw SyntaxError("prefix increment/decrement may not have eval or arguments operand");return this.isUnary()?this.compileUnary(e):n?this.compileChain(e):this.operator==="?"?this.compileExistence(e):(t=this.first.compile(e,N)+" "+this.operator+" "+this.second.compile(e,N),e.level<=N?t:"("+t+")")},r.prototype.compileChain=function(e){var t,n,r,i;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compile(e,N),t=""+n+" "+(this.invert?"&&":"||")+" "+r.compile(e)+" "+this.operator+" "+this.second.compile(e,N),"("+t+")"},r.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new L(e.scope.freeVariable("ref")),t=new H(new s(n,this.first))):(t=this.first,n=t),(new b(new p(t),n,{type:"if"})).addElse(this.second).compile(e)},r.prototype.compileUnary=function(e){var t,n,i;if(e.level>=S)return(new H(this)).compile(e);n=[t=this.operator],i=t==="+"||t==="-",(t==="new"||t==="typeof"||t==="delete"||i&&this.first instanceof r&&this.first.operator===t)&&n.push(" ");if(i&&this.first instanceof r||t==="new"&&this.first.isStatement(e))this.first=new H(this.first);return n.push(this.first.compile(e,N)),this.flip&&n.reverse(),n.join("")},r.prototype.toString=function(e){return r.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},r}(o),t.In=w=function(e){function t(e,t){this.object=e,this.array=t}return dt(t,e),t.prototype.children=["object","array"],t.prototype.invert=O,t.prototype.compileNode=function(e){var t,n,r,i,s;if(this.array instanceof Q&&this.array.isArray()){s=this.array.base.objects;for(r=0,i=s.length;r= 0"),r===n?t:(t=r+", "+t,e.level=0)throw SyntaxError('catch variable may not be "'+this.error.value+'"');return e.scope.check(this.error.value)||e.scope.add(this.error.value,"param")," catch"+r+"{\n"+this.recovery.compile(e,k)+"\n"+this.tab+"}"}if(!this.ensure&&!this.recovery)return" catch (_error) {}"}.call(this),n=this.ensure?" finally {\n"+this.ensure.compile(e,k)+"\n"+this.tab+"}":"",""+this.tab+"try {\n"+i+"\n"+this.tab+"}"+(t||"")+n},t}(o),t.Throw=$=function(e){function t(e){this.expression=e}return dt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Y,t.prototype.jumps=M,t.prototype.makeReturn=V,t.prototype.compileNode=function(e){return this.tab+("throw "+this.expression.compile(e)+";")},t}(o),t.Existence=p=function(e){function t(e){this.expression=e}return dt(t,e),t.prototype.children=["expression"],t.prototype.invert=O,t.prototype.compileNode=function(e){var t,n,r,i;return this.expression.front=this.front,r=this.expression.compile(e,N),m.test(r)&&!e.scope.check(r)?(i=this.negated?["===","||"]:["!==","&&"],t=i[0],n=i[1],r="typeof "+r+" "+t+' "undefined" '+n+" "+r+" "+t+" null"):r=""+r+" "+(this.negated?"==":"!=")+" null",e.level<=x?r:"("+r+")"},t}(o),t.Parens=H=function(e){function t(e){this.body=e}return dt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,r;return r=this.body.unwrap(),r instanceof Q&&r.isAtomic()?(r.front=this.front,r.compile(e)):(n=r.compile(e,C),t=e.level1?t.expressions.unshift(new b((new H(this.guard)).invert(),new L("continue"))):this.guard&&(t=u.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new s(this.name,new L(""+M+"["+c+"]"))),n+=this.pluckDirectCall(e,t),g&&(_="\n"+a+g+";"),this.object&&(r=""+c+" in "+M,this.own&&(o="\n"+a+"if (!"+lt("hasProp")+".call("+M+", "+c+")) continue;")),t=t.compile(st(e,{indent:a}),k),t&&(t="\n"+t+"\n"),""+n+(w||"")+this.tab+"for ("+r+") {"+o+_+t+this.tab+"}"+(E||"")},t.prototype.pluckDirectCall=function(e,t){var n,r,i,o,u,f,l,h,p,d,v,m,g,y,b;r="",d=t.expressions;for(u=h=0,p=d.length;h=x?"("+r+")":r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(o),l={wrap:function(e,t,n){var i,s,o,f,l;if(e.jumps())return e;o=new c([],u.wrap([e])),i=[];if((f=e.contains(this.literalArgs))||e.contains(this.literalThis))l=new L(f?"apply":"call"),i=[new L("this")],f&&i.push(new L("arguments")),o=new Q(o,[new r(l)]);return o.noReturn=n,s=new a(o,i),t?u.wrap([s]):s},literalArgs:function(e){return e instanceof L&&e.value==="arguments"&&!e.asKey},literalThis:function(e){return e instanceof L&&e.value==="this"&&!e.asKey||e instanceof c&&e.bound||e instanceof a&&e.isSuper}},ft=function(e,t,n){var r;if(!(r=t[n].unfoldSoak(e)))return;return t[n]=r.body,r.body=new Q(t),r},K={"extends":function(){return"function(child, parent) { for (var key in parent) { if ("+lt("hasProp")+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},k=1,C=2,T=3,x=4,N=5,S=6,X=" ",g="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",m=RegExp("^"+g+"$"),I=/^[+-]?\d+$/,A=RegExp("^(?:("+g+")\\.prototype(?:\\.("+g+")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\]))|("+g+")$"),y=/^['"]/,lt=function(e){var t;return t="__"+e,R.root.assign(t,K[e]()),t},ot=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(e,t,n){var r,i,s,o;o=e("./helpers"),i=o.extend,s=o.last,t.Scope=r=function(){function e(t,n,r){this.parent=t,this.expressions=n,this.method=r,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(e.root=this)}return e.root=null,e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){return this.method.name||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){if(this.shared&&this.parent.check(e,!0))return;return this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||((t=this.parent)!=null?t.check(e):void 0))},e.prototype.temporary=function(e,t){return e.length>1?"_"+e+(t>1?t-1:""):"_"+(t+parseInt(e,36)).toString(36).replace(/\d/g,"a")},e.prototype.type=function(e){var t,n,r,i;i=this.variables;for(n=0,r=i.length;n1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;et.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function m(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError;var r=o.call(arguments,1),i=function(){if(this instanceof i){var e=function(){};e.prototype=n.prototype;var s=new e,u=n.apply(s,r.concat(o.call(arguments)));return u!==null&&Object(u)===u?u:s}return n.apply(t,r.concat(o.call(arguments)))};return i});var r=Function.prototype.call,i=Array.prototype,s=Object.prototype,o=i.slice,u=r.bind(s.toString),a=r.bind(s.hasOwnProperty),f,l,c,h,p;if(p=a(s,"__defineGetter__"))f=r.bind(s.__defineGetter__),l=r.bind(s.__defineSetter__),c=r.bind(s.__lookupGetter__),h=r.bind(s.__lookupSetter__);Array.isArray||(Array.isArray=function(t){return u(t)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=D(this),r=arguments[1],i=0,s=n.length>>>0;if(u(t)!="[object Function]")throw new TypeError;while(i>>0,i=Array(r),s=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var o=0;o>>0,i=[],s=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var o=0;o>>0,i=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var s=0;s>>0,i=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var s=0;s>>0;if(u(t)!="[object Function]")throw new TypeError;if(!r&&arguments.length==1)throw new TypeError;var i=0,s;if(arguments.length>=2)s=arguments[1];else do{if(i in n){s=n[i++];break}if(++i>=r)throw new TypeError}while(!0);for(;i>>0;if(u(t)!="[object Function]")throw new TypeError;if(!r&&arguments.length==1)throw new TypeError;var i,s=r-1;if(arguments.length>=2)i=arguments[1];else do{if(s in n){i=n[s--];break}if(--s<0)throw new TypeError}while(!0);do s in this&&(i=t.call(void 0,i,n[s],s,n));while(s--);return i}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t){var n=D(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=M(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,M(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:s)});if(!Object.getOwnPropertyDescriptor){var d="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(d+t);if(!a(t,n))return;var r,i,o;r={enumerable:!0,configurable:!0};if(p){var u=t.__proto__;t.__proto__=s;var i=c(t,n),o=h(t,n);t.__proto__=u;if(i||o)return i&&(r.get=i),o&&(r.set=o),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var v;Object.prototype.__proto__===null?v=function(){return{__proto__:null}}:v=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=v();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var g=m({}),y=typeof document=="undefined"||m(document.createElement("div"));if(!g||!y)var b=Object.defineProperty}if(!Object.defineProperty||b){var w="Property description must be an object: ",E="Object.defineProperty called on non-object: ",S="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(E+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(w+r);if(b)try{return b.call(Object,t,n,r)}catch(i){}if(a(r,"value"))if(p&&(c(t,n)||h(t,n))){var o=t.__proto__;t.__proto__=s,delete t[n],t[n]=r.value,t.__proto__=o}else t[n]=r.value;else{if(!p)throw new TypeError(S);a(r,"get")&&f(t,n,r.get),a(r,"set")&&l(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)a(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(x){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(a(t,n))n+="?";t[n]=!0;var r=a(t,n);return delete t[n],r});if(!Object.keys){var T=!0,N=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=N.length;for(var k in{toString:null})T=!1;Object.keys=function P(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var P=[];for(var t in e)a(e,t)&&P.push(t);if(T)for(var n=0,r=C;n9999?"+":"")+("00000"+Math.abs(i)).slice(0<=i&&i<=9999?-4:-6),n=t.length;while(n--)r=t[n],r<10&&(t[n]="0"+r);return i+"-"+t.slice(0,2).join("-")+"T"+t.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(t){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(e){var t=function i(t,n,r,s,o,u,a){var f=arguments.length;if(this instanceof e){var l=f==1&&String(t)===t?new e(i.parse(t)):f>=7?new e(t,n,r,s,o,u,a):f>=6?new e(t,n,r,s,o,u):f>=5?new e(t,n,r,s,o):f>=4?new e(t,n,r,s):f>=3?new e(t,n,r):f>=2?new e(t,n):f>=1?new e(t):new e;return l.constructor=i,l}return e.apply(this,arguments)},n=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var r in e)t[r]=e[r];return t.now=e.now,t.UTC=e.UTC,t.prototype=e.prototype,t.prototype.constructor=t,t.parse=function(r){var i=n.exec(r);if(i){i.shift();for(var s=1;s<7;s++)i[s]=+(i[s]||(s<3?1:0)),s==1&&i[s]--;var o=+i.pop(),u=+i.pop(),a=i.pop(),f=0;if(a){if(u>23||o>59)return NaN;f=(u*60+o)*6e4*(a=="+"?-1:1)}var l=+i[0];return 0<=l&&l<=99?(i[0]=l+400,e.UTC.apply(this,i)+f-126227808e5):e.UTC.apply(this,i)+f}return e.parse.apply(this,arguments)},t}(Date));var L=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||L.trim()){L="["+L+"]";var A=new RegExp("^"+L+L+"*"),O=new RegExp(L+L+"*$");String.prototype.trim=function(){return String(this).replace(A,"").replace(O,"")}}var M=function(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e},_="a"[0]!="a",D=function(e){if(e==null)throw new TypeError;return _&&typeof e=="string"&&e?e.split(""):Object(e)}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){var r={};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=function(){this.propagationStopped=!0}),t.preventDefault||(t.preventDefault=function(){this.defaultPrevented=!0});for(var i=0;i=t&&(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this.insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){if(t.length==0)return{row:e,column:0};if(t.length>65535){var n=this.insertLines(e,t.slice(65535));t=t.slice(0,65535)}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._emit("change",{data:o}),n||i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._emit("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._emit("change",{data:i}),r},this.remove=function(e){e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this.removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._emit("change",{data:a}),r.start},this.removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._emit("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._emit("change",{data:o})},this.replace=function(e,t){if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this.insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}}}).call(u.prototype),t.Document=u}),define("ace/range",["require","exports","module"],function(e,t,n){var r=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row==e.start.row&&this.end.row==e.end.row&&this.start.column==e.start.column&&this.end.column==e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};if(this.start.row>t)var i={row:t+1,column:0};if(this.start.rowthis.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column;t.action==="insertText"?n.start.row===r&&n.start.column<=i?n.start.row===n.end.row?i+=n.end.column-n.start.column:(i-=n.start.column,r+=n.end.row-n.start.row):n.start.row!==n.end.row&&n.start.row=i?i=n.start.column:i=Math.max(0,i-(n.end.column-n.start.column)):n.start.row!==n.end.row&&n.start.row=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/mode/css/csslint",["require","exports","module"],function(require,exports,module){function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\n\r?/g,"\n"),this._line=1,this._col=1,this._cursor=0}function n(e,t,n){this.col=n,this.line=t,this.message=e}function r(e,t,n,r){this.col=n,this.line=t,this.text=e,this.type=r}function i(e,n){this._reader=e?new t(e.toString()):null,this._token=null,this._tokenData=n,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){typeof e=="string"&&(e={type:e}),typeof e.target!="undefined"&&(e.target=this);if(typeof e.type=="undefined")throw new Error("Event object missing 'type' property.");if(this._listeners[e.type]){var t=this._listeners[e.type].concat();for(var n=0,r=t.length;n=0&&this._ltIndex-1&&!t[u.type].hide&&(u.channel=t[u.type].channel,this._token=u,this._lt.push(u),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),a=t[u.type],a&&(a.hide||a.channel!==undefined&&e!==a.channel)?this.get(e):u.type},LA:function(e){var t=e,n;if(e>0){if(e>5)throw new Error("Too much lookahead.");while(t)n=this.get(),t--;while(tthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw new Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:n,SyntaxUnit:r,EventTarget:e,TokenStreamBase:i}})(),function(){function Combinator(e,t,n){SyntaxUnit.call(this,e,t,n,Parser.COMBINATOR_TYPE),this.type="unknown",/^\s+$/.test(e)?this.type="descendant":e==">"?this.type="child":e=="+"?this.type="adjacent-sibling":e=="~"&&(this.type="sibling")}function MediaFeature(e,t){SyntaxUnit.call(this,"("+e+(t!==null?":"+t:"")+")",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,n,r,i){SyntaxUnit.call(this,(e?e+" ":"")+(t?t+" ":"")+n.join(" and "),r,i,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=n}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":case"ch":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100,this.alpha=+RegExp.$4):/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\(]+)\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,n,r,i){SyntaxUnit.call(this,n,r,i,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function isHexDigit(e){return e!==null&&h.test(e)}function isDigit(e){return e!==null&&/\d/.test(e)}function isWhitespace(e){return e!==null&&/\s/.test(e)}function isNewLine(e){return e!==null&&nl.test(e)}function isNameStart(e){return e!==null&&/[a-z_\u0080-\uFFFF\\]/i.test(e)}function isNameChar(e){return e!==null&&(isNameStart(e)||/[0-9\-\\]/.test(e))}function isIdentStart(e){return e!==null&&(isNameStart(e)||/\-\\/.test(e))}function mix(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,n){this.col=n,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e=new EventTarget,t,n={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var e=this._tokenStream,t=null,n,r,i;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(e.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(e.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();i=e.peek();while(i>Tokens.EOF){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:e.get();if(!!this.options.strict)throw new SyntaxError("Unknown @ rule.",e.LT(0).startLine,e.LT(0).startCol);this.fire({type:"error",error:null,message:"Unknown @ rule: "+e.LT(0).value+".",line:e.LT(0).startLine,col:e.LT(0).startCol}),n=0;while(e.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE)n++;while(n)e.advance([Tokens.RBRACE]),n--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw r=e.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",r.startLine,r.startCol);case Tokens.IMPORT_SYM:throw r=e.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",r.startLine,r.startCol);case Tokens.NAMESPACE_SYM:throw r=e.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",r.startLine,r.startCol);default:e.get(),this._unexpectedToken(e.token())}}}catch(s){if(!(s instanceof SyntaxError&&!this.options.strict))throw s;this.fire({type:"error",error:s,message:s.message,line:s.line,col:s.col})}i=e.peek()}i!=Tokens.EOF&&this._unexpectedToken(e.token()),this.fire("endstylesheet")},_charset:function(e){var t=this._tokenStream,n,r,i,s;t.match(Tokens.CHARSET_SYM)&&(i=t.token().startLine,s=t.token().startCol,this._readWhitespace(),t.mustMatch(Tokens.STRING),r=t.token(),n=r.value,this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:"charset",charset:n,line:i,col:s}))},_import:function(e){var t=this._tokenStream,n,r,i,s=[];t.mustMatch(Tokens.IMPORT_SYM),i=t.token(),this._readWhitespace(),t.mustMatch([Tokens.STRING,Tokens.URI]),r=t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),s=this._media_query_list(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"import",uri:r,media:s,line:i.startLine,col:i.startCol})},_namespace:function(e){var t=this._tokenStream,n,r,i,s;t.mustMatch(Tokens.NAMESPACE_SYM),n=t.token().startLine,r=t.token().startCol,this._readWhitespace(),t.match(Tokens.IDENT)&&(i=t.token().value,this._readWhitespace()),t.mustMatch([Tokens.STRING,Tokens.URI]),s=t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"namespace",prefix:i,uri:s,line:n,col:r})},_media:function(){var e=this._tokenStream,t,n,r;e.mustMatch(Tokens.MEDIA_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),r=this._media_query_list(),e.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:r,line:t,col:n});for(;;)if(e.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;e.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:r,line:t,col:n})},_media_query_list:function(){var e=this._tokenStream,t=[];this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());while(e.match(Tokens.COMMA))this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,n=null,r=null,i=[];e.match(Tokens.IDENT)&&(n=e.token().value.toLowerCase(),n!="only"&&n!="not"?(e.unget(),n=null):r=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),r===null&&(r=e.token())):e.peek()==Tokens.LPAREN&&(r===null&&(r=e.LT(1)),i.push(this._media_expression()));if(t===null&&i.length===0)return null;this._readWhitespace();while(e.match(Tokens.IDENT))e.token().value.toLowerCase()!="and"&&this._unexpectedToken(e.token()),this._readWhitespace(),i.push(this._media_expression());return new MediaQuery(n,t,i,r.startLine,r.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e=this._tokenStream,t=null,n,r=null;return e.mustMatch(Tokens.LPAREN),t=this._media_feature(),this._readWhitespace(),e.match(Tokens.COLON)&&(this._readWhitespace(),n=e.LT(1),r=this._expression()),e.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(t,r?new SyntaxUnit(r,n.startLine,n.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e=this._tokenStream,t,n,r=null,i=null;e.mustMatch(Tokens.PAGE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),e.match(Tokens.IDENT)&&(r=e.token().value,r.toLowerCase()==="auto"&&this._unexpectedToken(e.token())),e.peek()==Tokens.COLON&&(i=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:r,pseudo:i,line:t,col:n}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:r,pseudo:i,line:t,col:n})},_margin:function(){var e=this._tokenStream,t,n,r=this._margin_sym();return r?(t=e.token().startLine,n=e.token().startCol,this.fire({type:"startpagemargin",margin:r,line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:r,line:t,col:n}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.FONT_FACE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endfontface",line:t,col:n})},_operator:function(){var e=this._tokenStream,t=null;return e.match([Tokens.SLASH,Tokens.COMMA])&&(t=e.token(),this._readWhitespace()),t?PropertyValuePart.fromToken(t):null},_combinator:function(){var e=this._tokenStream,t=null,n;return e.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(n=e.token(),t=new Combinator(n.value,n.startLine,n.startCol),this._readWhitespace()),t},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e=this._tokenStream,t=null,n=null,r,i,s,o;return e.peek()==Tokens.STAR&&this.options.starHack&&(e.get(),i=e.token(),n=i.value,s=i.startLine,o=i.startCol),e.match(Tokens.IDENT)&&(i=e.token(),r=i.value,r.charAt(0)=="_"&&this.options.underscoreHack&&(n="_",r=r.substring(1)),t=new PropertyName(r,n,s||i.startLine,o||i.startCol),this._readWhitespace()),t},_ruleset:function(){var e=this._tokenStream,t,n;try{n=this._selectors_group()}catch(r){if(r instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:r,message:r.message,line:r.line,col:r.col}),t=e.advance([Tokens.RBRACE]);if(t!=Tokens.RBRACE)throw r;return!0}throw r}return n&&(this.fire({type:"startrule",selectors:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:n,line:n[0].line,col:n[0].col})),n},_selectors_group:function(){var e=this._tokenStream,t=[],n;n=this._selector();if(n!==null){t.push(n);while(e.match(Tokens.COMMA))this._readWhitespace(),n=this._selector(),n!==null?t.push(n):this._unexpectedToken(e.LT(1))}return t.length?t:null},_selector:function(){var e=this._tokenStream,t=[],n=null,r=null,i=null;n=this._simple_selector_sequence();if(n===null)return null;t.push(n);do{r=this._combinator();if(r!==null)t.push(r),n=this._simple_selector_sequence(),n===null?this._unexpectedToken(e.LT(1)):t.push(n);else{if(!this._readWhitespace())break;i=new Combinator(e.token().value,e.token().startLine,e.token().startCol),r=this._combinator(),n=this._simple_selector_sequence(),n===null?r!==null&&this._unexpectedToken(e.LT(1)):(r!==null?t.push(r):t.push(i),t.push(n))}}while(!0);return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e=this._tokenStream,t=null,n=[],r="",i=[function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],s=0,o=i.length,u=null,a=!1,f,l;f=e.LT(1).startLine,l=e.LT(1).startCol,t=this._type_selector(),t||(t=this._universal()),t!==null&&(r+=t);for(;;){if(e.peek()===Tokens.S)break;while(s1&&e.unget()),null)},_class:function(){var e=this._tokenStream,t;return e.match(Tokens.DOT)?(e.mustMatch(Tokens.IDENT),t=e.token(),new SelectorSubPart("."+t.value,"class",t.startLine,t.startCol-1)):null},_element_name:function(){var e=this._tokenStream,t;return e.match(Tokens.IDENT)?(t=e.token(),new SelectorSubPart(t.value,"elementName",t.startLine,t.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t="";if(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+="|";return t.length?t:null},_universal:function(){var e=this._tokenStream,t="",n;return n=this._namespace_prefix(),n&&(t+=n),e.match(Tokens.STAR)&&(t+="*"),t.length?t:null},_attrib:function(){var e=this._tokenStream,t=null,n,r;return e.match(Tokens.LBRACKET)?(r=e.token(),t=r.value,t+=this._readWhitespace(),n=this._namespace_prefix(),n&&(t+=n),e.mustMatch(Tokens.IDENT),t+=e.token().value,t+=this._readWhitespace(),e.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(t+=e.token().value,t+=this._readWhitespace(),e.mustMatch([Tokens.IDENT,Tokens.STRING]),t+=e.token().value,t+=this._readWhitespace()),e.mustMatch(Tokens.RBRACKET),new SelectorSubPart(t+"]","attribute",r.startLine,r.startCol)):null},_pseudo:function(){var e=this._tokenStream,t=null,n=":",r,i;return e.match(Tokens.COLON)&&(e.match(Tokens.COLON)&&(n+=":"),e.match(Tokens.IDENT)?(t=e.token().value,r=e.token().startLine,i=e.token().startCol-n.length):e.peek()==Tokens.FUNCTION&&(r=e.LT(1).startLine,i=e.LT(1).startCol-n.length,t=this._functional_pseudo()),t&&(t=new SelectorSubPart(n+t,"pseudo",r,i))),t},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=")"),t},_expression:function(){var e=this._tokenStream,t="";while(e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e=this._tokenStream,t,n,r="",i,s=null;return e.match(Tokens.NOT)&&(r=e.token().value,t=e.token().startLine,n=e.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),e.match(Tokens.RPAREN),r+=e.token().value,s=new SelectorSubPart(r,"not",t,n),s.args.push(i)),s},_negation_arg:function(){var e=this._tokenStream,t=[this._type_selector,this._universal,function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo],n=null,r=0,i=t.length,s,o,u,a;o=e.LT(1).startLine,u=e.LT(1).startCol;while(r0?new PropertyValue(t,t[0].line,t[0].col):null},_term:function(){var e=this._tokenStream,t=null,n=null,r,i,s;return t=this._unary_operator(),t!==null&&(i=e.token().startLine,s=e.token().startCol),e.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(n=this._ie_function(),t===null&&(i=e.token().startLine,s=e.token().startCol)):e.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(n=e.token().value,t===null&&(i=e.token().startLine,s=e.token().startCol),this._readWhitespace()):(r=this._hexcolor(),r===null?(t===null&&(i=e.LT(1).startLine,s=e.LT(1).startCol),n===null&&(e.LA(3)==Tokens.EQUALS&&this.options.ieFilters?n=this._ie_function():n=this._function())):(n=r.value,t===null&&(i=r.startLine,s=r.startCol))),n!==null?new PropertyValuePart(t!==null?t+n:n,i,s):null},_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match(Tokens.FUNCTION)){t=e.token().value,this._readWhitespace(),n=this._expr(),t+=n;if(this.options.ieFilters&&e.peek()==Tokens.EQUALS)do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_ie_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){t=e.token().value;do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_hexcolor:function(){var e=this._tokenStream,t=null,n;if(e.match(Tokens.HASH)){t=e.token(),n=t.value;if(!/#[a-f0-9]{3,6}/i.test(n))throw new SyntaxError("Expected a hex color but found '"+n+"' at line "+t.startLine+", col "+t.startCol+".",t.startLine,t.startCol);this._readWhitespace()}return t},_keyframes:function(){var e=this._tokenStream,t,n,r,i="";e.mustMatch(Tokens.KEYFRAMES_SYM),t=e.token(),/^@\-([^\-]+)\-/.test(t.value)&&(i=RegExp.$1),this._readWhitespace(),r=this._keyframe_name(),this._readWhitespace(),e.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),n=e.peek();while(n==Tokens.IDENT||n==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),n=e.peek();this.fire({type:"endkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),e.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream,t;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=this._tokenStream,t,n=this._key_list();this.fire({type:"startkeyframerule",keys:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:n,line:n[0].line,col:n[0].col})},_key_list:function(){var e=this._tokenStream,t,n,r=[];r.push(this._key()),this._readWhitespace();while(e.match(Tokens.COMMA))this._readWhitespace(),r.push(this._key()),this._readWhitespace();return r},_key:function(){var e=this._tokenStream,t;if(e.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(e.token());if(e.match(Tokens.IDENT)){t=e.token();if(/from|to/i.test(t.value))return SyntaxUnit.fromToken(t);e.unget()}this._unexpectedToken(e.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(e,t){var n=this._tokenStream,r;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!(n.match(Tokens.SEMICOLON)||t&&this._margin())){if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(i){if(!(i instanceof SyntaxError&&!this.options.strict))throw i;this.fire({type:"error",error:i,message:i.message,line:i.line,col:i.col}),r=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(r==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(r!=Tokens.RBRACE)throw i}},_readWhitespace:function(){var e=this._tokenStream,t="";while(e.match(Tokens.S))t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError("Unexpected token '"+e.value+"' at line "+e.startLine+", col "+e.startCol+".",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+="}",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}();var Properties={"alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | | ","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"
+ + + + - + fit + orig + update + +
+
+
+
+

+ Change Image + Fill container +

+
+ + diff --git a/web/js/iviewer/test/index3.html b/web/js/iviewer/test/index3.html new file mode 100644 index 000000000..b500e6ce0 --- /dev/null +++ b/web/js/iviewer/test/index3.html @@ -0,0 +1,173 @@ + + + + + jquery.iviewer test + + + + + + + + + +
+ |Show me: + big circle, + middle circle, + small circle, + rectangle +
+ +
+
+
+ +
+ + diff --git a/web/js/iviewer/test/jquery.js b/web/js/iviewer/test/jquery.js new file mode 100644 index 000000000..4bf9a52bc --- /dev/null +++ b/web/js/iviewer/test/jquery.js @@ -0,0 +1,5 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); + diff --git a/web/js/iviewer/test/jquery.mousewheel.js b/web/js/iviewer/test/jquery.mousewheel.js new file mode 100644 index 000000000..7c398d76b --- /dev/null +++ b/web/js/iviewer/test/jquery.mousewheel.js @@ -0,0 +1,107 @@ +/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.1.1 + * + * Requires: 1.2.2+ + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + + var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll']; + var toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll']; + var lowestDelta, lowestDeltaXY; + + if ($.event.fixHooks) { + for ( var i=toFix.length; i; ) { + $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; + } + } + + $.event.special.mousewheel = { + setup: function() { + if ( this.addEventListener ) { + for ( var i=toBind.length; i; ) { + this.addEventListener( toBind[--i], handler, false ); + } + } else { + this.onmousewheel = handler; + } + }, + + teardown: function() { + if ( this.removeEventListener ) { + for ( var i=toBind.length; i; ) { + this.removeEventListener( toBind[--i], handler, false ); + } + } else { + this.onmousewheel = null; + } + } + }; + + $.fn.extend({ + mousewheel: function(fn) { + return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); + }, + + unmousewheel: function(fn) { + return this.unbind("mousewheel", fn); + } + }); + + + function handler(event) { + var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, deltaX = 0, deltaY = 0, absDelta = 0, absDeltaXY = 0, fn; + event = $.event.fix(orgEvent); + event.type = "mousewheel"; + + // Old school scrollwheel delta + if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta; } + if ( orgEvent.detail ) { delta = orgEvent.detail * -1; } + + // New school wheel delta (wheel event) + if ( orgEvent.deltaY ) { + deltaY = orgEvent.deltaY * -1; + delta = deltaY; + } + if ( orgEvent.deltaX ) { + deltaX = orgEvent.deltaX; + delta = deltaX * -1; + } + + // Webkit + if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY; } + if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = orgEvent.wheelDeltaX * -1; } + + // Look for lowest delta to normalize the delta values + absDelta = Math.abs(delta); + if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; } + absDeltaXY = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); + if ( !lowestDeltaXY || absDeltaXY < lowestDeltaXY ) { lowestDeltaXY = absDeltaXY; } + + // Get a whole value for the deltas + fn = delta > 0 ? 'floor' : 'ceil'; + delta = Math[fn](delta/lowestDelta); + deltaX = Math[fn](deltaX/lowestDeltaXY); + deltaY = Math[fn](deltaY/lowestDeltaXY); + + // Add event and delta to the front of the arguments + args.unshift(event, delta, deltaX, deltaY); + + return ($.event.dispatch || $.event.handle).apply(this, args); + } + +})); diff --git a/web/js/iviewer/test/jquery.mousewheel.min.js b/web/js/iviewer/test/jquery.mousewheel.min.js new file mode 100644 index 000000000..e39a83ada --- /dev/null +++ b/web/js/iviewer/test/jquery.mousewheel.min.js @@ -0,0 +1,13 @@ +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ +(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]= +d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git a/web/js/iviewer/test/jqueryui.js b/web/js/iviewer/test/jqueryui.js new file mode 100644 index 000000000..17da22962 --- /dev/null +++ b/web/js/iviewer/test/jqueryui.js @@ -0,0 +1,50 @@ +/*! + * jQuery UI 1.8.11 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, +d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate); +if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +; \ No newline at end of file diff --git a/web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png b/web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png new file mode 100644 index 0000000000000000000000000000000000000000..855f7e5e46755227c8116ffa943f11517c83d89e GIT binary patch literal 932 zcmaJ=J#W)M7&f3(D587mbaEvoV&6GU99wa##CE7997RbaGBD&~Um7d5&)Ap7$%NP# znBfO7BX$O6Bz{46*bsk#a~h`%1WV_;_w+o^`+0AB-Dij8Kkba!UHiFj@Zb3u6s0;aE_6(Fy?GQ zXr5;=_U43v3Aqd+L;U^as|W($5MR_>=*A|Q1sCgt4A$MDx1M{NFP@))W~Ot2kT49g z@G466%n&!aIzQ*vvIsU1HaEoEphj*Fm^2}vCc%ma>k!nDgsP{isy+n@L{Nr`jFbve z^{S#n2)3Wdy(Rus?^~U%FK!v)jImgk<>hiIEvphuE@h-?TCSle6^^K+tBB#O5~U}F zf<;m<31Sw|2;_=*LKn;sd8D@~gz-)`O1EX=1(P!z%SeKGN(In${|^nr9Xe%wau@GE zh120GCUT#obdh+xanqCBRjiu{!HgzDO0SA4_GXmPbVg%f4r;)~UJ&K>2JgDM6QvAC z9&s!~Ds#!&<-KrN{i+YQYM6BTYcii?~ZaxZO z%spEq39gCXNoWW*DeJ-hSQ>lvwp@RIEZSbK%!85h#{Sjl;)+jCe%y^MH+F+hB0lX2 zAM2Zs?@j(BjvT8s%x)(Bc$|HIeemJvvrsPGyZ=adSrUHX>*JsKyK(HU^{G96^9PG@ B8*cyr literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_close.png b/web/js/iviewer/test/lightbox-gallery/img/btn_close.png new file mode 100644 index 0000000000000000000000000000000000000000..53180b3f3f0e402c8e6ff2e984423e00fe551315 GIT binary patch literal 1207 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMD`kd6ltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=Dp}Cc@k(Ggg0u(3#Z7WJivkG!?gW3h;*(zm}loVL$>z9|8 z>y;bp(sS1ij466f0+E7XwENH%k*kLnlK+R|5-EXD16wBLj11V?%RS zM>CjSm;B_?+|;}hnBEkGUPqjIK}jLE0BEyIYEfocYKmJ?ey#%8%T}3K++t|pX6EW@ z?hG`~5xZL;dQ)(_#R8{W^ns4i2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5=oFo`o|o zFlu|cIEGZ*O8W8tzdf^*82ckuhn!YdKKVX|N1YC5+VtAj1&DNf|J&Zs?vUfPgjLbu z59_LYHG$0!Ho5SeWRlpyf8-d84hP$#^BKREF&k>{QdN+D^Rr*}&f#Ri6HWdWU(PnL z%6cqR5qSTEuN&X0bPk~s=TXa5&wcW_K+*{ZTw0xR_RzwNE=DQ71PC2U%vdSf&KJdfnhPROJ zjy`Ssho?`@Rf!U6J-vqUGw0dIEzeeVKl|D8%yOPy>UANh>4%Og@G?2gTe~DWM4fLKd3c literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_next.png b/web/js/iviewer/test/lightbox-gallery/img/btn_next.png new file mode 100644 index 0000000000000000000000000000000000000000..c3cdc50672b8fdcb24a136f58fbb58cd6e8df021 GIT binary patch literal 374 zcmV-+0g3*JP)P000>X1^@s6#OZ}&00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-UA#CFb0J*`@{eM0Ru@y zK~zY`y_LI80znvszu{(KZ0wAo#FjVEgvQ#$f@h%D*zzho00}LP36Eea4GkSu#$>r2 z8#h^GX4uTka*`?b%-MYT=bsCb2pmSzs7#hfh$Icq0gFKZ+bCj&E`0-Se>k*iSLIAcv zqeSi|1|r)|a_#lX6$3FPbG@o7c?I5MdU8rL;2~cw6F8ndfGh{ZUXa(o$}!ghHYpmP zIsCgKAQrN=cmv?`_(X-jj5QrQ)b#*(@r@Qf~VE*{~tU?$6)JH|;w( z*s|4><|%&9wp4QBt2!X~p+SKANoPo-`<8OXje>>6`{oBYOgq7rQNQb&*i5F!M?bV{pwo}M4=YH2| z`3Fq8&Uq0oPnddmcJSYB_;coOYf5sCwf`jc*E|#3o?WnFo-4ok=}OTFej)Yts;%)+ zx;hSgTe~DWM4fElG+x literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png b/web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png new file mode 100644 index 0000000000000000000000000000000000000000..6cdf77c472bb39a555c038668b297021202e6080 GIT binary patch literal 970 zcmaJ=F>KR76g^Z?P^AtqQKr)sHe#Qhrb&*vRbnS?BwV#=BqFhJv9FCu?KAe3xRnqR z5)#Zzbbx_{iH(T?39)owV`62Y69X%v+@(p%K(J){{^`B<|G)q4*~a?n?99~}0KjZx z&1uU2oO&-#%kQV-C!PvKtu40rw&>G@fr`&N3^qc#!}59Z0lgX)M9)H}MYY`xX!C@@f`)S*Uc_+G(2V>-u~@tT zO>AHto4R4d5>Lo!e0vO!C0=jK;d5Vb#(I=(_)h zhT#~UiY7a&_n*RPYd>aslcjtw@#NsP=T)kh*a@S8CoRr*N2j>a<$|YO9z%Pp0A1<@ zk%|X+*CmZ86*Tf#!?BQ5(1O4xw(a0bsqQQoM%6HCxKyyKrLu{OcHSt~DvKko!@a$b zMPkJD&$zXTTxEqYmYE%v1P_>BPk0CiEt6n!E!By7L#{u$7JDLBm&NF6uzwADv?bl6 zmSfw>U~GIANw+7`){knxZ^|pN+;A$b>}%)O$;rypCGZN>tA{VHd8|^_&0YGPy?UGtZB^56yc=Z?3lhI5!P`e!gJ7?44J)7Bp(>&fDtU$A19DJ1oBd literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png b/web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png new file mode 100644 index 0000000000000000000000000000000000000000..8394c217e645ddd505252c6ed977d5c10195e141 GIT binary patch literal 959 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 Ma993!F5x8q4bRE7oB#j- literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox-gallery/index.html b/web/js/iviewer/test/lightbox-gallery/index.html new file mode 100644 index 000000000..7bcb36f90 --- /dev/null +++ b/web/js/iviewer/test/lightbox-gallery/index.html @@ -0,0 +1,48 @@ + + + + + iViewer lightbox example + + + + + + + + Show lightbox! +
+ Show another lightbox! + +
+
+ +
+ +
    +
  • +
  • +
  • +
+ +
+ +

+ +
+
+ + + + + + + + diff --git a/web/js/iviewer/test/lightbox-gallery/main.js b/web/js/iviewer/test/lightbox-gallery/main.js new file mode 100644 index 000000000..3e6c8a80c --- /dev/null +++ b/web/js/iviewer/test/lightbox-gallery/main.js @@ -0,0 +1,123 @@ +(function($) { + var gallery = new Array(); + function init() { + var viewer = $("#iviewer .viewer"). + width($(window).width() - 80). + height($(window).height()). + iviewer({ + ui_disabled : true, + zoom : 'fit', + onFinishLoad : function(ev) { + $("#iviewer .loader").fadeOut(); + $("#iviewer .viewer").fadeIn(); + } + } + ); + + $("#iviewer .zoomin").click(function(e) { + e.preventDefault(); + viewer.iviewer('zoom_by', 1); + }); + + $("#iviewer .zoomout").click(function(e) { + e.preventDefault(); + viewer.iviewer('zoom_by', -1); + }); + + /* + * Populate gallery array. + * NOTE: In order to add image to gallery, Anchor tag of images that are to be opened in lightbox, should have attribute 'rel' set to 'gallery'. + */ + $( "a[rel='gallery']" ).each(function( index ) { + gallery[index] = $( this ).attr("href"); + }); + } + + function open(src) { + $("#iviewer").fadeIn().trigger('fadein'); + $("#iviewer .loader").show(); + $("#iviewer .viewer").hide(); + + var viewer = $("#iviewer .viewer") + .iviewer('loadImage', src) + .iviewer('set_zoom', 'fit'); + } + + function close() { + $("#iviewer").fadeOut().trigger('fadeout'); + } + + $('.go').click(function(e) { + e.preventDefault(); + var src = $(this).attr('href'); + open(src); + // Refresh next and prev links + refreshNextPrevLinks(src); + }); + + $("#iviewer .close").click(function(e) { + e.preventDefault(); + close(); + }); + + $("#iviewer").bind('fadein', function() { + $(window).keydown(function(e) { + if (e.which == 27) close(); + }); + }); + + /* + * refreshNextPrevLinks() refreshes Next and previous links + */ + function refreshNextPrevLinks(src){ + console.log('RefreshNextPrevLinks called. src: '+src); + var imageIndex = 0; + //Iterate over gallery and find the index of current image. + for (i=0;i imageIndex+1){ + nextLink.href = gallery[imageIndex+1]; + nextLink.style.visibility = 'visible'; + }else{ + nextLink.href = "#"; + nextLink.style.visibility = 'hidden'; + } + + //Setting Prev link + var prevLink = document.getElementById('prevLink'); + if(imageIndex > 0){ + prevLink.href = gallery[imageIndex-1]; + prevLink.style.visibility = 'visible'; + }else{ + prevLink.setAttribute("href", "#"); + prevLink.style.visibility = 'hidden'; + } + + document.getElementById('imageCount').innerHTML= "Image: "+ (imageIndex+1) + "/" + gallery.length; + } + + //Binding keypress event of left arrow and right arrow button. Image would be changed, if right arrow or left arrow button is pressed. + $(document).keyup(function(e) { + //left arrow key + if (e.keyCode == 37) { + if($("#prevLink").attr("href") != "#"){ + $("#prevLink").click(); + } + } + //right arrow + if (e.keyCode == 39) { + if($("#nextLink").attr("href") != "#"){ + $("#nextLink").click(); + } + } + }); + + init(); +})(jQuery); diff --git a/web/js/iviewer/test/lightbox-gallery/readme.txt b/web/js/iviewer/test/lightbox-gallery/readme.txt new file mode 100644 index 000000000..82f22bf93 --- /dev/null +++ b/web/js/iviewer/test/lightbox-gallery/readme.txt @@ -0,0 +1,4 @@ +lightbox-gallery created under test project, to provide gallery option in lightbox+iviewer intergation. + +Using lightbox-gallery, all images that are in gallery will be grouped, so that navigation from one image to other is possible from lightbox itself. +Anchors tag of image that are to be added in gallery, shuld have attribute rel="gallery". diff --git a/web/js/iviewer/test/lightbox-gallery/style.css b/web/js/iviewer/test/lightbox-gallery/style.css new file mode 100644 index 000000000..e9598db4a --- /dev/null +++ b/web/js/iviewer/test/lightbox-gallery/style.css @@ -0,0 +1,79 @@ +* { + margin: 0; + padding: 0; +} + +#iviewer { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + background: url('img/bg_transblack.png'); + display: none; + z-index: 1; +} + + #iviewer .controls { + position: fixed; + top: 0; + right: 0; + width: 40px; + } + + #iviewer .controls li { + float: right; + clear: right; + position: relative; + width: 40px; + height: 40px; + background-repeat: no-repeat; + background-position: center center; + display: block; + cursor: pointer; + z-index: 3; + } + + #iviewer .controls:hover { + cursor: pointer; + } + + #iviewer .controls .close { background-image: url('img/btn_close.png'); } + #iviewer .controls .zoomin { background-image: url('img/btn_zoomin.png'); } + #iviewer .controls .zoomout { background-image: url('img/btn_zoomout.png'); } + #iviewer .controls .next { background-image: url('img/btn_next.png'); } + + #iviewer .info { + position: fixed; + bottom: 0; + width: 300px; + left: 50%; + margin-left: -150px; + display: block; + text-align:center; + color: #ccc; + font-size: 18px; + padding: 0; + z-index: 2; + } + + #iviewer .info p { + display:inline; + vertical-align: top; + } + + #iviewer .viewer { + position: fixed; + top: 0; + left: 40px; + z-index: 2; + display: none; + } + + #iviewer .loader { + position: fixed; + width: 100%; + height: 100%; + background: url('img/spinner.gif') no-repeat center center; + z-index: 2; + } diff --git a/web/js/iviewer/test/lightbox/img/bg_transblack.png b/web/js/iviewer/test/lightbox/img/bg_transblack.png new file mode 100644 index 0000000000000000000000000000000000000000..855f7e5e46755227c8116ffa943f11517c83d89e GIT binary patch literal 932 zcmaJ=J#W)M7&f3(D587mbaEvoV&6GU99wa##CE7997RbaGBD&~Um7d5&)Ap7$%NP# znBfO7BX$O6Bz{46*bsk#a~h`%1WV_;_w+o^`+0AB-Dij8Kkba!UHiFj@Zb3u6s0;aE_6(Fy?GQ zXr5;=_U43v3Aqd+L;U^as|W($5MR_>=*A|Q1sCgt4A$MDx1M{NFP@))W~Ot2kT49g z@G466%n&!aIzQ*vvIsU1HaEoEphj*Fm^2}vCc%ma>k!nDgsP{isy+n@L{Nr`jFbve z^{S#n2)3Wdy(Rus?^~U%FK!v)jImgk<>hiIEvphuE@h-?TCSle6^^K+tBB#O5~U}F zf<;m<31Sw|2;_=*LKn;sd8D@~gz-)`O1EX=1(P!z%SeKGN(In${|^nr9Xe%wau@GE zh120GCUT#obdh+xanqCBRjiu{!HgzDO0SA4_GXmPbVg%f4r;)~UJ&K>2JgDM6QvAC z9&s!~Ds#!&<-KrN{i+YQYM6BTYcii?~ZaxZO z%spEq39gCXNoWW*DeJ-hSQ>lvwp@RIEZSbK%!85h#{Sjl;)+jCe%y^MH+F+hB0lX2 zAM2Zs?@j(BjvT8s%x)(Bc$|HIeemJvvrsPGyZ=adSrUHX>*JsKyK(HU^{G96^9PG@ B8*cyr literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox/img/btn_close.png b/web/js/iviewer/test/lightbox/img/btn_close.png new file mode 100644 index 0000000000000000000000000000000000000000..53180b3f3f0e402c8e6ff2e984423e00fe551315 GIT binary patch literal 1207 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMD`kd6ltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=Dp}Cc@k(Ggg0u(3#Z7WJivkG!?gW3h;*(zm}loVL$>z9|8 z>y;bp(sS1ij466f0+E7XwENH%k*kLnlK+R|5-EXD16wBLj11V?%RS zM>CjSm;B_?+|;}hnBEkGUPqjIK}jLE0BEyIYEfocYKmJ?ey#%8%T}3K++t|pX6EW@ z?hG`~5xZL;dQ)(_#R8{W^ns4i2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5=oFo`o|o zFlu|cIEGZ*O8W8tzdf^*82ckuhn!YdKKVX|N1YC5+VtAj1&DNf|J&Zs?vUfPgjLbu z59_LYHG$0!Ho5SeWRlpyf8-d84hP$#^BKREF&k>{QdN+D^Rr*}&f#Ri6HWdWU(PnL z%6cqR5qSTEuN&X0bPk~s=TXa5&wcW_K+*{ZTw0xR_RzwNE=DQ71PC2U%vdSf&KJdfnhPROJ zjy`Ssho?`@Rf!U6J-vqUGw0dIEzeeVKl|D8%yOPy>UANh>4%Og@G?2gTe~DWM4fLKd3c literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox/img/btn_zoomin.png b/web/js/iviewer/test/lightbox/img/btn_zoomin.png new file mode 100644 index 0000000000000000000000000000000000000000..6cdf77c472bb39a555c038668b297021202e6080 GIT binary patch literal 970 zcmaJ=F>KR76g^Z?P^AtqQKr)sHe#Qhrb&*vRbnS?BwV#=BqFhJv9FCu?KAe3xRnqR z5)#Zzbbx_{iH(T?39)owV`62Y69X%v+@(p%K(J){{^`B<|G)q4*~a?n?99~}0KjZx z&1uU2oO&-#%kQV-C!PvKtu40rw&>G@fr`&N3^qc#!}59Z0lgX)M9)H}MYY`xX!C@@f`)S*Uc_+G(2V>-u~@tT zO>AHto4R4d5>Lo!e0vO!C0=jK;d5Vb#(I=(_)h zhT#~UiY7a&_n*RPYd>aslcjtw@#NsP=T)kh*a@S8CoRr*N2j>a<$|YO9z%Pp0A1<@ zk%|X+*CmZ86*Tf#!?BQ5(1O4xw(a0bsqQQoM%6HCxKyyKrLu{OcHSt~DvKko!@a$b zMPkJD&$zXTTxEqYmYE%v1P_>BPk0CiEt6n!E!By7L#{u$7JDLBm&NF6uzwADv?bl6 zmSfw>U~GIANw+7`){knxZ^|pN+;A$b>}%)O$;rypCGZN>tA{VHd8|^_&0YGPy?UGtZB^56yc=Z?3lhI5!P`e!gJ7?44J)7Bp(>&fDtU$A19DJ1oBd literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox/img/btn_zoomout.png b/web/js/iviewer/test/lightbox/img/btn_zoomout.png new file mode 100644 index 0000000000000000000000000000000000000000..8394c217e645ddd505252c6ed977d5c10195e141 GIT binary patch literal 959 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 Ma993!F5x8q4bRE7oB#j- literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/lightbox/index.html b/web/js/iviewer/test/lightbox/index.html new file mode 100644 index 000000000..6b19253bf --- /dev/null +++ b/web/js/iviewer/test/lightbox/index.html @@ -0,0 +1,47 @@ + + + + + iViewer lightbox example + + + + + + + + Show lightbox! +
+ Show another lightbox! + +
+
+ +
+ +
    +
  • +
  • +
  • +
+ +

+ Use your scrollwheel or the zoom buttons to zoom in/out. + Click and drag to view other parts of the image when zoomed. +

+
+ + + + + + + + diff --git a/web/js/iviewer/test/lightbox/main.js b/web/js/iviewer/test/lightbox/main.js new file mode 100644 index 000000000..72dec655a --- /dev/null +++ b/web/js/iviewer/test/lightbox/main.js @@ -0,0 +1,59 @@ +(function($) { + function init() { + var viewer = $("#iviewer .viewer"). + width($(window).width() - 80). + height($(window).height()). + iviewer({ + ui_disabled : true, + zoom : 'fit', + onFinishLoad : function(ev) { + $("#iviewer .loader").fadeOut(); + $("#iviewer .viewer").fadeIn(); + } + } + ); + + $("#iviewer .zoomin").click(function(e) { + e.preventDefault(); + viewer.iviewer('zoom_by', 1); + }); + + $("#iviewer .zoomout").click(function(e) { + e.preventDefault(); + viewer.iviewer('zoom_by', -1); + }); + } + + function open(src) { + $("#iviewer").fadeIn().trigger('fadein'); + $("#iviewer .loader").show(); + $("#iviewer .viewer").hide(); + + var viewer = $("#iviewer .viewer") + .iviewer('loadImage', src) + .iviewer('set_zoom', 'fit'); + } + + function close() { + $("#iviewer").fadeOut().trigger('fadeout'); + } + + $('.go').click(function(e) { + e.preventDefault(); + var src = $(this).attr('href'); + open(src); + }); + + $("#iviewer .close").click(function(e) { + e.preventDefault(); + close(); + }); + + $("#iviewer").bind('fadein', function() { + $(window).keydown(function(e) { + if (e.which == 27) close(); + }); + }); + + init(); +})(jQuery); diff --git a/web/js/iviewer/test/lightbox/style.css b/web/js/iviewer/test/lightbox/style.css new file mode 100644 index 000000000..ff27a9b89 --- /dev/null +++ b/web/js/iviewer/test/lightbox/style.css @@ -0,0 +1,69 @@ +* { + margin: 0; + padding: 0; +} + +#iviewer { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + background: url('img/bg_transblack.png'); + display: none; + z-index: 1; +} + + #iviewer .controls { + position: fixed; + top: 0; + right: 0; + width: 40px; + } + + #iviewer .controls li { + float: right; + clear: right; + position: relative; + width: 40px; + height: 40px; + background-repeat: no-repeat; + background-position: center center; + display: block; + cursor: pointer; + z-index: 3; + } + + #iviewer .controls:hover { + cursor: pointer; + } + + #iviewer .controls .close { background-image: url('img/btn_close.png'); } + #iviewer .controls .zoomin { background-image: url('img/btn_zoomin.png'); } + #iviewer .controls .zoomout { background-image: url('img/btn_zoomout.png'); } + + #iviewer .info { + position: fixed; + bottom: 0; + width: 100%; + text-align: center; + color: #ccc; + font-size: 16px; + padding: 0; + } + + #iviewer .viewer { + position: fixed; + top: 0; + left: 40px; + z-index: 2; + display: none; + } + + #iviewer .loader { + position: fixed; + width: 100%; + height: 100%; + background: url('img/spinner.gif') no-repeat center center; + z-index: 2; + } \ No newline at end of file diff --git a/web/js/iviewer/test/test_active_with_objects.GIF b/web/js/iviewer/test/test_active_with_objects.GIF new file mode 100644 index 0000000000000000000000000000000000000000..1e23402662e48edbaea2c638aa52a530c14d74d1 GIT binary patch literal 9001 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%0DxRTxC0$K_uT8iZTiEYCBn7%3Q#h zOu__1tv-Ru$c1)-~F?*FU4*AqHn%F6|`PzXAV|aHAJ`lLc zoz<&gsfj(7>r;TfDXUZbq&k*7RLLyZETrf#TOOWy#Z(<%s^n5VmU0+qF1j%@=!O|f z{nNoB!Wh){Mb|MlAUvDpwPm5#lkxNuQ45J^quiwet0j!?Q<53fw_zdQYBb5CVQK9o1Px>BT~~Thog~AUb?T?XVfW=yf|B# z1uq_9sGcMJ)6fT3T#fz!6+$WuWC{XMg+ySXHm1`6^HE!wOxg4yx;4gl~_LFW7HeEE@ z@dz7Gm1oRQIMmf;S{QO)+l;DzqBz~Y-1*u@luU25v)Z&WWy418R5xz8O|3kwYVSoB zOsn5&vNFdkR8FsdWWmv?7^Y}zNMog4im!$2+vSw_k*qpLN?5~XX$OfE(2M7ssy}H+ z^@+)2&oG!m7xwo!HS3D~=47Q z4jB-6>K#vCpH(-LwW1uPnU^QXr(0$;hF#nz3~+1CT1e$e^}w+!0}_R8Pl8JWm~1%k zecj5RiZKLy%vv2mOm(mjmwl5_C?;*DEM@f}40Fy}TbiaU7u-~G*Xc4Dcs$+hbRWwj zDd;u#lWnLSEaMoi$Y zkq!k*U1TRP%O+&ZnI4GEjK#;7!}1Ba+0$n8y`V{Hyb*j_SsoLA>-h(C z4fX>4J)UREgra_w@1Q>XY`yAM7s>X(YFo5PnPcJ zdR)8q$;NJNY%Z9~?(^_lHNFIqg5j>k;4yV(KK@>X5^^%0En9n;JsvqD2($^SQg_H% z)vHj)MA~$x5#oT(89N~6XsBYhX4!kXIy6{~;aS|eG^AZ4=RWnOX?o)5IbYSgIo4&e z;P3;iKg;ysypnU#F+6i#1r&8wZE1L%FebS9D(!qwIr7+T$!_u^nTNqkx|Os`(QUbI zt`Qcy6PP^VuB5$3T*aW3l~GEas=4rlq@6Pg?7dejhAu%LoPLR-<=o3HKI*e`iKf36 zX({PX*t$8z%ruI8KHT%7^KrIcYh(&?_0)l+o>X6Yi+sgp8~xLCuR}!4HS}r!YS7|e zWb)HvBP!8x_NDV{%2cMURM8DvCAQKq?JZCG>*=R9?u!;aTZn|~@0PyU$xq!-7eXw2e~xo7l9d{q3+O2Ym8n9FpG+CF0zE zn=BZjM(Yz+F#0BuT%c56Tm1!q3M4v)A18`rV_z<{1_7{~S3; z!eRZ8n!6_)=Me4(foVjh$uw8b#)T_Y!q_Td;>>!S&Y9xp<*h{Xt>jYTA7CO3vBf33 zt;UzdF%T3r$1|dNadHI-=R2hhUyvu(65O8b#YhRp28m~g=0%-0?04Y`V$Zfq69EAy zHh+-B&4t(rK{IhS^)Jci=PJ*aVG`U|;;#rB{+nl?M7FQj6W=whc&%P45h#ggBgul0 z%!G8{GUCY;Rd6dbDKT*>@pbfsNv+p+EWnD_NIS12q~8#Bv?sR}vr3BGlcpn-cugzy zzDSzhOOl5}`tg^J*(52w`OYVVG6qFbyP?w3UY(^@onv}3TpTiNSJFOmG77X3tQcv_ zhAtI_PB4?yMS+Z(myE}bgcd>?ijfhgmFdR^8_mlUgTUqpnXgoNpI_v8R(5+8fsIyk zea3Tr*K@r&SiHz({b_rwes>4n>j~1&@gMIFaO(MXk0mHu_CauE4=dh79FhM4rOgFp literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/test_image.jpg b/web/js/iviewer/test/test_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a0f86bc2fe593193e112d73ca709260e8509908 GIT binary patch literal 139082 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 UHacV&CAp1vj<{*O;IU`_+2ny#ng9R* literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/test_image2.jpg b/web/js/iviewer/test/test_image2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55a1f9e940d84131df396ff9851be3888c7ac900 GIT binary patch literal 60826 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 Bn*jg- literal 0 HcmV?d00001 diff --git a/web/js/iviewer/test/test_image3.jpg b/web/js/iviewer/test/test_image3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..555eef7e8f108b72128f110cb725b6fc77a72ce8 GIT binary patch literal 79968 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%0A_1KDGoq1zYIy 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

+ value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + }, + + disableSelection: function() { + return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }, + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + } +}); + +$.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; + if ( border ) { + size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; +}); + +// selectors +function visible( element ) { + return !$( element ).parents().andSelf().filter(function() { + return $.curCSS( this, "visibility" ) === "hidden" || + $.expr.filters.hidden( this ); + }).length; +} + +$.extend( $.expr[ ":" ], { + data: function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + var nodeName = element.nodeName.toLowerCase(), + tabIndex = $.attr( element, "tabindex" ); + if ( "area" === nodeName ) { + var map = element.parentNode, + mapName = map.name, + img; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap=#" + mapName + "]" )[0]; + return !!img && visible( img ); + } + return ( /input|select|textarea|button|object/.test( nodeName ) + ? !element.disabled + : "a" == nodeName + ? element.href || !isNaN( tabIndex ) + : !isNaN( tabIndex )) + // the element and all of its ancestors must be visible + && visible( element ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ); + return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" ); + } +}); + +// support +$(function() { + var body = document.body, + div = body.appendChild( div = document.createElement( "div" ) ); + + $.extend( div.style, { + minHeight: "100px", + height: "auto", + padding: 0, + borderWidth: 0 + }); + + $.support.minHeight = div.offsetHeight === 100; + $.support.selectstart = "onselectstart" in div; + + // set display to none to avoid a layout bug in IE + // http://dev.jquery.com/ticket/4014 + body.removeChild( div ).style.display = "none"; +}); + + + + + +// deprecated +$.extend( $.ui, { + // $.ui.plugin is deprecated. Use the proxy pattern instead. + plugin: { + add: function( module, option, set ) { + var proto = $.ui[ module ].prototype; + for ( var i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args ) { + var set = instance.plugins[ name ]; + if ( !set || !instance.element[ 0 ].parentNode ) { + return; + } + + for ( var i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } + }, + + // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() + contains: function( a, b ) { + return document.compareDocumentPosition ? + a.compareDocumentPosition( b ) & 16 : + a !== b && a.contains( b ); + }, + + // only used by resizable + hasScroll: function( el, a ) { + + //If overflow is hidden, the element might have extra content, but the user wants to hide it + if ( $( el ).css( "overflow" ) === "hidden") { + return false; + } + + var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", + has = false; + + if ( el[ scroll ] > 0 ) { + return true; + } + + // TODO: determine which cases actually cause this to happen + // if the element doesn't have the scroll set, see if it's possible to + // set the scroll + el[ scroll ] = 1; + has = ( el[ scroll ] > 0 ); + el[ scroll ] = 0; + return has; + }, + + // these are odd functions, fix the API or move into individual plugins + isOverAxis: function( x, reference, size ) { + //Determines when x coordinate is over "b" element axis + return ( x > reference ) && ( x < ( reference + size ) ); + }, + isOver: function( y, x, top, left, height, width ) { + //Determines when x, y coordinates is over "b" element + return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); + } +}); + +})( jQuery ); diff --git a/web/js/iviewer/test/ui/jquery.ui.mouse.js b/web/js/iviewer/test/ui/jquery.ui.mouse.js new file mode 100644 index 000000000..b8db85ceb --- /dev/null +++ b/web/js/iviewer/test/ui/jquery.ui.mouse.js @@ -0,0 +1,156 @@ +/*! + * jQuery UI Mouse 1.8.11 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.mouse", { + options: { + cancel: ':input,option', + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var self = this; + + this.element + .bind('mousedown.'+this.widgetName, function(event) { + return self._mouseDown(event); + }) + .bind('click.'+this.widgetName, function(event) { + if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { + $.removeData(event.target, self.widgetName + '.preventClickEvent'); + event.stopImmediatePropagation(); + return false; + } + }); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.unbind('.'+this.widgetName); + }, + + _mouseDown: function(event) { + // don't let more than one widget handle mouseStart + // TODO: figure out why we have to use originalEvent + event.originalEvent = event.originalEvent || {}; + if (event.originalEvent.mouseHandled) { return; } + + // we may have missed mouseup (out of window) + (this._mouseStarted && this._mouseUp(event)); + + this._mouseDownEvent = event; + + var self = this, + btnIsLeft = (event.which == 1), + elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false); + if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if (!this.mouseDelayMet) { + this._mouseDelayTimer = setTimeout(function() { + self.mouseDelayMet = true; + }, this.options.delay); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = (this._mouseStart(event) !== false); + if (!this._mouseStarted) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) { + $.removeData(event.target, this.widgetName + '.preventClickEvent'); + } + + // these delegates are required to keep context + this._mouseMoveDelegate = function(event) { + return self._mouseMove(event); + }; + this._mouseUpDelegate = function(event) { + return self._mouseUp(event); + }; + $(document) + .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + event.preventDefault(); + event.originalEvent.mouseHandled = true; + return true; + }, + + _mouseMove: function(event) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { + return this._mouseUp(event); + } + + if (this._mouseStarted) { + this._mouseDrag(event); + return event.preventDefault(); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = + (this._mouseStart(this._mouseDownEvent, event) !== false); + (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); + } + + return !this._mouseStarted; + }, + + _mouseUp: function(event) { + $(document) + .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + if (this._mouseStarted) { + this._mouseStarted = false; + + if (event.target == this._mouseDownEvent.target) { + $.data(event.target, this.widgetName + '.preventClickEvent', true); + } + + this._mouseStop(event); + } + + return false; + }, + + _mouseDistanceMet: function(event) { + return (Math.max( + Math.abs(this._mouseDownEvent.pageX - event.pageX), + Math.abs(this._mouseDownEvent.pageY - event.pageY) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function(event) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function(event) {}, + _mouseDrag: function(event) {}, + _mouseStop: function(event) {}, + _mouseCapture: function(event) { return true; } +}); + +})(jQuery); diff --git a/web/js/iviewer/test/ui/jquery.ui.widget.js b/web/js/iviewer/test/ui/jquery.ui.widget.js new file mode 100644 index 000000000..b6b1beea9 --- /dev/null +++ b/web/js/iviewer/test/ui/jquery.ui.widget.js @@ -0,0 +1,262 @@ +/*! + * jQuery UI Widget 1.8.11 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function( $, undefined ) { + +// jQuery 1.4+ +if ( $.cleanData ) { + var _cleanData = $.cleanData; + $.cleanData = function( elems ) { + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + $( elem ).triggerHandler( "remove" ); + } + _cleanData( elems ); + }; +} else { + var _remove = $.fn.remove; + $.fn.remove = function( selector, keepData ) { + return this.each(function() { + if ( !keepData ) { + if ( !selector || $.filter( selector, [ this ] ).length ) { + $( "*", this ).add( [ this ] ).each(function() { + $( this ).triggerHandler( "remove" ); + }); + } + } + return _remove.call( $(this), selector, keepData ); + }); + }; +} + +$.widget = function( name, base, prototype ) { + var namespace = name.split( "." )[ 0 ], + fullName; + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName ] = function( elem ) { + return !!$.data( elem, name ); + }; + + $[ namespace ] = $[ namespace ] || {}; + $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + var basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from +// $.each( basePrototype, function( key, val ) { +// if ( $.isPlainObject(val) ) { +// basePrototype[ key ] = $.extend( {}, val ); +// } +// }); + basePrototype.options = $.extend( true, {}, basePrototype.options ); + $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { + namespace: namespace, + widgetName: name, + widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, + widgetBaseClass: fullName + }, prototype ); + + $.widget.bridge( name, $[ namespace ][ name ] ); +}; + +$.widget.bridge = function( name, object ) { + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = Array.prototype.slice.call( arguments, 1 ), + returnValue = this; + + // allow multiple hashes to be passed on init + options = !isMethodCall && args.length ? + $.extend.apply( null, [ true, options ].concat(args) ) : + options; + + // prevent calls to internal methods + if ( isMethodCall && options.charAt( 0 ) === "_" ) { + return returnValue; + } + + if ( isMethodCall ) { + this.each(function() { + var instance = $.data( this, name ), + methodValue = instance && $.isFunction( instance[options] ) ? + instance[ options ].apply( instance, args ) : + instance; + // TODO: add this back in 1.9 and use $.error() (see #5972) +// if ( !instance ) { +// throw "cannot call methods on " + name + " prior to initialization; " + +// "attempted to call method '" + options + "'"; +// } +// if ( !$.isFunction( instance[options] ) ) { +// throw "no such method '" + options + "' for " + name + " widget instance"; +// } +// var methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue; + return false; + } + }); + } else { + this.each(function() { + var instance = $.data( this, name ); + if ( instance ) { + instance.option( options || {} )._init(); + } else { + $.data( this, name, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } +}; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + options: { + disabled: false + }, + _createWidget: function( options, element ) { + // $.widget.bridge stores the plugin instance, but we do it anyway + // so that it's stored even before the _create function runs + $.data( element, this.widgetName, this ); + this.element = $( element ); + this.options = $.extend( true, {}, + this.options, + this._getCreateOptions(), + options ); + + var self = this; + this.element.bind( "remove." + this.widgetName, function() { + self.destroy(); + }); + + this._create(); + this._trigger( "create" ); + this._init(); + }, + _getCreateOptions: function() { + return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ]; + }, + _create: function() {}, + _init: function() {}, + + destroy: function() { + this.element + .unbind( "." + this.widgetName ) + .removeData( this.widgetName ); + this.widget() + .unbind( "." + this.widgetName ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetBaseClass + "-disabled " + + "ui-state-disabled" ); + }, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.extend( {}, this.options ); + } + + if (typeof key === "string" ) { + if ( value === undefined ) { + return this.options[ key ]; + } + options = {}; + options[ key ] = value; + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var self = this; + $.each( options, function( key, value ) { + self._setOption( key, value ); + }); + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + [ value ? "addClass" : "removeClass"]( + this.widgetBaseClass + "-disabled" + " " + + "ui-state-disabled" ) + .attr( "aria-disabled", value ); + } + + return this; + }, + + enable: function() { + return this._setOption( "disabled", false ); + }, + disable: function() { + return this._setOption( "disabled", true ); + }, + + _trigger: function( type, event, data ) { + var callback = this.options[ type ]; + + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + data = data || {}; + + // copy original event properties over to the new event + // this would happen if we could call $.event.fix instead of $.Event + // but we don't have a way to force an event to be fixed multiple times + if ( event.originalEvent ) { + for ( var i = $.event.props.length, prop; i; ) { + prop = $.event.props[ --i ]; + event[ prop ] = event.originalEvent[ prop ]; + } + } + + this.element.trigger( event, data ); + + return !( $.isFunction(callback) && + callback.call( this.element[0], event, data ) === false || + event.isDefaultPrevented() ); + } +}; + +})( jQuery ); diff --git a/web/js/jquery-ui.min.js b/web/js/jquery-ui.min.js new file mode 100644 index 000000000..17eab7903 --- /dev/null +++ b/web/js/jquery-ui.min.js @@ -0,0 +1,13 @@ +/*! jQuery UI - v1.11.2 - 2014-10-16 +* http://jqueryui.com +* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js +* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ + +(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("
"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("
").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return n=!a&&o.length?e.widget.extend.apply(null,[n].concat(o)):n,a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))}),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("
"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.widthi?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,e.top+p+f+m>u&&(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,e.top+p+f+m>d&&(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.2",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr("aria-selected","false"),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.length&&(!t.length||e.index()",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i) +}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("
"+"",C=d?"":"",x=0;7>x;x++)N=(x+u)%7,C+="";for(M+=C+"",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),z=Q?this.maxRows>I?this.maxRows:I:I,this.maxRows=z,H=this._daylightSavingAdjust(new Date(et,Z,1-P)),F=0;z>F;F++){for(M+="",E=d?"":"",x=0;7>x;x++)O=g?g.apply(e.input?e.input[0]:null,[H]):[!0,""],j=H.getMonth()!==Z,W=j&&!y||!O[0]||X&&X>H||$&&H>$,E+="",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);M+=E+""}Z++,Z>11&&(Z=0,et++),M+="
"+this._get(e,"weekHeader")+"=5?" class='ui-datepicker-week-end'":"")+">"+""+p[N]+"
"+this._get(e,"calculateWeek")(H)+""+(j&&!v?" ":W?""+H.getDate()+"":""+H.getDate()+"")+"
"+(Q?""+(K[0]>0&&T===K[1]-1?"
":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="
",_="";if(a||!g)_+=""+o[t]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+=""}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+=""+i+"";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="
"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.2",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.options;return this._blurActiveElement(t),this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("
").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var i=this.document[0];if(this.handleElement.is(t.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(s){}},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper),n=s?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) +},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=e.extend({},i,{item:s.element});s.sortables=[],e(s.options.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,e.each(s.sortables,function(){var e=this;e.isOver?(e.isOver=0,s.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,n))})},drag:function(t,i,s){e.each(s.sortables,function(){var n=!1,a=this;a.positionAbs=s.positionAbs,a.helperProportions=s.helperProportions,a.offset.click=s.offset.click,a._intersectsWith(a.containerCache)&&(n=!0,e.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==a&&this._intersectsWith(this.containerCache)&&e.contains(a.element[0],this.element[0])&&(n=!1),n})),n?(a.isOver||(a.isOver=1,a.currentItem=i.helper.appendTo(a.element).data("ui-sortable-item",!0),a.options._helper=a.options.helper,a.options.helper=function(){return i.helper[0]},t.target=a.currentItem[0],a._mouseCapture(t,!0),a._mouseStart(t,!0,!0),a.offset.click.top=s.offset.click.top,a.offset.click.left=s.offset.click.left,a.offset.parent.left-=s.offset.parent.left-a.offset.parent.left,a.offset.parent.top-=s.offset.parent.top-a.offset.parent.top,s._trigger("toSortable",t),s.dropped=a.element,e.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,a.fromOutside=s),a.currentItem&&(a._mouseDrag(t),i.position=a.position)):a.isOver&&(a.isOver=0,a.cancelHelperRemoval=!0,a.options._revert=a.options.revert,a.options.revert=!1,a._trigger("out",t,a._uiHash(a)),a._mouseStop(t,!0),a.options.revert=a.options._revert,a.options.helper=a.options._helper,a.placeholder&&a.placeholder.remove(),s._refreshOffsets(t),i.position=s._generatePosition(t,!0),s._trigger("fromSortable",t),s.dropped=!1,e.each(s.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.scrollParentNotHidden[0],r=s.document[0];o!==r&&"HTML"!==o.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+o.offsetHeight-t.pageY=0;c--)h=s.snapElements[c].left-s.margins.left,l=h+s.snapElements[c].width,u=s.snapElements[c].top-s.margins.top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("
"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=this.element.children(this.handles[i]).first().show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s,n=this.originalMousePosition,a=this.axis,o=t.pageX-n.left||0,r=t.pageY-n.top||0,h=this._change[a];return this._updatePrevProperties(),h?(i=h.apply(this,[t,o,r]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidthe.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],s=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],n=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)i[t]=parseInt(s[t],10)||0,i[t]+=parseInt(n[t],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("
"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t){var i,s,n,a,o=e(this).resizable("instance"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,d={top:0,left:0},c=o.containerElement,p=!0;c[0]!==document&&/static/.test(c.css("position"))&&(d=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-d.left),u&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-d.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-d.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(t,s){e(t).each(function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&i>=0&&(a[t]=i||null)}),t.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):e.each(n.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),s=i.options,n=i.size,a=i.originalSize,o=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,u=h[1]||1,d=Math.round((n.width-a.width)/l)*l,c=Math.round((n.height-a.height)/u)*u,p=a.width+d,f=a.height+c,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,y=s.minHeight&&s.minHeight>f;s.grid=h,v&&(p+=l),y&&(f+=u),m&&(p-=l),g&&(f-=u),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=o.top-c):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=o.left-d):((0>=f-u||0>=p-l)&&(t=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=o.top-c):(f=u-t.height,i.size.height=f,i.position.top=o.top+a.height-f),p-l>0?(i.size.width=p,i.position.left=o.left-d):(p=u-t.height,i.size.width=p,i.position.left=o.left+a.width-p))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.2",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("
").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0; +if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("
").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("
").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("
").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("
").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.2",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=e(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(i,{offset:i.element.offset()}),i.options.tolerance,t)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s,n){if(!i.offset)return!1;var a=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,r=a+t.helperProportions.width,h=o+t.helperProportions.height,l=i.offset.left,u=i.offset.top,d=l+i.proportions().width,c=u+i.proportions().height;switch(s){case"fit":return a>=l&&d>=r&&o>=u&&c>=h;case"intersect":return a+t.helperProportions.width/2>l&&d>r-t.helperProportions.width/2&&o+t.helperProportions.height/2>u&&c>h-t.helperProportions.height/2;case"pointer":return e(n.pageY,u,i.proportions().height)&&e(n.pageX,l,i.proportions().width);case"touch":return(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c)&&(a>=l&&d>=a||r>=l&&d>=r||l>a&&r>d);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance,i),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var y="ui-effects-",b=e;e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("

")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(b),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(b.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.2",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(y+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(y+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("

").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("
").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; +f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("
").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.2",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("
").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("
").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.2",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:h(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:h(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:h(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:h(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:h(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(h(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0] +}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){o.html(e),s._trigger("load",i,r)},1)}).complete(function(e,t){setTimeout(function(){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.2",options:{content:function(){var t=e(this).attr("title")||"";return e("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("
").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t.element)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s.element[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){e.data("ui-tooltip-open")&&n._delay(function(){t&&(t.type=a),this._open(t,e,i)})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){u.of=e,o.is(":hidden")||o.position(u)}var a,o,r,h,l,u=e.extend({},this.options.position);if(s){if(a=this._find(i))return a.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),o=a.tooltip,this._addDescribedBy(i,o.attr("id")),o.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(l=s.clone(),l.removeAttr("id").find("[id]").removeAttr("id")):l=s,e("
").html(l).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):o.position(e.extend({of:i},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){o.is(":visible")&&(n(u.of),clearInterval(h))},e.fx.interval)),this._trigger("open",t,{tooltip:o}),r={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}},i[0]!==this.element[0]&&(r.remove=function(){this._removeTooltip(o)}),t&&"mouseover"!==t.type||(r.mouseleave="close"),t&&"focusin"!==t.type||(r.focusout="close"),this._on(!0,i,r)}},close:function(t){var i,s=this,n=e(t?t.currentTarget:this.element),a=this._find(n);a&&(i=a.tooltip,a.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),a.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(e(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,i){e(i.element).attr("title",i.title),delete s.parents[t]}),a.closing=!0,this._trigger("close",t,{tooltip:i}),a.hiding||(a.closing=!1)))},_tooltip:function(t){var i=e("
").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("
").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]={element:t,tooltip:i}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur"),a=s.element;n.target=n.currentTarget=a[0],t.close(n,!0),e("#"+i).remove(),a.data("ui-tooltip-title")&&(a.attr("title")||a.attr("title",a.data("ui-tooltip-title")),a.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file diff --git a/web/js/jquery.fileupload.js b/web/js/jquery.fileupload.js new file mode 100644 index 000000000..57653af60 --- /dev/null +++ b/web/js/jquery.fileupload.js @@ -0,0 +1,1457 @@ +/* + * jQuery File Upload Plugin 5.41.1 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, window, document, location, Blob, FormData */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'jquery.ui.widget' + ], factory); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Detect file input support, based on + // http://viljamis.com/blog/2012/file-upload-support-on-mobile/ + $.support.fileInput = !(new RegExp( + // Handle devices which give false positives for the feature detection: + '(Android (1\\.[0156]|2\\.[01]))' + + '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + + '|(w(eb)?OSBrowser)|(webOS)' + + '|(Kindle/(1\\.0|2\\.[05]|3\\.0))' + ).test(window.navigator.userAgent) || + // Feature detection for all other devices: + $('').prop('disabled')); + + // The FileReader API is not actually used, but works as feature detection, + // as some Safari versions (5?) support XHR file uploads via the FormData API, + // but not non-multipart XHR file uploads. + // window.XMLHttpRequestUpload is not available on IE10, so we check for + // window.ProgressEvent instead to detect XHR2 file upload capability: + $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader); + $.support.xhrFormDataFileUpload = !!window.FormData; + + // Detect support for Blob slicing (required for chunked uploads): + $.support.blobSlice = window.Blob && (Blob.prototype.slice || + Blob.prototype.webkitSlice || Blob.prototype.mozSlice); + + // Helper function to create drag handlers for dragover/dragenter/dragleave: + function getDragHandler(type) { + var isDragOver = type === 'dragover'; + return function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var dataTransfer = e.dataTransfer; + if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && + this._trigger( + type, + $.Event(type, {delegatedEvent: e}) + ) !== false) { + e.preventDefault(); + if (isDragOver) { + dataTransfer.dropEffect = 'copy'; + } + } + }; + } + + // The fileupload widget listens for change events on file input fields defined + // via fileInput setting and paste or drop events of the given dropZone. + // In addition to the default jQuery Widget methods, the fileupload widget + // exposes the "add" and "send" methods, to add or directly send files using + // the fileupload API. + // By default, files added via file input selection, paste, drag & drop or + // "add" method are uploaded immediately, but it is possible to override + // the "add" callback option to queue file uploads. + $.widget('blueimp.fileupload', { + + options: { + // The drop target element(s), by the default the complete document. + // Set to null to disable drag & drop support: + dropZone: $(document), + // The paste target element(s), by the default the complete document. + // Set to null to disable paste support: + pasteZone: $(document), + // The file input field(s), that are listened to for change events. + // If undefined, it is set to the file input fields inside + // of the widget element on plugin initialization. + // Set to null to disable the change listener. + fileInput: undefined, + // By default, the file input field is replaced with a clone after + // each input field change event. This is required for iframe transport + // queues and allows change events to be fired for the same file + // selection, but can be disabled by setting the following option to false: + replaceFileInput: true, + // The parameter name for the file form data (the request argument name). + // If undefined or empty, the name property of the file input field is + // used, or "files[]" if the file input name property is also empty, + // can be a string or an array of strings: + paramName: undefined, + // By default, each file of a selection is uploaded using an individual + // request for XHR type uploads. Set to false to upload file + // selections in one request each: + singleFileUploads: true, + // To limit the number of files uploaded with one XHR request, + // set the following option to an integer greater than 0: + limitMultiFileUploads: undefined, + // The following option limits the number of files uploaded with one + // XHR request to keep the request size under or equal to the defined + // limit in bytes: + limitMultiFileUploadSize: undefined, + // Multipart file uploads add a number of bytes to each uploaded file, + // therefore the following option adds an overhead for each file used + // in the limitMultiFileUploadSize configuration: + limitMultiFileUploadSizeOverhead: 512, + // Set the following option to true to issue all file upload requests + // in a sequential order: + sequentialUploads: false, + // To limit the number of concurrent uploads, + // set the following option to an integer greater than 0: + limitConcurrentUploads: undefined, + // Set the following option to true to force iframe transport uploads: + forceIframeTransport: false, + // Set the following option to the location of a redirect url on the + // origin server, for cross-domain iframe transport uploads: + redirect: undefined, + // The parameter name for the redirect url, sent as part of the form + // data and set to 'redirect' if this option is empty: + redirectParamName: undefined, + // Set the following option to the location of a postMessage window, + // to enable postMessage transport uploads: + postMessage: undefined, + // By default, XHR file uploads are sent as multipart/form-data. + // The iframe transport is always using multipart/form-data. + // Set to false to enable non-multipart XHR uploads: + multipart: true, + // To upload large files in smaller chunks, set the following option + // to a preferred maximum chunk size. If set to 0, null or undefined, + // or the browser does not support the required Blob API, files will + // be uploaded as a whole. + maxChunkSize: undefined, + // When a non-multipart upload or a chunked multipart upload has been + // aborted, this option can be used to resume the upload by setting + // it to the size of the already uploaded bytes. This option is most + // useful when modifying the options object inside of the "add" or + // "send" callbacks, as the options are cloned for each file upload. + uploadedBytes: undefined, + // By default, failed (abort or error) file uploads are removed from the + // global progress calculation. Set the following option to false to + // prevent recalculating the global progress data: + recalculateProgress: true, + // Interval in milliseconds to calculate and trigger progress events: + progressInterval: 100, + // Interval in milliseconds to calculate progress bitrate: + bitrateInterval: 500, + // By default, uploads are started automatically when adding files: + autoUpload: true, + + // Error and info messages: + messages: { + uploadedBytes: 'Uploaded bytes exceed file size' + }, + + // Translation function, gets the message key to be translated + // and an object with context specific data as arguments: + i18n: function (message, context) { + message = this.messages[message] || message.toString(); + if (context) { + $.each(context, function (key, value) { + message = message.replace('{' + key + '}', value); + }); + } + return message; + }, + + // Additional form data to be sent along with the file uploads can be set + // using this option, which accepts an array of objects with name and + // value properties, a function returning such an array, a FormData + // object (for XHR file uploads), or a simple object. + // The form of the first fileInput is given as parameter to the function: + formData: function (form) { + return form.serializeArray(); + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop, paste or add API call). + // If the singleFileUploads option is enabled, this callback will be + // called once for each file in the selection for XHR file uploads, else + // once for each file selection. + // + // The upload starts when the submit method is invoked on the data parameter. + // The data object contains a files property holding the added files + // and allows you to override plugin options as well as define ajax settings. + // + // Listeners for this callback can also be bound the following way: + // .bind('fileuploadadd', func); + // + // data.submit() returns a Promise object and allows to attach additional + // handlers using jQuery's Deferred callbacks: + // data.submit().done(func).fail(func).always(func); + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + if (data.autoUpload || (data.autoUpload !== false && + $(this).fileupload('option', 'autoUpload'))) { + data.process().done(function () { + data.submit(); + }); + } + }, + + // Other callbacks: + + // Callback for the submit event of each file upload: + // submit: function (e, data) {}, // .bind('fileuploadsubmit', func); + + // Callback for the start of each file upload request: + // send: function (e, data) {}, // .bind('fileuploadsend', func); + + // Callback for successful uploads: + // done: function (e, data) {}, // .bind('fileuploaddone', func); + + // Callback for failed (abort or error) uploads: + // fail: function (e, data) {}, // .bind('fileuploadfail', func); + + // Callback for completed (success, abort or error) requests: + // always: function (e, data) {}, // .bind('fileuploadalways', func); + + // Callback for upload progress events: + // progress: function (e, data) {}, // .bind('fileuploadprogress', func); + + // Callback for global upload progress events: + // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func); + + // Callback for uploads start, equivalent to the global ajaxStart event: + // start: function (e) {}, // .bind('fileuploadstart', func); + + // Callback for uploads stop, equivalent to the global ajaxStop event: + // stop: function (e) {}, // .bind('fileuploadstop', func); + + // Callback for change events of the fileInput(s): + // change: function (e, data) {}, // .bind('fileuploadchange', func); + + // Callback for paste events to the pasteZone(s): + // paste: function (e, data) {}, // .bind('fileuploadpaste', func); + + // Callback for drop events of the dropZone(s): + // drop: function (e, data) {}, // .bind('fileuploaddrop', func); + + // Callback for dragover events of the dropZone(s): + // dragover: function (e) {}, // .bind('fileuploaddragover', func); + + // Callback for the start of each chunk upload request: + // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func); + + // Callback for successful chunk uploads: + // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func); + + // Callback for failed (abort or error) chunk uploads: + // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func); + + // Callback for completed (success, abort or error) chunk upload requests: + // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func); + + // The plugin options are used as settings object for the ajax calls. + // The following are jQuery ajax settings required for the file uploads: + processData: false, + contentType: false, + cache: false + }, + + // A list of options that require reinitializing event listeners and/or + // special initialization code: + _specialOptions: [ + 'fileInput', + 'dropZone', + 'pasteZone', + 'multipart', + 'forceIframeTransport' + ], + + _blobSlice: $.support.blobSlice && function () { + var slice = this.slice || this.webkitSlice || this.mozSlice; + return slice.apply(this, arguments); + }, + + _BitrateTimer: function () { + this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime()); + this.loaded = 0; + this.bitrate = 0; + this.getBitrate = function (now, loaded, interval) { + var timeDiff = now - this.timestamp; + if (!this.bitrate || !interval || timeDiff > interval) { + this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8; + this.loaded = loaded; + this.timestamp = now; + } + return this.bitrate; + }; + }, + + _isXHRUpload: function (options) { + return !options.forceIframeTransport && + ((!options.multipart && $.support.xhrFileUpload) || + $.support.xhrFormDataFileUpload); + }, + + _getFormData: function (options) { + var formData; + if ($.type(options.formData) === 'function') { + return options.formData(options.form); + } + if ($.isArray(options.formData)) { + return options.formData; + } + if ($.type(options.formData) === 'object') { + formData = []; + $.each(options.formData, function (name, value) { + formData.push({name: name, value: value}); + }); + return formData; + } + return []; + }, + + _getTotal: function (files) { + var total = 0; + $.each(files, function (index, file) { + total += file.size || 1; + }); + return total; + }, + + _initProgressObject: function (obj) { + var progress = { + loaded: 0, + total: 0, + bitrate: 0 + }; + if (obj._progress) { + $.extend(obj._progress, progress); + } else { + obj._progress = progress; + } + }, + + _initResponseObject: function (obj) { + var prop; + if (obj._response) { + for (prop in obj._response) { + if (obj._response.hasOwnProperty(prop)) { + delete obj._response[prop]; + } + } + } else { + obj._response = {}; + } + }, + + _onProgress: function (e, data) { + if (e.lengthComputable) { + var now = ((Date.now) ? Date.now() : (new Date()).getTime()), + loaded; + if (data._time && data.progressInterval && + (now - data._time < data.progressInterval) && + e.loaded !== e.total) { + return; + } + data._time = now; + loaded = Math.floor( + e.loaded / e.total * (data.chunkSize || data._progress.total) + ) + (data.uploadedBytes || 0); + // Add the difference from the previously loaded state + // to the global loaded counter: + this._progress.loaded += (loaded - data._progress.loaded); + this._progress.bitrate = this._bitrateTimer.getBitrate( + now, + this._progress.loaded, + data.bitrateInterval + ); + data._progress.loaded = data.loaded = loaded; + data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate( + now, + loaded, + data.bitrateInterval + ); + // Trigger a custom progress event with a total data property set + // to the file size(s) of the current upload and a loaded data + // property calculated accordingly: + this._trigger( + 'progress', + $.Event('progress', {delegatedEvent: e}), + data + ); + // Trigger a global progress event for all current file uploads, + // including ajax calls queued for sequential file uploads: + this._trigger( + 'progressall', + $.Event('progressall', {delegatedEvent: e}), + this._progress + ); + } + }, + + _initProgressListener: function (options) { + var that = this, + xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + // Accesss to the native XHR object is required to add event listeners + // for the upload progress event: + if (xhr.upload) { + $(xhr.upload).bind('progress', function (e) { + var oe = e.originalEvent; + // Make sure the progress event properties get copied over: + e.lengthComputable = oe.lengthComputable; + e.loaded = oe.loaded; + e.total = oe.total; + that._onProgress(e, options); + }); + options.xhr = function () { + return xhr; + }; + } + }, + + _isInstanceOf: function (type, obj) { + // Cross-frame instanceof check + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + _initXHRData: function (options) { + var that = this, + formData, + file = options.files[0], + // Ignore non-multipart setting if not supported: + multipart = options.multipart || !$.support.xhrFileUpload, + paramName = $.type(options.paramName) === 'array' ? + options.paramName[0] : options.paramName; + options.headers = $.extend({}, options.headers); + if (options.contentRange) { + options.headers['Content-Range'] = options.contentRange; + } + if (!multipart || options.blob || !this._isInstanceOf('File', file)) { + options.headers['Content-Disposition'] = 'attachment; filename="' + + encodeURI(file.name) + '"'; + } + if (!multipart) { + options.contentType = file.type || 'application/octet-stream'; + options.data = options.blob || file; + } else if ($.support.xhrFormDataFileUpload) { + if (options.postMessage) { + // window.postMessage does not allow sending FormData + // objects, so we just add the File/Blob objects to + // the formData array and let the postMessage window + // create the FormData object out of this array: + formData = this._getFormData(options); + if (options.blob) { + formData.push({ + name: paramName, + value: options.blob + }); + } else { + $.each(options.files, function (index, file) { + formData.push({ + name: ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + value: file + }); + }); + } + } else { + if (that._isInstanceOf('FormData', options.formData)) { + formData = options.formData; + } else { + formData = new FormData(); + $.each(this._getFormData(options), function (index, field) { + formData.append(field.name, field.value); + }); + } + if (options.blob) { + formData.append(paramName, options.blob, file.name); + } else { + $.each(options.files, function (index, file) { + // This check allows the tests to run with + // dummy objects: + if (that._isInstanceOf('File', file) || + that._isInstanceOf('Blob', file)) { + formData.append( + ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + file, + file.uploadName || file.name + ); + } + }); + } + } + options.data = formData; + } + // Blob reference is not needed anymore, free memory: + options.blob = null; + }, + + _initIframeSettings: function (options) { + var targetHost = $('').prop('href', options.url).prop('host'); + // Setting the dataType to iframe enables the iframe transport: + options.dataType = 'iframe ' + (options.dataType || ''); + // The iframe transport accepts a serialized array as form data: + options.formData = this._getFormData(options); + // Add redirect url to form data on cross-domain uploads: + if (options.redirect && targetHost && targetHost !== location.host) { + options.formData.push({ + name: options.redirectParamName || 'redirect', + value: options.redirect + }); + } + }, + + _initDataSettings: function (options) { + if (this._isXHRUpload(options)) { + if (!this._chunkedUpload(options, true)) { + if (!options.data) { + this._initXHRData(options); + } + this._initProgressListener(options); + } + if (options.postMessage) { + // Setting the dataType to postmessage enables the + // postMessage transport: + options.dataType = 'postmessage ' + (options.dataType || ''); + } + } else { + this._initIframeSettings(options); + } + }, + + _getParamName: function (options) { + var fileInput = $(options.fileInput), + paramName = options.paramName; + if (!paramName) { + paramName = []; + fileInput.each(function () { + var input = $(this), + name = input.prop('name') || 'files[]', + i = (input.prop('files') || [1]).length; + while (i) { + paramName.push(name); + i -= 1; + } + }); + if (!paramName.length) { + paramName = [fileInput.prop('name') || 'files[]']; + } + } else if (!$.isArray(paramName)) { + paramName = [paramName]; + } + return paramName; + }, + + _initFormSettings: function (options) { + // Retrieve missing options from the input field and the + // associated form, if available: + if (!options.form || !options.form.length) { + options.form = $(options.fileInput.prop('form')); + // If the given file input doesn't have an associated form, + // use the default widget file input's form: + if (!options.form.length) { + options.form = $(this.options.fileInput.prop('form')); + } + } + options.paramName = this._getParamName(options); + if (!options.url) { + options.url = options.form.prop('action') || location.href; + } + // The HTTP request method must be "POST" or "PUT": + options.type = (options.type || + ($.type(options.form.prop('method')) === 'string' && + options.form.prop('method')) || '' + ).toUpperCase(); + if (options.type !== 'POST' && options.type !== 'PUT' && + options.type !== 'PATCH') { + options.type = 'POST'; + } + if (!options.formAcceptCharset) { + options.formAcceptCharset = options.form.attr('accept-charset'); + } + }, + + _getAJAXSettings: function (data) { + var options = $.extend({}, this.options, data); + this._initFormSettings(options); + this._initDataSettings(options); + return options; + }, + + // jQuery 1.6 doesn't provide .state(), + // while jQuery 1.8+ removed .isRejected() and .isResolved(): + _getDeferredState: function (deferred) { + if (deferred.state) { + return deferred.state(); + } + if (deferred.isResolved()) { + return 'resolved'; + } + if (deferred.isRejected()) { + return 'rejected'; + } + return 'pending'; + }, + + // Maps jqXHR callbacks to the equivalent + // methods of the given Promise object: + _enhancePromise: function (promise) { + promise.success = promise.done; + promise.error = promise.fail; + promise.complete = promise.always; + return promise; + }, + + // Creates and returns a Promise object enhanced with + // the jqXHR methods abort, success, error and complete: + _getXHRPromise: function (resolveOrReject, context, args) { + var dfd = $.Deferred(), + promise = dfd.promise(); + context = context || this.options.context || promise; + if (resolveOrReject === true) { + dfd.resolveWith(context, args); + } else if (resolveOrReject === false) { + dfd.rejectWith(context, args); + } + promise.abort = dfd.promise; + return this._enhancePromise(promise); + }, + + // Adds convenience methods to the data callback argument: + _addConvenienceMethods: function (e, data) { + var that = this, + getPromise = function (args) { + return $.Deferred().resolveWith(that, args).promise(); + }; + data.process = function (resolveFunc, rejectFunc) { + if (resolveFunc || rejectFunc) { + data._processQueue = this._processQueue = + (this._processQueue || getPromise([this])).pipe( + function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return getPromise(arguments); + } + ).pipe(resolveFunc, rejectFunc); + } + return this._processQueue || getPromise([this]); + }; + data.submit = function () { + if (this.state() !== 'pending') { + data.jqXHR = this.jqXHR = + (that._trigger( + 'submit', + $.Event('submit', {delegatedEvent: e}), + this + ) !== false) && that._onSend(e, this); + } + return this.jqXHR || that._getXHRPromise(); + }; + data.abort = function () { + if (this.jqXHR) { + return this.jqXHR.abort(); + } + this.errorThrown = 'abort'; + that._trigger('fail', null, this); + return that._getXHRPromise(false); + }; + data.state = function () { + if (this.jqXHR) { + return that._getDeferredState(this.jqXHR); + } + if (this._processQueue) { + return that._getDeferredState(this._processQueue); + } + }; + data.processing = function () { + return !this.jqXHR && this._processQueue && that + ._getDeferredState(this._processQueue) === 'pending'; + }; + data.progress = function () { + return this._progress; + }; + data.response = function () { + return this._response; + }; + }, + + // Parses the Range header from the server response + // and returns the uploaded bytes: + _getUploadedBytes: function (jqXHR) { + var range = jqXHR.getResponseHeader('Range'), + parts = range && range.split('-'), + upperBytesPos = parts && parts.length > 1 && + parseInt(parts[1], 10); + return upperBytesPos && upperBytesPos + 1; + }, + + // Uploads a file in multiple, sequential requests + // by splitting the file up in multiple blob chunks. + // If the second parameter is true, only tests if the file + // should be uploaded in chunks, but does not invoke any + // upload requests: + _chunkedUpload: function (options, testOnly) { + options.uploadedBytes = options.uploadedBytes || 0; + var that = this, + file = options.files[0], + fs = file.size, + ub = options.uploadedBytes, + mcs = options.maxChunkSize || fs, + slice = this._blobSlice, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + upload; + if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) || + options.data) { + return false; + } + if (testOnly) { + return true; + } + if (ub >= fs) { + file.error = options.i18n('uploadedBytes'); + return this._getXHRPromise( + false, + options.context, + [null, 'error', file.error] + ); + } + // The chunk upload method: + upload = function () { + // Clone the options object for each chunk upload: + var o = $.extend({}, options), + currentLoaded = o._progress.loaded; + o.blob = slice.call( + file, + ub, + ub + mcs, + file.type + ); + // Store the current chunk size, as the blob itself + // will be dereferenced after data processing: + o.chunkSize = o.blob.size; + // Expose the chunk bytes position range: + o.contentRange = 'bytes ' + ub + '-' + + (ub + o.chunkSize - 1) + '/' + fs; + // Process the upload data (the blob and potential form data): + that._initXHRData(o); + // Add progress listeners for this chunk upload: + that._initProgressListener(o); + jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || + that._getXHRPromise(false, o.context)) + .done(function (result, textStatus, jqXHR) { + ub = that._getUploadedBytes(jqXHR) || + (ub + o.chunkSize); + // Create a progress event if no final progress event + // with loaded equaling total has been triggered + // for this chunk: + if (currentLoaded + o.chunkSize - o._progress.loaded) { + that._onProgress($.Event('progress', { + lengthComputable: true, + loaded: ub - o.uploadedBytes, + total: ub - o.uploadedBytes + }), o); + } + options.uploadedBytes = o.uploadedBytes = ub; + o.result = result; + o.textStatus = textStatus; + o.jqXHR = jqXHR; + that._trigger('chunkdone', null, o); + that._trigger('chunkalways', null, o); + if (ub < fs) { + // File upload not yet complete, + // continue with the next chunk: + upload(); + } else { + dfd.resolveWith( + o.context, + [result, textStatus, jqXHR] + ); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + o.jqXHR = jqXHR; + o.textStatus = textStatus; + o.errorThrown = errorThrown; + that._trigger('chunkfail', null, o); + that._trigger('chunkalways', null, o); + dfd.rejectWith( + o.context, + [jqXHR, textStatus, errorThrown] + ); + }); + }; + this._enhancePromise(promise); + promise.abort = function () { + return jqXHR.abort(); + }; + upload(); + return promise; + }, + + _beforeSend: function (e, data) { + if (this._active === 0) { + // the start callback is triggered when an upload starts + // and no other uploads are currently running, + // equivalent to the global ajaxStart event: + this._trigger('start'); + // Set timer for global bitrate progress calculation: + this._bitrateTimer = new this._BitrateTimer(); + // Reset the global progress values: + this._progress.loaded = this._progress.total = 0; + this._progress.bitrate = 0; + } + // Make sure the container objects for the .response() and + // .progress() methods on the data object are available + // and reset to their initial state: + this._initResponseObject(data); + this._initProgressObject(data); + data._progress.loaded = data.loaded = data.uploadedBytes || 0; + data._progress.total = data.total = this._getTotal(data.files) || 1; + data._progress.bitrate = data.bitrate = 0; + this._active += 1; + // Initialize the global progress values: + this._progress.loaded += data.loaded; + this._progress.total += data.total; + }, + + _onDone: function (result, textStatus, jqXHR, options) { + var total = options._progress.total, + response = options._response; + if (options._progress.loaded < total) { + // Create a progress event if no final progress event + // with loaded equaling total has been triggered: + this._onProgress($.Event('progress', { + lengthComputable: true, + loaded: total, + total: total + }), options); + } + response.result = options.result = result; + response.textStatus = options.textStatus = textStatus; + response.jqXHR = options.jqXHR = jqXHR; + this._trigger('done', null, options); + }, + + _onFail: function (jqXHR, textStatus, errorThrown, options) { + var response = options._response; + if (options.recalculateProgress) { + // Remove the failed (error or abort) file upload from + // the global progress calculation: + this._progress.loaded -= options._progress.loaded; + this._progress.total -= options._progress.total; + } + response.jqXHR = options.jqXHR = jqXHR; + response.textStatus = options.textStatus = textStatus; + response.errorThrown = options.errorThrown = errorThrown; + this._trigger('fail', null, options); + }, + + _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) { + // jqXHRorResult, textStatus and jqXHRorError are added to the + // options object via done and fail callbacks + this._trigger('always', null, options); + }, + + _onSend: function (e, data) { + if (!data.submit) { + this._addConvenienceMethods(e, data); + } + var that = this, + jqXHR, + aborted, + slot, + pipe, + options = that._getAJAXSettings(data), + send = function () { + that._sending += 1; + // Set timer for bitrate progress calculation: + options._bitrateTimer = new that._BitrateTimer(); + jqXHR = jqXHR || ( + ((aborted || that._trigger( + 'send', + $.Event('send', {delegatedEvent: e}), + options + ) === false) && + that._getXHRPromise(false, options.context, aborted)) || + that._chunkedUpload(options) || $.ajax(options) + ).done(function (result, textStatus, jqXHR) { + that._onDone(result, textStatus, jqXHR, options); + }).fail(function (jqXHR, textStatus, errorThrown) { + that._onFail(jqXHR, textStatus, errorThrown, options); + }).always(function (jqXHRorResult, textStatus, jqXHRorError) { + that._onAlways( + jqXHRorResult, + textStatus, + jqXHRorError, + options + ); + that._sending -= 1; + that._active -= 1; + if (options.limitConcurrentUploads && + options.limitConcurrentUploads > that._sending) { + // Start the next queued upload, + // that has not been aborted: + var nextSlot = that._slots.shift(); + while (nextSlot) { + if (that._getDeferredState(nextSlot) === 'pending') { + nextSlot.resolve(); + break; + } + nextSlot = that._slots.shift(); + } + } + if (that._active === 0) { + // The stop callback is triggered when all uploads have + // been completed, equivalent to the global ajaxStop event: + that._trigger('stop'); + } + }); + return jqXHR; + }; + this._beforeSend(e, options); + if (this.options.sequentialUploads || + (this.options.limitConcurrentUploads && + this.options.limitConcurrentUploads <= this._sending)) { + if (this.options.limitConcurrentUploads > 1) { + slot = $.Deferred(); + this._slots.push(slot); + pipe = slot.pipe(send); + } else { + this._sequence = this._sequence.pipe(send, send); + pipe = this._sequence; + } + // Return the piped Promise object, enhanced with an abort method, + // which is delegated to the jqXHR object of the current upload, + // and jqXHR callbacks mapped to the equivalent Promise methods: + pipe.abort = function () { + aborted = [undefined, 'abort', 'abort']; + if (!jqXHR) { + if (slot) { + slot.rejectWith(options.context, aborted); + } + return send(); + } + return jqXHR.abort(); + }; + return this._enhancePromise(pipe); + } + return send(); + }, + + _onAdd: function (e, data) { + var that = this, + result = true, + options = $.extend({}, this.options, data), + files = data.files, + filesLength = files.length, + limit = options.limitMultiFileUploads, + limitSize = options.limitMultiFileUploadSize, + overhead = options.limitMultiFileUploadSizeOverhead, + batchSize = 0, + paramName = this._getParamName(options), + paramNameSet, + paramNameSlice, + fileSet, + i, + j = 0; + if (limitSize && (!filesLength || files[0].size === undefined)) { + limitSize = undefined; + } + if (!(options.singleFileUploads || limit || limitSize) || + !this._isXHRUpload(options)) { + fileSet = [files]; + paramNameSet = [paramName]; + } else if (!(options.singleFileUploads || limitSize) && limit) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i += limit) { + fileSet.push(files.slice(i, i + limit)); + paramNameSlice = paramName.slice(i, i + limit); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + } + } else if (!options.singleFileUploads && limitSize) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i = i + 1) { + batchSize += files[i].size + overhead; + if (i + 1 === filesLength || + ((batchSize + files[i + 1].size + overhead) > limitSize) || + (limit && i + 1 - j >= limit)) { + fileSet.push(files.slice(j, i + 1)); + paramNameSlice = paramName.slice(j, i + 1); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + j = i + 1; + batchSize = 0; + } + } + } else { + paramNameSet = paramName; + } + data.originalFiles = files; + $.each(fileSet || files, function (index, element) { + var newData = $.extend({}, data); + newData.files = fileSet ? element : [element]; + newData.paramName = paramNameSet[index]; + that._initResponseObject(newData); + that._initProgressObject(newData); + that._addConvenienceMethods(e, newData); + result = that._trigger( + 'add', + $.Event('add', {delegatedEvent: e}), + newData + ); + return result; + }); + return result; + }, + + _replaceFileInput: function (data) { + var input = data.fileInput, + inputClone = input.clone(true); + // Add a reference for the new cloned file input to the data argument: + data.fileInputClone = inputClone; + $('
').append(inputClone)[0].reset(); + // Detaching allows to insert the fileInput on another form + // without loosing the file input value: + input.after(inputClone).detach(); + // Avoid memory leaks with the detached file input: + $.cleanData(input.unbind('remove')); + // Replace the original file input element in the fileInput + // elements set with the clone, which has been copied including + // event handlers: + this.options.fileInput = this.options.fileInput.map(function (i, el) { + if (el === input[0]) { + return inputClone[0]; + } + return el; + }); + // If the widget has been initialized on the file input itself, + // override this.element with the file input clone: + if (input[0] === this.element[0]) { + this.element = inputClone; + } + }, + + _handleFileTreeEntry: function (entry, path) { + var that = this, + dfd = $.Deferred(), + errorHandler = function (e) { + if (e && !e.entry) { + e.entry = entry; + } + // Since $.when returns immediately if one + // Deferred is rejected, we use resolve instead. + // This allows valid files and invalid items + // to be returned together in one set: + dfd.resolve([e]); + }, + successHandler = function (entries) { + that._handleFileTreeEntries( + entries, + path + entry.name + '/' + ).done(function (files) { + dfd.resolve(files); + }).fail(errorHandler); + }, + readEntries = function () { + dirReader.readEntries(function (results) { + if (!results.length) { + successHandler(entries); + } else { + entries = entries.concat(results); + readEntries(); + } + }, errorHandler); + }, + dirReader, entries = []; + path = path || ''; + if (entry.isFile) { + if (entry._file) { + // Workaround for Chrome bug #149735 + entry._file.relativePath = path; + dfd.resolve(entry._file); + } else { + entry.file(function (file) { + file.relativePath = path; + dfd.resolve(file); + }, errorHandler); + } + } else if (entry.isDirectory) { + dirReader = entry.createReader(); + readEntries(); + } else { + // Return an empy list for file system items + // other than files or directories: + dfd.resolve([]); + } + return dfd.promise(); + }, + + _handleFileTreeEntries: function (entries, path) { + var that = this; + return $.when.apply( + $, + $.map(entries, function (entry) { + return that._handleFileTreeEntry(entry, path); + }) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _getDroppedFiles: function (dataTransfer) { + dataTransfer = dataTransfer || {}; + var items = dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry || + items[0].getAsEntry)) { + return this._handleFileTreeEntries( + $.map(items, function (item) { + var entry; + if (item.webkitGetAsEntry) { + entry = item.webkitGetAsEntry(); + if (entry) { + // Workaround for Chrome bug #149735: + entry._file = item.getAsFile(); + } + return entry; + } + return item.getAsEntry(); + }) + ); + } + return $.Deferred().resolve( + $.makeArray(dataTransfer.files) + ).promise(); + }, + + _getSingleFileInputFiles: function (fileInput) { + fileInput = $(fileInput); + var entries = fileInput.prop('webkitEntries') || + fileInput.prop('entries'), + files, + value; + if (entries && entries.length) { + return this._handleFileTreeEntries(entries); + } + files = $.makeArray(fileInput.prop('files')); + if (!files.length) { + value = fileInput.prop('value'); + if (!value) { + return $.Deferred().resolve([]).promise(); + } + // If the files property is not available, the browser does not + // support the File API and we add a pseudo File object with + // the input value as name with path information removed: + files = [{name: value.replace(/^.*\\/, '')}]; + } else if (files[0].name === undefined && files[0].fileName) { + // File normalization for Safari 4 and Firefox 3: + $.each(files, function (index, file) { + file.name = file.fileName; + file.size = file.fileSize; + }); + } + return $.Deferred().resolve(files).promise(); + }, + + _getFileInputFiles: function (fileInput) { + if (!(fileInput instanceof $) || fileInput.length === 1) { + return this._getSingleFileInputFiles(fileInput); + } + return $.when.apply( + $, + $.map(fileInput, this._getSingleFileInputFiles) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _onChange: function (e) { + var that = this, + data = { + fileInput: $(e.target), + form: $(e.target.form) + }; + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + if (that.options.replaceFileInput) { + that._replaceFileInput(data); + } + if (that._trigger( + 'change', + $.Event('change', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + }, + + _onPaste: function (e) { + var items = e.originalEvent && e.originalEvent.clipboardData && + e.originalEvent.clipboardData.items, + data = {files: []}; + if (items && items.length) { + $.each(items, function (index, item) { + var file = item.getAsFile && item.getAsFile(); + if (file) { + data.files.push(file); + } + }); + if (this._trigger( + 'paste', + $.Event('paste', {delegatedEvent: e}), + data + ) !== false) { + this._onAdd(e, data); + } + } + }, + + _onDrop: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var that = this, + dataTransfer = e.dataTransfer, + data = {}; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + e.preventDefault(); + this._getDroppedFiles(dataTransfer).always(function (files) { + data.files = files; + if (that._trigger( + 'drop', + $.Event('drop', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + } + }, + + _onDragOver: getDragHandler('dragover'), + + _onDragEnter: getDragHandler('dragenter'), + + _onDragLeave: getDragHandler('dragleave'), + + _initEventHandlers: function () { + if (this._isXHRUpload(this.options)) { + this._on(this.options.dropZone, { + dragover: this._onDragOver, + drop: this._onDrop, + // event.preventDefault() on dragenter is required for IE10+: + dragenter: this._onDragEnter, + // dragleave is not required, but added for completeness: + dragleave: this._onDragLeave + }); + this._on(this.options.pasteZone, { + paste: this._onPaste + }); + } + if ($.support.fileInput) { + this._on(this.options.fileInput, { + change: this._onChange + }); + } + }, + + _destroyEventHandlers: function () { + this._off(this.options.dropZone, 'dragenter dragleave dragover drop'); + this._off(this.options.pasteZone, 'paste'); + this._off(this.options.fileInput, 'change'); + }, + + _setOption: function (key, value) { + var reinit = $.inArray(key, this._specialOptions) !== -1; + if (reinit) { + this._destroyEventHandlers(); + } + this._super(key, value); + if (reinit) { + this._initSpecialOptions(); + this._initEventHandlers(); + } + }, + + _initSpecialOptions: function () { + var options = this.options; + if (options.fileInput === undefined) { + options.fileInput = this.element.is('input[type="file"]') ? + this.element : this.element.find('input[type="file"]'); + } else if (!(options.fileInput instanceof $)) { + options.fileInput = $(options.fileInput); + } + if (!(options.dropZone instanceof $)) { + options.dropZone = $(options.dropZone); + } + if (!(options.pasteZone instanceof $)) { + options.pasteZone = $(options.pasteZone); + } + }, + + _getRegExp: function (str) { + var parts = str.split('/'), + modifiers = parts.pop(); + parts.shift(); + return new RegExp(parts.join('/'), modifiers); + }, + + _isRegExpOption: function (key, value) { + return key !== 'url' && $.type(value) === 'string' && + /^\/.*\/[igm]{0,3}$/.test(value); + }, + + _initDataAttributes: function () { + var that = this, + options = this.options, + clone = $(this.element[0].cloneNode(false)); + // Initialize options set via HTML5 data-attributes: + $.each( + clone.data(), + function (key, value) { + var dataAttributeName = 'data-' + + // Convert camelCase to hyphen-ated key: + key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); + if (clone.attr(dataAttributeName)) { + if (that._isRegExpOption(key, value)) { + value = that._getRegExp(value); + } + options[key] = value; + } + } + ); + }, + + _create: function () { + this._initDataAttributes(); + this._initSpecialOptions(); + this._slots = []; + this._sequence = this._getXHRPromise(true); + this._sending = this._active = 0; + this._initProgressObject(this); + this._initEventHandlers(); + }, + + // This method is exposed to the widget API and allows to query + // the number of active uploads: + active: function () { + return this._active; + }, + + // This method is exposed to the widget API and allows to query + // the widget upload progress. + // It returns an object with loaded, total and bitrate properties + // for the running uploads: + progress: function () { + return this._progress; + }, + + // This method is exposed to the widget API and allows adding files + // using the fileupload API. The data parameter accepts an object which + // must have a files property and can contain additional options: + // .fileupload('add', {files: filesList}); + add: function (data) { + var that = this; + if (!data || this.options.disabled) { + return; + } + if (data.fileInput && !data.files) { + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + that._onAdd(null, data); + }); + } else { + data.files = $.makeArray(data.files); + this._onAdd(null, data); + } + }, + + // This method is exposed to the widget API and allows sending files + // using the fileupload API. The data parameter accepts an object which + // must have a files or fileInput property and can contain additional options: + // .fileupload('send', {files: filesList}); + // The method returns a Promise object for the file upload call. + send: function (data) { + if (data && !this.options.disabled) { + if (data.fileInput && !data.files) { + var that = this, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + aborted; + promise.abort = function () { + aborted = true; + if (jqXHR) { + return jqXHR.abort(); + } + dfd.reject(null, 'abort', 'abort'); + return promise; + }; + this._getFileInputFiles(data.fileInput).always( + function (files) { + if (aborted) { + return; + } + if (!files.length) { + dfd.reject(); + return; + } + data.files = files; + jqXHR = that._onSend(null, data); + jqXHR.then( + function (result, textStatus, jqXHR) { + dfd.resolve(result, textStatus, jqXHR); + }, + function (jqXHR, textStatus, errorThrown) { + dfd.reject(jqXHR, textStatus, errorThrown); + } + ); + } + ); + return this._enhancePromise(promise); + } + data.files = $.makeArray(data.files); + if (data.files.length) { + return this._onSend(null, data); + } + } + return this._getXHRPromise(false, data && data.context); + } + + }); + +})); diff --git a/web/js/jquery.finder.js b/web/js/jquery.finder.js index 4ae3264a2..75debf65b 100644 --- a/web/js/jquery.finder.js +++ b/web/js/jquery.finder.js @@ -168,13 +168,18 @@ click: function(p,o) { p.on(o.event, o.children, function(e){ if(f.detect.leftMouse(e)) { - if (!$(e.target).hasClass('ch-toggle')) { + if ($(e.target).hasClass('ch-toggle') || + $(e.target).hasClass('check-label') || + ( $(e.target).hasClass('l-unit-toolbar__col--left')) ) { + var c = f.get.clicks(p,o,$(this)); var ref = $(e.target); - if (ref.parents('.data-row').hasClass('selected') && $('.selected').length == 1) { - ref.parents('.data-row').removeClass('selected'); - ref.parents('.data-row').find('.ch-toggle').attr('checked', false); + if (ref.parents('.l-unit').hasClass('selected') && $('.l-unit.selected').length == 1) { + ref.parents('.l-unit').find('.ch-toggle').attr('checked', false); + ref.parents('.l-unit').removeClass('selected'); + ref.parents('.l-unit').removeClass('selected-current'); + $('.toggle-all').removeClass('clicked-on'); return; } @@ -205,11 +210,13 @@ }); function turnOff(e) { - if (f.detect.ctrl(e)) { - if (e.keyCode == 65) { + if (f.detect.ctrl(e)) { + if (e.keyCode == 65) { // ctrl + a e.preventDefault(); - if(f.detect.alt(e)) { + //if(f.detect.alt(e)) { + if(jQuery('.ch-toggle:checked').length > 0) { f.t.unHAll(p, o); + jQuery('.ch-toggle:checked').attr('checked', false); } else { f.t.hAll(p,o); } @@ -303,6 +310,7 @@ el.removeClass(o.unSelectClass); el.addClass(o.selectClass); f.get.hook('highlight:after', [el, o]); + }, off: function(el,o) { f.get.hook('unHighlight:before', [el, o]); @@ -392,8 +400,9 @@ return b.data('down', bool); }, cursor: function(p,o) { + /* do not set cursor pointer inline styles var s = f.get.siblings(p,o); - return s.css('cursor', o.cursor); + return s.css('cursor', o.cursor);*/ } }; @@ -558,11 +567,13 @@ unHAll: function(p,o) { f.h.off(p.find(o.children), o); f.t.update(p, o); + $('.toggle-all').removeClass('clicked-on'); }, hAll: function(p,o) { f.h.on(p.find(o.children), o); f.t.update(p, o); o.toggleAllHook && o.toggleAllHook(); + $('.toggle-all').addClass('clicked-on'); }, unHExist: function(bool,el,o) { if(bool) { diff --git a/web/js/jquery.iframe-transport.js b/web/js/jquery.iframe-transport.js new file mode 100644 index 000000000..8d64b591b --- /dev/null +++ b/web/js/jquery.iframe-transport.js @@ -0,0 +1,214 @@ +/* + * jQuery Iframe Transport Plugin 1.8.2 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0; + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + /*jshint scripturl: true */ + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + /*jshint scripturl: false */ + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $('
'); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + // Remove the HTML5 form attribute from the input(s): + options.fileInput.removeAttr('form'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + // Restore the original name and form properties: + $(input) + .prop('name', clone.prop('name')) + .attr('form', clone.attr('form')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/web/js/jquery.mousewheel.min.js b/web/js/jquery.mousewheel.min.js new file mode 100644 index 000000000..3a0495226 --- /dev/null +++ b/web/js/jquery.mousewheel.min.js @@ -0,0 +1,13 @@ +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ +(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]= +d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); diff --git a/web/js/jquery.uploadify.min.js b/web/js/jquery.uploadify.min.js new file mode 100644 index 000000000..534c52a81 --- /dev/null +++ b/web/js/jquery.uploadify.min.js @@ -0,0 +1,16 @@ +/* +Uploadify v3.2.1 +Copyright (c) 2012 Reactive Apps, Ronnie Garcia +Released under the MIT License + +SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com +mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ +SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilzén and Mammon Media and is released under the MIT License: +http://www.opensource.org/licenses/mit-license.php +SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: +http://www.opensource.org/licenses/mit-license.php + +SWFObject v2.2 +is released under the MIT License +*/ +;var swfobject=function(){var aq="undefined",aD="object",ab="Shockwave Flash",X="ShockwaveFlash.ShockwaveFlash",aE="application/x-shockwave-flash",ac="SWFObjectExprInst",ax="onreadystatechange",af=window,aL=document,aB=navigator,aa=false,Z=[aN],aG=[],ag=[],al=[],aJ,ad,ap,at,ak=false,aU=false,aH,an,aI=true,ah=function(){var a=typeof aL.getElementById!=aq&&typeof aL.getElementsByTagName!=aq&&typeof aL.createElement!=aq,e=aB.userAgent.toLowerCase(),c=aB.platform.toLowerCase(),h=c?/win/.test(c):/win/.test(e),j=c?/mac/.test(c):/mac/.test(e),g=/webkit/.test(e)?parseFloat(e.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,d=!+"\v1",f=[0,0,0],k=null;if(typeof aB.plugins!=aq&&typeof aB.plugins[ab]==aD){k=aB.plugins[ab].description;if(k&&!(typeof aB.mimeTypes!=aq&&aB.mimeTypes[aE]&&!aB.mimeTypes[aE].enabledPlugin)){aa=true;d=false;k=k.replace(/^.*\s+(\S+\s+\S+$)/,"$1");f[0]=parseInt(k.replace(/^(.*)\..*$/,"$1"),10);f[1]=parseInt(k.replace(/^.*\.(.*)\s.*$/,"$1"),10);f[2]=/[a-zA-Z]/.test(k)?parseInt(k.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0;}}else{if(typeof af.ActiveXObject!=aq){try{var i=new ActiveXObject(X);if(i){k=i.GetVariable("$version");if(k){d=true;k=k.split(" ")[1].split(",");f=[parseInt(k[0],10),parseInt(k[1],10),parseInt(k[2],10)];}}}catch(b){}}}return{w3:a,pv:f,wk:g,ie:d,win:h,mac:j};}(),aK=function(){if(!ah.w3){return;}if((typeof aL.readyState!=aq&&aL.readyState=="complete")||(typeof aL.readyState==aq&&(aL.getElementsByTagName("body")[0]||aL.body))){aP();}if(!ak){if(typeof aL.addEventListener!=aq){aL.addEventListener("DOMContentLoaded",aP,false);}if(ah.ie&&ah.win){aL.attachEvent(ax,function(){if(aL.readyState=="complete"){aL.detachEvent(ax,arguments.callee);aP();}});if(af==top){(function(){if(ak){return;}try{aL.documentElement.doScroll("left");}catch(a){setTimeout(arguments.callee,0);return;}aP();})();}}if(ah.wk){(function(){if(ak){return;}if(!/loaded|complete/.test(aL.readyState)){setTimeout(arguments.callee,0);return;}aP();})();}aC(aP);}}();function aP(){if(ak){return;}try{var b=aL.getElementsByTagName("body")[0].appendChild(ar("span"));b.parentNode.removeChild(b);}catch(a){return;}ak=true;var d=Z.length;for(var c=0;c0){for(var h=0;h0){var i=aS(c);if(i){if(ao(aG[h].swfVersion)&&!(ah.wk&&ah.wk<312)){ay(c,true);if(l){a.success=true;a.ref=av(c);l(a);}}else{if(aG[h].expressInstall&&au()){var e={};e.data=aG[h].expressInstall;e.width=i.getAttribute("width")||"0";e.height=i.getAttribute("height")||"0";if(i.getAttribute("class")){e.styleclass=i.getAttribute("class");}if(i.getAttribute("align")){e.align=i.getAttribute("align");}var f={};var d=i.getElementsByTagName("param");var k=d.length;for(var j=0;j';}}a.outerHTML='"+h+"";ag[ag.length]=e.id;d=aS(e.id);}else{var b=ar(aD);b.setAttribute("type",aE);for(var k in e){if(e[k]!=Object.prototype[k]){if(k.toLowerCase()=="styleclass"){b.setAttribute("class",e[k]);}else{if(k.toLowerCase()!="classid"){b.setAttribute(k,e[k]);}}}}for(var l in g){if(g[l]!=Object.prototype[l]&&l.toLowerCase()!="movie"){aQ(b,l,g[l]);}}a.parentNode.replaceChild(b,a);d=b;}}return d;}function aQ(b,d,c){var a=ar("param");a.setAttribute("name",d);a.setAttribute("value",c);b.appendChild(a);}function aw(a){var b=aS(a);if(b&&b.nodeName=="OBJECT"){if(ah.ie&&ah.win){b.style.display="none";(function(){if(b.readyState==4){aT(a);}else{setTimeout(arguments.callee,10);}})();}else{b.parentNode.removeChild(b);}}}function aT(a){var b=aS(a);if(b){for(var c in b){if(typeof b[c]=="function"){b[c]=null;}}b.parentNode.removeChild(b);}}function aS(a){var c=null;try{c=aL.getElementById(a);}catch(b){}return c;}function ar(a){return aL.createElement(a);}function aM(a,c,b){a.attachEvent(c,b);al[al.length]=[a,c,b];}function ao(a){var b=ah.pv,c=a.split(".");c[0]=parseInt(c[0],10);c[1]=parseInt(c[1],10)||0;c[2]=parseInt(c[2],10)||0;return(b[0]>c[0]||(b[0]==c[0]&&b[1]>c[1])||(b[0]==c[0]&&b[1]==c[1]&&b[2]>=c[2]))?true:false;}function az(b,f,a,c){if(ah.ie&&ah.mac){return;}var e=aL.getElementsByTagName("head")[0];if(!e){return;}var g=(a&&typeof a=="string")?a:"screen";if(c){aH=null;an=null;}if(!aH||an!=g){var d=ar("style");d.setAttribute("type","text/css");d.setAttribute("media",g);aH=e.appendChild(d);if(ah.ie&&ah.win&&typeof aL.styleSheets!=aq&&aL.styleSheets.length>0){aH=aL.styleSheets[aL.styleSheets.length-1];}an=g;}if(ah.ie&&ah.win){if(aH&&typeof aH.addRule==aD){aH.addRule(b,f);}}else{if(aH&&typeof aL.createTextNode!=aq){aH.appendChild(aL.createTextNode(b+" {"+f+"}"));}}}function ay(a,c){if(!aI){return;}var b=c?"visible":"hidden";if(ak&&aS(a)){aS(a).style.visibility=b;}else{az("#"+a,"visibility:"+b);}}function ai(b){var a=/[\\\"<>\.;]/;var c=a.exec(b)!=null;return c&&typeof encodeURIComponent!=aq?encodeURIComponent(b):b;}var aR=function(){if(ah.ie&&ah.win){window.attachEvent("onunload",function(){var a=al.length;for(var b=0;b','','','','','','',""].join("");};SWFUpload.prototype.getFlashVars=function(){var c=this.buildParamString();var d=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&uploadURL=",encodeURIComponent(this.settings.upload_url),"&useQueryString=",encodeURIComponent(this.settings.use_query_string),"&requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&httpSuccess=",encodeURIComponent(d),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(c),"&filePostName=",encodeURIComponent(this.settings.file_post_name),"&fileTypes=",encodeURIComponent(this.settings.file_types),"&fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&buttonWidth=",encodeURIComponent(this.settings.button_width),"&buttonHeight=",encodeURIComponent(this.settings.button_height),"&buttonText=",encodeURIComponent(this.settings.button_text),"&buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&buttonAction=",encodeURIComponent(this.settings.button_action),"&buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("");};SWFUpload.prototype.getMovieElement=function(){if(this.movieElement==undefined){this.movieElement=document.getElementById(this.movieName);}if(this.movieElement===null){throw"Could not find Flash element";}return this.movieElement;};SWFUpload.prototype.buildParamString=function(){var f=this.settings.post_params;var d=[];if(typeof(f)==="object"){for(var e in f){if(f.hasOwnProperty(e)){d.push(encodeURIComponent(e.toString())+"="+encodeURIComponent(f[e].toString()));}}}return d.join("&");};SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,false);var g=null;g=this.getMovieElement();if(g&&typeof(g.CallFunction)==="unknown"){for(var j in g){try{if(typeof(g[j])==="function"){g[j]=null;}}catch(h){}}try{g.parentNode.removeChild(g);}catch(f){}}window[this.movieName]=null;SWFUpload.instances[this.movieName]=null;delete SWFUpload.instances[this.movieName];this.movieElement=null;this.settings=null;this.customSettings=null;this.eventQueue=null;this.movieName=null;return true;}catch(i){return false;}};SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url: ",this.settings.upload_url,"\n","\t","flash_url: ",this.settings.flash_url,"\n","\t","use_query_string: ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n","\t","http_success: ",this.settings.http_success.join(", "),"\n","\t","assume_success_timeout: ",this.settings.assume_success_timeout,"\n","\t","file_post_name: ",this.settings.file_post_name,"\n","\t","post_params: ",this.settings.post_params.toString(),"\n","\t","file_types: ",this.settings.file_types,"\n","\t","file_types_description: ",this.settings.file_types_description,"\n","\t","file_size_limit: ",this.settings.file_size_limit,"\n","\t","file_upload_limit: ",this.settings.file_upload_limit,"\n","\t","file_queue_limit: ",this.settings.file_queue_limit,"\n","\t","debug: ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n","\t","button_placeholder: ",(this.settings.button_placeholder?"Set":"Not Set"),"\n","\t","button_image_url: ",this.settings.button_image_url.toString(),"\n","\t","button_width: ",this.settings.button_width.toString(),"\n","\t","button_height: ",this.settings.button_height.toString(),"\n","\t","button_text: ",this.settings.button_text.toString(),"\n","\t","button_text_style: ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action: ",this.settings.button_action.toString(),"\n","\t","button_disabled: ",this.settings.button_disabled.toString(),"\n","\t","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned: ",(typeof this.settings.swfupload_loaded_handler==="function").toString(),"\n","\t","file_dialog_start_handler assigned: ",(typeof this.settings.file_dialog_start_handler==="function").toString(),"\n","\t","file_queued_handler assigned: ",(typeof this.settings.file_queued_handler==="function").toString(),"\n","\t","file_queue_error_handler assigned: ",(typeof this.settings.file_queue_error_handler==="function").toString(),"\n","\t","upload_start_handler assigned: ",(typeof this.settings.upload_start_handler==="function").toString(),"\n","\t","upload_progress_handler assigned: ",(typeof this.settings.upload_progress_handler==="function").toString(),"\n","\t","upload_error_handler assigned: ",(typeof this.settings.upload_error_handler==="function").toString(),"\n","\t","upload_success_handler assigned: ",(typeof this.settings.upload_success_handler==="function").toString(),"\n","\t","upload_complete_handler assigned: ",(typeof this.settings.upload_complete_handler==="function").toString(),"\n","\t","debug_handler assigned: ",(typeof this.settings.debug_handler==="function").toString(),"\n"].join(""));};SWFUpload.prototype.addSetting=function(d,f,e){if(f==undefined){return(this.settings[d]=e);}else{return(this.settings[d]=f);}};SWFUpload.prototype.getSetting=function(b){if(this.settings[b]!=undefined){return this.settings[b];}return"";};SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement();var returnValue,returnString;try{returnString=movieElement.CallFunction(''+__flash__argumentsToXML(argumentArray,0)+"");returnValue=eval(returnString);}catch(ex){throw"Call to "+functionName+" failed";}if(returnValue!=undefined&&typeof returnValue.post==="object"){returnValue=this.unescapeFilePostParams(returnValue);}return returnValue;};SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile");};SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles");};SWFUpload.prototype.startUpload=function(b){this.callFlash("StartUpload",[b]);};SWFUpload.prototype.cancelUpload=function(d,c){if(c!==false){c=true;}this.callFlash("CancelUpload",[d,c]);};SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload");};SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats");};SWFUpload.prototype.setStats=function(b){this.callFlash("SetStats",[b]);};SWFUpload.prototype.getFile=function(b){if(typeof(b)==="number"){return this.callFlash("GetFileByIndex",[b]);}else{return this.callFlash("GetFile",[b]);}};SWFUpload.prototype.addFileParam=function(e,d,f){return this.callFlash("AddFileParam",[e,d,f]);};SWFUpload.prototype.removeFileParam=function(d,c){this.callFlash("RemoveFileParam",[d,c]);};SWFUpload.prototype.setUploadURL=function(b){this.settings.upload_url=b.toString();this.callFlash("SetUploadURL",[b]);};SWFUpload.prototype.setPostParams=function(b){this.settings.post_params=b;this.callFlash("SetPostParams",[b]);};SWFUpload.prototype.addPostParam=function(d,c){this.settings.post_params[d]=c;this.callFlash("SetPostParams",[this.settings.post_params]);};SWFUpload.prototype.removePostParam=function(b){delete this.settings.post_params[b];this.callFlash("SetPostParams",[this.settings.post_params]);};SWFUpload.prototype.setFileTypes=function(d,c){this.settings.file_types=d;this.settings.file_types_description=c;this.callFlash("SetFileTypes",[d,c]);};SWFUpload.prototype.setFileSizeLimit=function(b){this.settings.file_size_limit=b;this.callFlash("SetFileSizeLimit",[b]);};SWFUpload.prototype.setFileUploadLimit=function(b){this.settings.file_upload_limit=b;this.callFlash("SetFileUploadLimit",[b]);};SWFUpload.prototype.setFileQueueLimit=function(b){this.settings.file_queue_limit=b;this.callFlash("SetFileQueueLimit",[b]);};SWFUpload.prototype.setFilePostName=function(b){this.settings.file_post_name=b;this.callFlash("SetFilePostName",[b]);};SWFUpload.prototype.setUseQueryString=function(b){this.settings.use_query_string=b;this.callFlash("SetUseQueryString",[b]);};SWFUpload.prototype.setRequeueOnError=function(b){this.settings.requeue_on_error=b;this.callFlash("SetRequeueOnError",[b]);};SWFUpload.prototype.setHTTPSuccess=function(b){if(typeof b==="string"){b=b.replace(" ","").split(",");}this.settings.http_success=b;this.callFlash("SetHTTPSuccess",[b]);};SWFUpload.prototype.setAssumeSuccessTimeout=function(b){this.settings.assume_success_timeout=b;this.callFlash("SetAssumeSuccessTimeout",[b]);};SWFUpload.prototype.setDebugEnabled=function(b){this.settings.debug_enabled=b;this.callFlash("SetDebugEnabled",[b]);};SWFUpload.prototype.setButtonImageURL=function(b){if(b==undefined){b="";}this.settings.button_image_url=b;this.callFlash("SetButtonImageURL",[b]);};SWFUpload.prototype.setButtonDimensions=function(f,e){this.settings.button_width=f;this.settings.button_height=e;var d=this.getMovieElement();if(d!=undefined){d.style.width=f+"px";d.style.height=e+"px";}this.callFlash("SetButtonDimensions",[f,e]);};SWFUpload.prototype.setButtonText=function(b){this.settings.button_text=b;this.callFlash("SetButtonText",[b]);};SWFUpload.prototype.setButtonTextPadding=function(c,d){this.settings.button_text_top_padding=d;this.settings.button_text_left_padding=c;this.callFlash("SetButtonTextPadding",[c,d]);};SWFUpload.prototype.setButtonTextStyle=function(b){this.settings.button_text_style=b;this.callFlash("SetButtonTextStyle",[b]);};SWFUpload.prototype.setButtonDisabled=function(b){this.settings.button_disabled=b;this.callFlash("SetButtonDisabled",[b]);};SWFUpload.prototype.setButtonAction=function(b){this.settings.button_action=b;this.callFlash("SetButtonAction",[b]);};SWFUpload.prototype.setButtonCursor=function(b){this.settings.button_cursor=b;this.callFlash("SetButtonCursor",[b]);};SWFUpload.prototype.queueEvent=function(d,f){if(f==undefined){f=[];}else{if(!(f instanceof Array)){f=[f];}}var e=this;if(typeof this.settings[d]==="function"){this.eventQueue.push(function(){this.settings[d].apply(this,f);});setTimeout(function(){e.executeNextEvent();},0);}else{if(this.settings[d]!==null){throw"Event handler "+d+" is unknown or is not a function";}}};SWFUpload.prototype.executeNextEvent=function(){var b=this.eventQueue?this.eventQueue.shift():null;if(typeof(b)==="function"){b.apply(this);}};SWFUpload.prototype.unescapeFilePostParams=function(l){var j=/[$]([0-9a-f]{4})/i;var i={};var k;if(l!=undefined){for(var h in l.post){if(l.post.hasOwnProperty(h)){k=h;var g;while((g=j.exec(k))!==null){k=k.replace(g[0],String.fromCharCode(parseInt("0x"+g[1],16)));}i[k]=l.post[h];}}l.post=i;}return l;};SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface");}catch(b){return false;}};SWFUpload.prototype.flashReady=function(){var b=this.getMovieElement();if(!b){this.debug("Flash called back ready but the flash movie can't be found.");return;}this.cleanUp(b);this.queueEvent("swfupload_loaded_handler");};SWFUpload.prototype.cleanUp=function(f){try{if(this.movieElement&&typeof(f.CallFunction)==="unknown"){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var h in f){try{if(typeof(f[h])==="function"){f[h]=null;}}catch(e){}}}}catch(g){}window.__flash__removeCallback=function(c,b){try{if(c){c[b]=null;}}catch(a){}};};SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler");};SWFUpload.prototype.fileQueued=function(b){b=this.unescapeFilePostParams(b);this.queueEvent("file_queued_handler",b);};SWFUpload.prototype.fileQueueError=function(e,f,d){e=this.unescapeFilePostParams(e);this.queueEvent("file_queue_error_handler",[e,f,d]);};SWFUpload.prototype.fileDialogComplete=function(d,f,e){this.queueEvent("file_dialog_complete_handler",[d,f,e]);};SWFUpload.prototype.uploadStart=function(b){b=this.unescapeFilePostParams(b);this.queueEvent("return_upload_start_handler",b);};SWFUpload.prototype.returnUploadStart=function(d){var c;if(typeof this.settings.upload_start_handler==="function"){d=this.unescapeFilePostParams(d);c=this.settings.upload_start_handler.call(this,d);}else{if(this.settings.upload_start_handler!=undefined){throw"upload_start_handler must be a function";}}if(c===undefined){c=true;}c=!!c;this.callFlash("ReturnUploadStart",[c]);};SWFUpload.prototype.uploadProgress=function(e,f,d){e=this.unescapeFilePostParams(e);this.queueEvent("upload_progress_handler",[e,f,d]);};SWFUpload.prototype.uploadError=function(e,f,d){e=this.unescapeFilePostParams(e);this.queueEvent("upload_error_handler",[e,f,d]);};SWFUpload.prototype.uploadSuccess=function(d,e,f){d=this.unescapeFilePostParams(d);this.queueEvent("upload_success_handler",[d,e,f]);};SWFUpload.prototype.uploadComplete=function(b){b=this.unescapeFilePostParams(b);this.queueEvent("upload_complete_handler",b);};SWFUpload.prototype.debug=function(b){this.queueEvent("debug_handler",b);};SWFUpload.prototype.debugMessage=function(h){if(this.settings.debug){var f,g=[];if(typeof h==="object"&&typeof h.name==="string"&&typeof h.message==="string"){for(var e in h){if(h.hasOwnProperty(e)){g.push(e+": "+h[e]);}}f=g.join("\n")||"";g=f.split("\n");f="EXCEPTION: "+g.join("\nEXCEPTION: ");SWFUpload.Console.writeLine(f);}else{SWFUpload.Console.writeLine(h);}}};SWFUpload.Console={};SWFUpload.Console.writeLine=function(g){var e,f;try{e=document.getElementById("SWFUpload_Console");if(!e){f=document.createElement("form");document.getElementsByTagName("body")[0].appendChild(f);e=document.createElement("textarea");e.id="SWFUpload_Console";e.style.fontFamily="monospace";e.setAttribute("wrap","off");e.wrap="off";e.style.overflow="auto";e.style.width="700px";e.style.height="350px";e.style.margin="5px";f.appendChild(e);}e.value+=g+"\n";e.scrollTop=e.scrollHeight-e.clientHeight;}catch(h){alert("Exception: "+h.name+" Message: "+h.message);}};(function(c){var b={init:function(d,e){return this.each(function(){var n=c(this);var m=n.clone();var j=c.extend({id:n.attr("id"),swf:"uploadify.swf",uploader:"uploadify.php",auto:true,buttonClass:"",buttonCursor:"hand",buttonImage:null,buttonText:"SELECT FILES",checkExisting:false,debug:false,fileObjName:"Filedata",fileSizeLimit:0,fileTypeDesc:"All Files",fileTypeExts:"*.*",height:30,itemTemplate:false,method:"post",multi:true,formData:{},preventCaching:true,progressData:"percentage",queueID:false,queueSizeLimit:999,removeCompleted:true,removeTimeout:3,requeueErrors:false,successTimeout:30,uploadLimit:0,width:120,overrideEvents:[]},d);var g={assume_success_timeout:j.successTimeout,button_placeholder_id:j.id,button_width:j.width,button_height:j.height,button_text:null,button_text_style:null,button_text_top_padding:0,button_text_left_padding:0,button_action:(j.multi?SWFUpload.BUTTON_ACTION.SELECT_FILES:SWFUpload.BUTTON_ACTION.SELECT_FILE),button_disabled:false,button_cursor:(j.buttonCursor=="arrow"?SWFUpload.CURSOR.ARROW:SWFUpload.CURSOR.HAND),button_window_mode:SWFUpload.WINDOW_MODE.TRANSPARENT,debug:j.debug,requeue_on_error:j.requeueErrors,file_post_name:j.fileObjName,file_size_limit:j.fileSizeLimit,file_types:j.fileTypeExts,file_types_description:j.fileTypeDesc,file_queue_limit:j.queueSizeLimit,file_upload_limit:j.uploadLimit,flash_url:j.swf,prevent_swf_caching:j.preventCaching,post_params:j.formData,upload_url:j.uploader,use_query_string:(j.method=="get"),file_dialog_complete_handler:a.onDialogClose,file_dialog_start_handler:a.onDialogOpen,file_queued_handler:a.onSelect,file_queue_error_handler:a.onSelectError,swfupload_loaded_handler:j.onSWFReady,upload_complete_handler:a.onUploadComplete,upload_error_handler:a.onUploadError,upload_progress_handler:a.onUploadProgress,upload_start_handler:a.onUploadStart,upload_success_handler:a.onUploadSuccess};if(e){g=c.extend(g,e);}g=c.extend(g,j);var o=swfobject.getFlashPlayerVersion();var h=(o.major>=9);if(h){window["uploadify_"+j.id]=new SWFUpload(g);var i=window["uploadify_"+j.id];n.data("uploadify",i);var l=c("
",{id:j.id,"class":"uploadify",css:{height:j.height+"px",width:j.width+"px"}});c("#"+i.movieName).wrap(l);l=c("#"+j.id);l.data("uploadify",i);var f=c("
",{id:j.id+"-button","class":"uploadify-button "+j.buttonClass});if(j.buttonImage){f.css({"background-image":"url('"+j.buttonImage+"')","text-indent":"-9999px"});}f.html(''+j.buttonText+"").css({height:j.height+"px","line-height":j.height+"px",width:j.width+"px"});l.append(f);c("#"+i.movieName).css({position:"absolute","z-index":1});if(!j.queueID){var k=c("
",{id:j.id+"-queue","class":"uploadify-queue"});l.after(k);i.settings.queueID=j.id+"-queue";i.settings.defaultQueue=true;}i.queueData={files:{},filesSelected:0,filesQueued:0,filesReplaced:0,filesCancelled:0,filesErrored:0,uploadsSuccessful:0,uploadsErrored:0,averageSpeed:0,queueLength:0,queueSize:0,uploadSize:0,queueBytesUploaded:0,uploadQueue:[],errorMsg:"Some files were not added to the queue:"};i.original=m;i.wrapper=l;i.button=f;i.queue=k;if(j.onInit){j.onInit.call(n,i);}}else{if(j.onFallback){j.onFallback.call(n);}}});},cancel:function(d,f){var e=arguments;this.each(function(){var l=c(this),i=l.data("uploadify"),j=i.settings,h=-1;if(e[0]){if(e[0]=="*"){var g=i.queueData.queueLength;c("#"+j.queueID).find(".uploadify-queue-item").each(function(){h++;if(e[1]===true){i.cancelUpload(c(this).attr("id"),false);}else{i.cancelUpload(c(this).attr("id"));}c(this).find(".data").removeClass("data").html(" - Cancelled");c(this).find(".uploadify-progress-bar").remove();c(this).delay(1000+100*h).fadeOut(500,function(){c(this).remove();});});i.queueData.queueSize=0;i.queueData.queueLength=0;if(j.onClearQueue){j.onClearQueue.call(l,g);}}else{for(var m=0;m0){alert(this.queueData.errorMsg);}}if(e.onDialogClose){e.onDialogClose.call(this,this.queueData);}if(e.auto){c("#"+e.id).uploadify("upload","*");}},onSelect:function(h){var i=this.settings;var f={};for(var g in this.queueData.files){f=this.queueData.files[g];if(f.uploaded!=true&&f.name==h.name){var e=confirm('The file named "'+h.name+'" is already in the queue.\nDo you want to replace the existing item in the queue?');if(!e){this.cancelUpload(h.id);this.queueData.filesCancelled++;return false;}else{c("#"+f.id).remove();this.cancelUpload(f.id);this.queueData.filesReplaced++;}}}var j=Math.round(h.size/1024);var o="KB";if(j>1000){j=Math.round(j/1000);o="MB";}var l=j.toString().split(".");j=l[0];if(l.length>1){j+="."+l[1].substr(0,2);}j+=o;var k=h.name;if(k.length>25){k=k.substr(0,25)+"...";}itemData={fileID:h.id,instanceID:i.id,fileName:k,fileSize:j};if(i.itemTemplate==false){i.itemTemplate='
X
${fileName} (${fileSize})
';}if(c.inArray("onSelect",i.overrideEvents)<0){itemHTML=i.itemTemplate;for(var m in itemData){itemHTML=itemHTML.replace(new RegExp("\\$\\{"+m+"\\}","g"),itemData[m]);}c("#"+i.queueID).append(itemHTML);}this.queueData.queueSize+=h.size;this.queueData.files[h.id]=h;if(i.onSelect){i.onSelect.apply(this,arguments);}},onSelectError:function(d,g,f){var e=this.settings;if(c.inArray("onSelectError",e.overrideEvents)<0){switch(g){case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:if(e.queueSizeLimit>f){this.queueData.errorMsg+="\nThe number of files selected exceeds the remaining upload limit ("+f+").";}else{this.queueData.errorMsg+="\nThe number of files selected exceeds the queue size limit ("+e.queueSizeLimit+").";}break;case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:this.queueData.errorMsg+='\nThe file "'+d.name+'" exceeds the size limit ('+e.fileSizeLimit+").";break;case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:this.queueData.errorMsg+='\nThe file "'+d.name+'" is empty.';break;case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:this.queueData.errorMsg+='\nThe file "'+d.name+'" is not an accepted file type ('+e.fileTypeDesc+").";break;}}if(g!=SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){delete this.queueData.files[d.id];}if(e.onSelectError){e.onSelectError.apply(this,arguments);}},onQueueComplete:function(){if(this.settings.onQueueComplete){this.settings.onQueueComplete.call(this,this.settings.queueData);}},onUploadComplete:function(f){var g=this.settings,d=this;var e=this.getStats();this.queueData.queueLength=e.files_queued;if(this.queueData.uploadQueue[0]=="*"){if(this.queueData.queueLength>0){this.startUpload();}else{this.queueData.uploadQueue=[];if(g.onQueueComplete){g.onQueueComplete.call(this,this.queueData);}}}else{if(this.queueData.uploadQueue.length>0){this.startUpload(this.queueData.uploadQueue.shift());}else{this.queueData.uploadQueue=[];if(g.onQueueComplete){g.onQueueComplete.call(this,this.queueData);}}}if(c.inArray("onUploadComplete",g.overrideEvents)<0){if(g.removeCompleted){switch(f.filestatus){case SWFUpload.FILE_STATUS.COMPLETE:setTimeout(function(){if(c("#"+f.id)){d.queueData.queueSize-=f.size;d.queueData.queueLength-=1;delete d.queueData.files[f.id];c("#"+f.id).fadeOut(500,function(){c(this).remove();});}},g.removeTimeout*1000);break;case SWFUpload.FILE_STATUS.ERROR:if(!g.requeueErrors){setTimeout(function(){if(c("#"+f.id)){d.queueData.queueSize-=f.size;d.queueData.queueLength-=1;delete d.queueData.files[f.id];c("#"+f.id).fadeOut(500,function(){c(this).remove();});}},g.removeTimeout*1000);}break;}}else{f.uploaded=true;}}if(g.onUploadComplete){g.onUploadComplete.call(this,f);}},onUploadError:function(e,i,h){var f=this.settings;var g="Error";switch(i){case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:g="HTTP Error ("+h+")";break;case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:g="Missing Upload URL";break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:g="IO Error";break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:g="Security Error";break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:alert("The upload limit has been reached ("+h+").");g="Exceeds Upload Limit";break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:g="Failed";break;case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:break;case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:g="Validation Error";break;case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:g="Cancelled";this.queueData.queueSize-=e.size;this.queueData.queueLength-=1;if(e.status==SWFUpload.FILE_STATUS.IN_PROGRESS||c.inArray(e.id,this.queueData.uploadQueue)>=0){this.queueData.uploadSize-=e.size;}if(f.onCancel){f.onCancel.call(this,e);}delete this.queueData.files[e.id];break;case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:g="Stopped";break;}if(c.inArray("onUploadError",f.overrideEvents)<0){if(i!=SWFUpload.UPLOAD_ERROR.FILE_CANCELLED&&i!=SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED){c("#"+e.id).addClass("uploadify-error");}c("#"+e.id).find(".uploadify-progress-bar").css("width","1px");if(i!=SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND&&e.status!=SWFUpload.FILE_STATUS.COMPLETE){c("#"+e.id).find(".data").html(" - "+g);}}var d=this.getStats();this.queueData.uploadsErrored=d.upload_errors;if(f.onUploadError){f.onUploadError.call(this,e,i,h,g);}},onUploadProgress:function(g,m,j){var h=this.settings;var e=new Date();var n=e.getTime();var k=n-this.timer;if(k>500){this.timer=n;}var i=m-this.bytesLoaded;this.bytesLoaded=m;var d=this.queueData.queueBytesUploaded+m;var p=Math.round(m/j*100);var o="KB/s";var l=0;var f=(i/1024)/(k/1000);f=Math.floor(f*10)/10;if(this.queueData.averageSpeed>0){this.queueData.averageSpeed=Math.floor((this.queueData.averageSpeed+f)/2);}else{this.queueData.averageSpeed=Math.floor(f);}if(f>1000){l=(f*0.001);this.queueData.averageSpeed=Math.floor(l);o="MB/s";}if(c.inArray("onUploadProgress",h.overrideEvents)<0){if(h.progressData=="percentage"){c("#"+g.id).find(".data").html(" - "+p+"%");}else{if(h.progressData=="speed"&&k>500){c("#"+g.id).find(".data").html(" - "+this.queueData.averageSpeed+o);}}c("#"+g.id).find(".uploadify-progress-bar").css("width",p+"%");}if(h.onUploadProgress){h.onUploadProgress.call(this,g,m,j,d,this.queueData.uploadSize);}},onUploadStart:function(d){var e=this.settings;var f=new Date();this.timer=f.getTime();this.bytesLoaded=0;if(this.queueData.uploadQueue.length==0){this.queueData.uploadSize=d.size;}if(e.checkExisting){c.ajax({type:"POST",async:false,url:e.checkExisting,data:{filename:d.name},success:function(h){if(h==1){var g=confirm('A file with the name "'+d.name+'" already exists on the server.\nWould you like to replace the existing file?');if(!g){this.cancelUpload(d.id);c("#"+d.id).remove();if(this.queueData.uploadQueue.length>0&&this.queueData.queueLength>0){if(this.queueData.uploadQueue[0]=="*"){this.startUpload();}else{this.startUpload(this.queueData.uploadQueue.shift());}}}}}});}if(e.onUploadStart){e.onUploadStart.call(this,d);}},onUploadSuccess:function(f,h,d){var g=this.settings;var e=this.getStats();this.queueData.uploadsSuccessful=e.successful_uploads;this.queueData.queueBytesUploaded+=f.size;if(c.inArray("onUploadSuccess",g.overrideEvents)<0){c("#"+f.id).find(".data").html(" - Complete");}if(g.onUploadSuccess){g.onUploadSuccess.call(this,f,h,d);}}};c.fn.uploadify=function(d){if(b[d]){return b[d].apply(this,Array.prototype.slice.call(arguments,1));}else{if(typeof d==="object"||!d){return b.init.apply(this,arguments);}else{c.error("The method "+d+" does not exist in $.uploadify");}}};})($); \ No newline at end of file diff --git a/web/js/ripple.js b/web/js/ripple.js new file mode 100644 index 000000000..e0042f4a8 --- /dev/null +++ b/web/js/ripple.js @@ -0,0 +1,177 @@ +(function(){ + "use strict"; + + var colour = "#FFCC00"; + var opacity = 0.3; + var ripple_within_elements = ['input', 'button', 'a', 'p', 'span', 'div']; + var ripple_without_diameter = 50; + + var overlays = { + items: [], + get: function(){ + var $element; + for(var i = 0; i < overlays.items.length; i++){ + $element = overlays.items[i]; + if($element.transition_phase === false) { + $element.transition_phase = 0; + return $element; + } + } + $element = document.createElement("div"); + $element.style.position = "absolute"; + $element.style.opacity = opacity; + //$element.style.outline = "10px solid red"; + $element.style.pointerEvents = "none"; + $element.style.background = "-webkit-radial-gradient(" + colour + " 64%, rgba(0,0,0,0) 65%) no-repeat"; + $element.style.background = "radial-gradient(" + colour + " 64%, rgba(0,0,0,0) 65%) no-repeat"; + $element.style.transform = "translateZ(0)"; + $element.transition_phase = 0; + $element.rid = overlays.items.length; + $element.next_transition = overlays.next_transition_generator($element); + document.body.appendChild($element); + overlays.items.push($element); + return $element; + }, + next_transition_generator: function($element){ + return function(){ + $element.transition_phase++; + switch($element.transition_phase){ + case 1: + $element.style[transition] = "all 0.2s ease-in-out"; + $element.style.backgroundSize = $element.ripple_backgroundSize; + $element.style.backgroundPosition = $element.ripple_backgroundPosition; + setTimeout($element.next_transition, 0.2 * 1000); //now I know transitionend is better but it fires multiple times when multiple properties are animated, so this is simpler code and (imo) worth tiny delays + break; + case 2: + $element.style[transition] = "opacity 0.15s ease-in-out"; + $element.style.opacity = 0; + setTimeout($element.next_transition, 0.15 * 1000); + break; + case 3: + overlays.recycle($element); + break; + } + }; + }, + recycle: function($element){ + $element.style.display = "none"; + $element.style[transition] = "none"; + if($element.timer) clearTimeout($element.timer); + $element.transition_phase = false; + } + }; + + var transition = function(){ + var i, + el = document.createElement('div'), + transitions = { + 'WebkitTransition':'webkitTransition', + 'transition':'transition', + 'OTransition':'otransition', + 'MozTransition':'transition' + }; + for (i in transitions) { + if (transitions.hasOwnProperty(i) && el.style[i] !== undefined) { + return transitions[i]; + } + } + }(); + + var click = function(event){ + touch = event.touches ? event.touches[0] : event; + + if(!$(touch.target).hasClass('ripple')){ + return ; + } + + var darker = 1; + if($(touch.target).hasClass('ripple-brighter')){ + darker = 0; + } + + colour = change_brightness($(touch.target).css('backgroundColor'), 35, darker); + + var $element = overlays.get(), + touch, + x, + y; + $element.style[transition] = "none"; + $element.style.backgroundSize = "3px 3px"; + $element.style.opacity = opacity; + + if(ripple_within_elements.indexOf(touch.target.nodeName.toLowerCase()) > -1) { + x = touch.offsetX; + y = touch.offsetY; + + var dimensions = touch.target.getBoundingClientRect(); + if(!x || !y){ + x = (touch.clientX || touch.x) - dimensions.left; + y = (touch.clientY || touch.y) - dimensions.top; + } + + $element.style.backgroundPosition = x + "px " + y + "px"; + $element.style.width = dimensions.width + "px"; + $element.style.height = dimensions.height + "px"; + $element.style.left = (dimensions.left) + "px"; + $element.style.top = (dimensions.top + document.body.scrollTop + document.documentElement.scrollTop) + "px"; + var computed_style = window.getComputedStyle(event.target); + for (var key in computed_style) { + if (key.toString().indexOf("adius") > -1) { + if(computed_style[key]) { + $element.style[key] = computed_style[key]; + } + } else if(parseInt(key, 10).toString() === key && computed_style[key].indexOf("adius") > -1){ + $element.style[computed_style[key]] = computed_style[computed_style[key]]; + } + } + $element.style.backgroundPosition = x + "px " + y + "px"; + $element.ripple_backgroundPosition = (x - dimensions.width) + "px " + (y - dimensions.width) + "px"; + $element.ripple_backgroundSize = (dimensions.width * 2) + "px " + (dimensions.width * 2) + "px"; + + $element.ripple_x = x; + $element.ripple_y = y; + $element.style.display = "block"; + setTimeout($element.next_transition, 20); + } + }; + + if('ontouchstart' in window || 'onmsgesturechange' in window){ + document.addEventListener("touchstart", click, false); + } else { + document.addEventListener("click", click, false); + } +}()); + + + +function change_brightness(rgb_color, percent, darker){ + darker = darker || 0; + var parts = rgb_color.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); + delete(parts[0]); + for (var i = 1; i <= 3; ++i) { + parts[i] = parseInt(parts[i]).toString(16); + if (parts[i].length == 1) parts[i] = '0' + parts[i]; + } + hex = parts.join(''); + + // convert 3 char codes --> 6, e.g. `E0F` --> `EE00FF` + if(hex.length == 3){ + hex = hex.replace(/(.)/g, '$1$1'); + } + + var r = parseInt(hex.substr(0, 2), 16), + g = parseInt(hex.substr(2, 2), 16), + b = parseInt(hex.substr(4, 2), 16); + + if(darker){ + return '#' + + ((0|(1<<8) + r - (r) * percent / 100).toString(16)).substr(1) + + ((0|(1<<8) + g - (g) * percent / 100).toString(16)).substr(1) + + ((0|(1<<8) + b - (b) * percent / 100).toString(16)).substr(1); + }else{ + return '#' + + ((0|(1<<8) + r + (256 - r) * percent / 100).toString(16)).substr(1) + + ((0|(1<<8) + g + (256 - g) * percent / 100).toString(16)).substr(1) + + ((0|(1<<8) + b + (256 - b) * percent / 100).toString(16)).substr(1); + } +} \ No newline at end of file diff --git a/web/js/templates.js b/web/js/templates.js index e91f2f799..47c9f5aa5 100644 --- a/web/js/templates.js +++ b/web/js/templates.js @@ -5,6 +5,67 @@ App.Templates.html = { WEB: { hint: [''] + }, + // file manager + FM: { + entry_line: ['
  • \ + \ + \ + \ + ~!:NAME~!\ + ~!:PERMISSIONS~!\ + ~!:OWNER~!\ + ~!:SIZE~!\ + ~!:DATE~!\ + ~!:TIME~!\ +
  • '], + popup_delete: [''], + popup_rename: ['
    \ +
    Rename file "~!:FILENAME~!"
    \ + \ +
    \ +
    \ + \ +
    \ +
    \ +

    cancel

    \ +

    rename

    \ +
    \ +
    \ +

    cancel

    \ +

    rename

    \ +
    \ +
    '], + popup_create_file: ['
    \ +
    Create file
    \ + \ +
    \ +
    \ + \ +
    \ +
    \ +

    cancel

    \ +

    create

    \ +
    \ +
    '], + popup_create_dir: ['
    \ +
    Create directory
    \ + \ +
    \ +
    \ + \ +
    \ +
    \ +

    cancel

    \ +

    create

    \ +
    \ +
    '] } }; diff --git a/web/js/uploadify.swf b/web/js/uploadify.swf new file mode 100644 index 0000000000000000000000000000000000000000..1090a0e019009956fedad060b2e87f65af710da8 GIT binary patch literal 12767 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 literal 0 HcmV?d00001 diff --git a/web/list/updates/index.php b/web/list/updates/index.php index 394b50e22..f53f7682e 100644 --- a/web/list/updates/index.php +++ b/web/list/updates/index.php @@ -1,6 +1,6 @@ - - - - - +
    +
    +
    + + → ".$_SESSION['error_msg'].""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; + } + } + ?>
    +
    + +
    + +
    + + +
    +
    +
    @@ -40,7 +47,7 @@
    - > + >
    @@ -100,7 +107,7 @@ - + @@ -108,3 +115,4 @@
    +
    \ No newline at end of file diff --git a/web/templates/admin/add_db.html b/web/templates/admin/add_db.html index a81415c83..11416b315 100644 --- a/web/templates/admin/add_db.html +++ b/web/templates/admin/add_db.html @@ -1,29 +1,36 @@ - - - - - - +
    +
    +
    + + → ".$_SESSION['error_msg'].""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; + } + } + ?>
    +
    + +
    + +
    + + +
    +
    + diff --git a/web/templates/admin/add_user.html b/web/templates/admin/add_user.html index 05e142671..c6cd71ddd 100644 --- a/web/templates/admin/add_user.html +++ b/web/templates/admin/add_user.html @@ -1,29 +1,38 @@ - - - - - - +
    +
    +
    + + → ".$_SESSION['error_msg'].""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; + } + } + ?>
    +
    + +
    + + + +
    + + +
    + + diff --git a/web/templates/admin/edit_user.html b/web/templates/admin/edit_user.html index bec90e90d..2f98b126d 100644 --- a/web/templates/admin/edit_user.html +++ b/web/templates/admin/edit_user.html @@ -1,29 +1,36 @@ +
    +
    +
    + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; } - ?> - - - - - + } + ?>
    - +
    + +
    + +
    + + +
    + + + +
    +

    +
    + +
    + - - - - - -
    ">
    - - - - - - - - - - - - + + + + - if ($data[$key]['KEY'] == 'RECORD') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'].'&record_id='.$data[$key]['LINK'].'&user='.$data[$key]['USER']; - $cnfrm = 'SUSPEND_RECORD_CONFIRMATION'; - } - if ($data[$key]['KEY'] == 'ACCOUNT') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'].'&account='.$data[$key]['LINK'].'&user='.$data[$key]['USER']; - $cnfrm = 'SUSPEND_USER_CONFIRMATION'; - } - if ($data[$key]['KEY'] == 'JOB') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'].'&user='.$data[$key]['USER']; - $cnfrm = 'SUSPEND_CRON_CONFIRMATION'; - } - if ($data[$key]['KEY'] == 'DATABASE') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?database='.$data[$key]['RESULT'].'&user='.$data[$key]['USER']; - $cnfrm = 'SUSPEND_DATABASE_CONFIRMATION'; - } - if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB') && ($data[$key]['KEY'] != 'DATABASE') ) { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'].'&user='.$data[$key]['USER']; - $cnfrm = 'SUSPEND_DOMAIN_CONFIRMATION'; - } - ?> - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - -
    - - - - -
    - -
    -
    - - - - - -
    - : - - -
    -
    - - - - - -
    - : - - -
    -
    - - - - - - -
    - + +
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + + + + + + +
    +
    +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/list_services.html b/web/templates/admin/list_services.html index 2f1e16f97..f1648c709 100644 --- a/web/templates/admin/list_services.html +++ b/web/templates/admin/list_services.html @@ -1,200 +1,213 @@ - - - - - +
    +
    +
    + + + + + + +
    + + + +
    + +
    + +
    + +
    +
    -
    - - - - - + + + +
    + + + +
    - $value) { - ++$i; - if ($data[$key]['STATE'] == 'running') { - $status = 'active'; - $action = 'stop'; - } else { - $status = 'suspended'; - $action = 'start'; - } - - $cpu = $data[$key]['CPU'] / 10; - $cpu = number_format($cpu, 1); - if ($cpu == '0.0') $cpu = 0; - ?> - -
    - - - - - -
    - - - -
    -
    - - - - - - - - - - - - - - - - - -
    - -
    - - - + - -
    - - - - () - -
    -
    - - - - - -
    - : - - -
    -
    - - - - - -
    - : - - -
    -
    -
    - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - -
    -
    - - - - - -
    - : - - % -
    -
    - - - - - -
    - : - - -
    -
    - - - - - -
    - : - - -
    -
    -
    - +
    +
    +
    + + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    suspended
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + +
    +
    +
    + + +
    +
    ()
    +
    +
    +
    +
    :
    +
    +
    +
    +
    +
    :
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + $value) { + ++$i; + if ($data[$key]['STATE'] == 'running') { + $status = 'active'; + $action = 'stop'; + } else { + $status = 'suspended'; + $action = 'start'; + } + + $cpu = $data[$key]['CPU'] / 10; + $cpu = number_format($cpu, 1); + if ($cpu == '0.0') $cpu = 0; + ?> + + +
    +
    +
    + + +
    + +
    +
    + + +
    + +
    + +
    + + +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    : +
    +
    +
    +
    +
    :
    +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/web/templates/admin/list_ssl.html b/web/templates/admin/list_ssl.html index 8f583b093..aa2addf9f 100644 --- a/web/templates/admin/list_ssl.html +++ b/web/templates/admin/list_ssl.html @@ -1,29 +1,36 @@ - - - - - - +
    +
    +
    + + → ".$_SESSION['error_msg'].""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; + } + } + ?>
    +
    + +
    + +
    + + +
    +
    +
    @@ -69,7 +76,7 @@
    - +
    @@ -77,3 +84,4 @@
    +
    \ No newline at end of file diff --git a/web/templates/admin/list_stats.html b/web/templates/admin/list_stats.html index 5dc52347f..61fc06774 100644 --- a/web/templates/admin/list_stats.html +++ b/web/templates/admin/list_stats.html @@ -1,207 +1,269 @@ - - - - - +
    +
    +
    + + + + + + + +
    + + +
    + +
    + +
    + +
    +
    -
    - + - $value) { - ++$i; - ?> + - - - - + + - +
    + -
    - - -
    -
    -
    - - - - - - - - - -
    - -
    - - - - - - - - - - -
    - : -
    -
    -
    -
    - : -
    -
    -
    -
    - - - - - - - - - -
    - : - - : -
    - : - - : -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    -
    -
    -
    - +
    + $value) { + ++$i; + ?> + + +
    +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/list_updates.html b/web/templates/admin/list_updates.html index 06006482b..bd13c6e29 100644 --- a/web/templates/admin/list_updates.html +++ b/web/templates/admin/list_updates.html @@ -1,127 +1,148 @@ - - - - - - +
    +
    +
    + + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    + "> '.__('disable autoupdate').''; + } else { + echo ''.__('enable autoupdate').''; + } ?> +
    -
    - + - $value) { - ++$i; - if ($data[$key]['UPDATED'] == 'yes') { - $status = 'active'; - $upd_status = __('updated'); - } else { - $status = 'suspended'; - $upd_status = __('outdated'); - } - ?> + - - - - +
    + - -
    - - - -
    -
    - - - - - - - - -
    + + - - - - - - - - - -
    - -
    - - - - -
    - -
    -
    - - - - - -
    - : - - () -
    -
    - - - - - -
    - : - - -
    -
    -
    - + +
    + $value) { + ++$i; + + if ($data[$key]['UPDATED'] == 'yes') { + $status = 'active'; + $upd_status = __('updated'); + } else { + $status = 'suspended'; + $upd_status = __('outdated'); + } + + ?> + + + + +
    +
    +
    + + +
    + +
    + '; + } + ?> +
    + +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    + + + +
    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    + () +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    diff --git a/web/templates/admin/list_user.html b/web/templates/admin/list_user.html index d2dabbf16..49d7bcbdb 100644 --- a/web/templates/admin/list_user.html +++ b/web/templates/admin/list_user.html @@ -1,254 +1,354 @@ - - - - - +
    +
    + '; + } else { + echo ''; + } + ?> +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_USER_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend' ; - $spnd_confirmation = 'SUSPEND_USER_CONFIRMATION' ; + + + + + + + +
    + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_USER_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'SUSPEND_USER_CONFIRMATION' ; + } + ?> + +
    +
    +
    + + +
    + +
    +
    + + + + -
    -

    -
    - - - - - - - - - -
    - - - - - - - -
    -
    - - - - - - - - - - - - -
    - : -
    -
    -
    -
    : -
    -
    -
    -
    - - - - - - - - - -
    - : - - : -
    - : - - - : -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    : /
    : /
    : /
    : /
    : /
    : /
    -
    - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :',$data[$key]['NS']) ?>
    -
    - - - - - - -
    - + }); + }); + +
    +

    +
    + + + + + +
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + / +
    +
    +
    +
    + +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + ',$data[$key]['NS'])?> +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/admin/list_web.html b/web/templates/admin/list_web.html index 5c61c81ec..cb8af7354 100644 --- a/web/templates/admin/list_web.html +++ b/web/templates/admin/list_web.html @@ -1,34 +1,63 @@ - - - - - +
    +
    + + +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + + +
    +
    -
    - + + + + + + + +
    + + + + + + + +
    $value) { ++$i; @@ -83,156 +112,193 @@ $proxy_ext_title = ''; $proxy_ext = str_replace(',', ', ', $data[$key]['PROXY_EXT']); } - ?> -
    - - - - -
    - - - - -
    ">
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ?> - - - - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    - -
    - : -
    -
    -
    -
    - : -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
     
    :
    :
    :
    -
    - - - - - - - - - - - - - - - - - - - - - - -
     
    :
    :
    :
    :
    -
    -
    - +
    +
    +
    + + +
    + +
    +
    + + + + + + + -
    -
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/admin/list_weblog.html b/web/templates/admin/list_weblog.html index 7aa7de688..0b0b81703 100644 --- a/web/templates/admin/list_weblog.html +++ b/web/templates/admin/list_weblog.html @@ -1,29 +1,40 @@ - - + + - - Web Log Manager - - + + + Vesta - <?=__('Web Log Manager')?> + + + + + + + -
    - + + + + + + +
    +
    diff --git a/web/templates/admin/panel.html b/web/templates/admin/panel.html
    index b5c5475f6..f739bc85b 100644
    --- a/web/templates/admin/panel.html
    +++ b/web/templates/admin/panel.html
    @@ -1,120 +1,103 @@
    -    
    -
    -
    - - - - - - - - - - - - - - - - -
    - +
    + +
    + \ No newline at end of file diff --git a/web/templates/file_manager/main.php b/web/templates/file_manager/main.php new file mode 100644 index 000000000..c2cfe315d --- /dev/null +++ b/web/templates/file_manager/main.php @@ -0,0 +1,377 @@ + + + +Filemanager + + + + + + + + + + + + +
    +
    +
    + '.$dir.''; + } ?> */ ?> +
    + + + +
      + 1){ + echo '
    • + + .. +
    • '; + } + + foreach($listing['dirs'] as $dir){ + echo '
    • + '.$dir['name'].' + '.$dir['atime_human'].' + '.$dir['adate_human'].' +   +   + '.$dir['owner'].'/'.$dir['group'].' + '.$dir['mode']['owner'].''.$dir['mode']['group'].''.$dir['mode']['other'].' +
    • '; + } + + foreach($listing['files'] as $item){ + echo '
    • + '.$item['name'].' + '.$item['atime_human'].' + '.$item['adate_human'].' +   + '.$item['size'].' + '.$item['owner'].'/'.$item['group'].' + '.$item['mode']['owner'].''.$item['mode']['group'].''.$item['mode']['other'].' +
    • '; + }*/ ?> + + +
    +
    + + +
    + + + + +
      + +
    +
    +
    + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/templates/file_manager/tab_menu.php b/web/templates/file_manager/tab_menu.php new file mode 100644 index 000000000..8ae1d08fc --- /dev/null +++ b/web/templates/file_manager/tab_menu.php @@ -0,0 +1,17 @@ + + + + + UPLOAD + + + +
    CREATE FILE
    +
    CREATE DIR
    +
    DELETE
    +
    RENAME
    + +
    COPY
    + +
    DOWNLOAD
    +
    SORT BYtype
    diff --git a/web/templates/footer.html b/web/templates/footer.html index cb4d14f9d..91b9b38b6 100644 --- a/web/templates/footer.html +++ b/web/templates/footer.html @@ -1,34 +1,58 @@ -
    -
    - - - + $(document).ready(function() { + $('.l-sort__create-btn').hover(function(){ + $(".l-sort__create-btn").append("
    "); + $(".l-sort__create-btn").append("
    "+$('.l-sort__create-btn').attr('title').replace(' ',' ')+"
    "); + }, function(){ + $("#add-icon").remove(); + $("#tooltip").remove(); + }); - - - - - - - + if (this.first){ + this.right.css({'-webkit-transform': 'rotate('+this.degr+'deg)'}); + this.right.css({'transform': 'rotate('+this.degr+'deg)'}); + } + else{ + this.left.css({'-webkit-transform': 'rotate('+this.degr+'deg)'}); + this.left.css({'transform': 'rotate('+this.degr+'deg)'}); + } + } + } + + + + + + + diff --git a/web/templates/login.html b/web/templates/login.html index d6c838bcc..d02127bd0 100644 --- a/web/templates/login.html +++ b/web/templates/login.html @@ -5,13 +5,13 @@
    - Vesta Control Panel + Vesta Control Panel
    - @@ -24,7 +24,7 @@ diff --git a/web/templates/reset_1.html b/web/templates/reset_1.html index 291ecba83..b48f37067 100644 --- a/web/templates/reset_1.html +++ b/web/templates/reset_1.html @@ -28,7 +28,7 @@
    - +
    diff --git a/web/templates/reset_2.html b/web/templates/reset_2.html index 917bb0ff1..d4b62a7c7 100644 --- a/web/templates/reset_2.html +++ b/web/templates/reset_2.html @@ -28,7 +28,7 @@ - + diff --git a/web/templates/reset_3.html b/web/templates/reset_3.html index fdd0192ea..95b31df0a 100644 --- a/web/templates/reset_3.html +++ b/web/templates/reset_3.html @@ -36,7 +36,7 @@ - + diff --git a/web/templates/user/edit_dns.html b/web/templates/user/edit_dns.html index 29494e506..aa7d6811a 100644 --- a/web/templates/user/edit_dns.html +++ b/web/templates/user/edit_dns.html @@ -1,29 +1,36 @@ +
    +
    +
    + → ".$_SESSION['error_msg'].""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; } - ?> - - - - - + } + ?>
    - +
    + +
    + +
    + + +
    + + + + + + + + +
    @@ -46,7 +53,7 @@
    - - () +
    - + $value) { + echo "\t\t\t\t\n"; + } + ?> + +
    + () +
    + - +
    - \ No newline at end of file + +
    \ No newline at end of file diff --git a/web/templates/user/edit_user.html b/web/templates/user/edit_user.html index bd5ef6a73..40710c028 100644 --- a/web/templates/user/edit_user.html +++ b/web/templates/user/edit_user.html @@ -1,29 +1,36 @@ +
    +
    +
    + → ".$_SESSION['error_msg'].""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo " → ".$_SESSION['ok_msg'].""; } - ?> - - - - - + } + ?>
    -
    +
    + +
    + +
    + + +
    + + + + diff --git a/web/templates/user/list_cron.html b/web/templates/user/list_cron.html index 1b5106833..8234cfee6 100644 --- a/web/templates/user/list_cron.html +++ b/web/templates/user/list_cron.html @@ -1,155 +1,166 @@ - - - - - +
    +
    + +
    + + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    +   + '.__('turn off notifications').''; + } else { + echo ''.__('turn on notifications').''; + } + ?> +
    -
    - + - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend'; - $spnd_confirmation = 'UNSUSPEND_CRON_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend'; - $spnd_confirmation = 'SUSPEND_CRON_CONFIRMATION' ; - } - ?> + - - - - + + + +
    + + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend'; + $spnd_confirmation = 'UNSUSPEND_CRON_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend'; + $spnd_confirmation = 'SUSPEND_CRON_CONFIRMATION' ; + } + ?> + + +
    +
    +
    + + +
    + +
    +
    - - - - -
    ">
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    +

    +

    +

    +

    +

    +
    + +
    +
    + + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_db.html b/web/templates/user/list_db.html index fb4c67fc8..eda377234 100644 --- a/web/templates/user/list_db.html +++ b/web/templates/user/list_db.html @@ -1,161 +1,209 @@ - - - - - +
    +
    + + +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    +
    -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_DATABASE_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend' ; - $spnd_confirmation = 'SUSPEND_DATABASE_CONFIRMATION' ; - } - if ($data[$key]['HOST'] != 'localhost' ) $http_host = $data[$key]['HOST']; - if ($data[$key]['TYPE'] == 'mysql') $db_admin = "phpMyAdmin"; - if ($data[$key]['TYPE'] == 'mysql') $db_admin_link = "http://".$http_host."/phpmyadmin/"; - if (($data[$key]['TYPE'] == 'mysql') && (!empty($_SESSION['DB_PMA_URL']))) $db_admin_link = $_SESSION['DB_PMA_URL']; - if ($data[$key]['TYPE'] == 'pgsql') $db_admin = "phpPgAdmin"; - if ($data[$key]['TYPE'] == 'pgsql') $db_admin_link = "http://".$http_host."/phppgadmin/"; - if (($data[$key]['TYPE'] == 'pgsql') && (!empty($_SESSION['DB_PGA_URL']))) $db_admin_link = $_SESSION['DB_PGA_URL']; - ?> - - - - - -
    - - - - -
    ">
    -
    - - - - - " /> - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - -
    - : -
    -
    -
    -
    -
    - - - - - - - - - -
    - : - - -
    - : - - -
    -
    - - - - - - - - - -
    - : - - -
    - : - - -
    -
    -
    - +
    + + + + +
    + +
    + + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_DATABASE_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'SUSPEND_DATABASE_CONFIRMATION' ; + } + if ($data[$key]['HOST'] != 'localhost' ) $http_host = $data[$key]['HOST']; + if ($data[$key]['TYPE'] == 'mysql') $db_admin = "phpMyAdmin"; + if ($data[$key]['TYPE'] == 'mysql') $db_admin_link = "http://".$http_host."/phpmyadmin/"; + if (($data[$key]['TYPE'] == 'mysql') && (!empty($_SESSION['DB_PMA_URL']))) $db_admin_link = $_SESSION['DB_PMA_URL']; + if ($data[$key]['TYPE'] == 'pgsql') $db_admin = "phpPgAdmin"; + if ($data[$key]['TYPE'] == 'pgsql') $db_admin_link = "http://".$http_host."/phppgadmin/"; + if (($data[$key]['TYPE'] == 'pgsql') && (!empty($_SESSION['DB_PGA_URL']))) $db_admin_link = $_SESSION['DB_PGA_URL']; + ?> + + +
    +
    +
    + + +
    + +
    +
    + + + + + -
    -
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + + + + + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_dns.html b/web/templates/user/list_dns.html index d1638ee16..9f8baa961 100644 --- a/web/templates/user/list_dns.html +++ b/web/templates/user/list_dns.html @@ -1,141 +1,185 @@ - - - - - +
    +
    + +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_DOMAIN_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend' ; - $spnd_confirmation = 'SUSPEND_DOMAIN_CONFIRMATION' ; - } - ?> - - - - - -
    - - - - -
    ">
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - -
    - - -
    - - - - - - - + -
    - -
    -
    - - - - - - - - - -
    :
    :
    -
    - - - - - -
    :
    -
    -
    - + +
    -
    - +
    + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_DOMAIN_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'SUSPEND_DOMAIN_CONFIRMATION' ; + } + ?> + +
    +
    +
    + + +
    + +
    + + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + ⇢ ".$data[$key]['SRC']."";?> +
    +
    + +
    + + +
    + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_dns_rec.html b/web/templates/user/list_dns_rec.html index 19014a77b..052a75cfa 100644 --- a/web/templates/user/list_dns_rec.html +++ b/web/templates/user/list_dns_rec.html @@ -1,99 +1,140 @@ - - - - - +
    +
    + +
    + + + + + + +
    + + + +
    + +
    + +
    + +
    -
    - - - - -
    - -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_RECORD_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend' ; - $spnd_confirmation = 'UNSUSPEND_RECORD_CONFIRMATION' ; - } - ?> - - - - - -
    - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    -
    - +
    + + + + +
    + + +
    + + + + + +
    + +
    +
    +
    + +
    + + + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_RECORD_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'UNSUSPEND_RECORD_CONFIRMATION' ; + } + ?> + + +
    +
    +
    + + +
    + +
    +
    + + -
    -
    + +
    +
    + + +
    +
    suspended
    +
    + +
    +
    +
    +
    +
     
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_mail.html b/web/templates/user/list_mail.html index d7e792871..cbe155460 100644 --- a/web/templates/user/list_mail.html +++ b/web/templates/user/list_mail.html @@ -1,172 +1,222 @@ - - - - - +
    +
    + + +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    +
    -
    - - + + + + + + +
    + + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_DOMAIN_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'UNSUSPEND_DOMAIN_CONFIRMATION' ; + } + if (empty($data[$key]['CATCHALL'])) { + $data[$key]['CATCHALL'] = '/dev/null'; + } + ?> + + +
    +
    +
    + + +
    + +
    +
    + + + + + + - foreach ($data as $key => $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_DOMAIN_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend' ; - $spnd_confirmation = 'UNSUSPEND_DOMAIN_CONFIRMATION' ; - } - if (empty($data[$key]['CATCHALL'])) { - $data[$key]['CATCHALL'] = '/dev/null'; - } - ?> -
    - - - - -
    - - - - -
    " >
    ">
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - -
    - : -
    -
    -
    -
    -
    - - - - - - - - - -
    - : - - -
    - : - - -
    -
    - - - - - - - - - -
    - : - - -
    - : - - -
    -
    -
    - -
    -
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + + + + + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_mail_acc.html b/web/templates/user/list_mail_acc.html index 28a38cb25..ba7d6764f 100644 --- a/web/templates/user/list_mail_acc.html +++ b/web/templates/user/list_mail_acc.html @@ -1,148 +1,201 @@ - - - - - +
    +
    + +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    +
    -
    - - - - -
    - -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend'; - $spnd_confirmation = 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' ; - } - ?> + - - - - - -
    - - - - -
    ">
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - - - - -
    - : -
    -
    -
    -
    -
    - - - - - - - - - -
    - : - - -
    - : - - -
    -
    - - - - - -
    - : - - -
    -
    -
    - + -
    - + +
    + +
    + + + + +
    +
    +
    +
    + +
    + + + + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend'; + $spnd_confirmation = 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' ; + } + ?> + + +
    +
    +
    + + +
    + +
    + + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + + + + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_search.html b/web/templates/user/list_search.html index c13e1ac49..8d3cf3725 100644 --- a/web/templates/user/list_search.html +++ b/web/templates/user/list_search.html @@ -1,182 +1,261 @@ - - - - - +
    +
    + +
    + + + + + + +
    + : +
    +
    -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - } else { - $status = 'active'; - $spnd_action = 'suspend'; - } - if ($data[$key]['TYPE'] == 'db') { - $object = 'database'; - } else { - $object = strtolower($data[$key]['TYPE']." ".$data[$key]['KEY']); - } + + + + + +
    + + + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + } else { + $status = 'active'; + $spnd_action = 'suspend'; + } + if ($data[$key]['TYPE'] == 'db') { + $object = 'database'; + } else { + $object = strtolower($data[$key]['TYPE']." ".$data[$key]['KEY']); + } + ?> + + +
    +
    + + +
    +
    + + + + + +
    +

    +
    + + + -
    - - - - -
    - - - -
    ">
    -
    - - - - - - - - - - + + + + - if ($data[$key]['KEY'] == 'RECORD') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'].'&record_id='.$data[$key]['LINK'].'&user='.$data[$key]['USER']; - $cnfrm = 'RECORD_ACTION_CONFIRMATION'; - } - if ($data[$key]['KEY'] == 'ACCOUNT') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'].'&account='.$data[$key]['LINK'].'&user='.$data[$key]['USER']; - $cnfrm = 'USER_ACTION_CONFIRMATION'; - } - if ($data[$key]['KEY'] == 'JOB') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'].'&user='.$data[$key]['USER']; - $cnfrm = 'CRON_ACTION_CONFIRMATION'; - } - if ($data[$key]['KEY'] == 'DATABASE') { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?database='.$data[$key]['RESULT'].'&user='.$data[$key]['USER']; - $cnfrm = 'DATABASE_ACTION_CONFIRMATION'; - } - if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB') && ($data[$key]['KEY'] != 'DATABASE') ) { - $spnd_lnk = '/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'].'&user='.$data[$key]['USER']; - $cnfrm = 'DOMAIN_ACTION_CONFIRMATION'; - } - ?> - - - - - - - + + - - - - - - - -
    - - - - -
    - -
    -
    - - - - - -
    - : - - -
    -
    - - - - - -
    - : - - -
    -
    -
    - - -
    - + +
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + + + + + + +
    +
    +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/user/list_stats.html b/web/templates/user/list_stats.html index f1d3ac385..968df9641 100644 --- a/web/templates/user/list_stats.html +++ b/web/templates/user/list_stats.html @@ -1,191 +1,269 @@ - - - - - +
    +
    +
    + + + + + + + +
    + + +
    + +
    + +
    + +
    +
    -
    - + - $value) { - ++$i; - ?> + - - - - + + - +
    + -
    - - -
    -
    -
    - - - - - - - - - -
    - -
    - - - - - - - - - - -
    - : -
    -
    -
    -
    - : -
    -
    -
    -
    - - - - - - - - - -
    - : - - : -
    - : - - : -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    - : - - -
    -
    -
    -
    - +
    + $value) { + ++$i; + ?> + + +
    +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/user/list_user.html b/web/templates/user/list_user.html index 2d3686b3e..c1e997972 100644 --- a/web/templates/user/list_user.html +++ b/web/templates/user/list_user.html @@ -1,179 +1,354 @@ - - - - - +
    +
    + '; + } else { + echo ''; + } + ?> +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + +
    -
    - - $value) { - ++$i; - if ($data[$key]['SUSPENDED'] == 'yes') { - $status = 'suspended'; - $spnd_action = 'unsuspend' ; - $spnd_confirmation = 'UNSUSPEND_USER_CONFIRMATION' ; - } else { - $status = 'active'; - $spnd_action = 'suspend' ; - $spnd_confirmation = 'SUSPEND_USER_CONFIRMATION' ; + + + + + + + +
    + + + +
    + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_USER_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'SUSPEND_USER_CONFIRMATION' ; + } + ?> + +
    +
    +
    + + +
    + +
    +
    + + + + +
    +

    +
    + + + + + +
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + : +
    +
    + : +
    +
    +
    +
    +
    :
    +
    + / +
    +
    +
    +
    + +
    +
    :
    +
    + / +
    +
    +
    +
    +
    :
    +
    + ',$data[$key]['NS'])?> +
    +
    +
    +
    + +
    + +
    + +
    + + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/list_web.html b/web/templates/user/list_web.html index 76a5ab5df..fba1219a1 100644 --- a/web/templates/user/list_web.html +++ b/web/templates/user/list_web.html @@ -1,32 +1,63 @@ - - - - - +
    +
    + + +
    + + + + + + + +
    + + + + : + +
    + +
    + +
    + + +
    +
    -
    - + + + + + + + +
    + + + + + + + +
    $value) { ++$i; @@ -55,14 +86,25 @@ $ftp_user='no'; if (!empty($data[$key]['FTP_USER'])) { $ftp_user=$data[$key]['FTP_USER']; + } + if (strlen($ftp_user) > 24 ) { + $ftp_user = str_replace(':', ', ', $ftp_user); + $ftp_user = substr($ftp_user, 0, 24); + $ftp_user = trim($ftp_user, ":"); + $ftp_user = str_replace(':', ', ', $ftp_user); + $ftp_user = $ftp_user.", ..."; + } else { + $ftp_user = str_replace(':', ', ', $ftp_user); + } + $proxy_support='no'; if (!empty($data[$key]['PROXY'])) { $proxy_support='yes'; } - if (strlen($data[$key]['PROXY_EXT']) > 16 ) { + if (strlen($data[$key]['PROXY_EXT']) > 24 ) { $proxy_ext_title = str_replace(',', ', ', $data[$key]['PROXY_EXT']); - $proxy_ext = substr($data[$key]['PROXY_EXT'], 0, 16); + $proxy_ext = substr($data[$key]['PROXY_EXT'], 0, 24); $proxy_ext = trim($proxy_ext, ","); $proxy_ext = str_replace(',', ', ', $proxy_ext); $proxy_ext = $proxy_ext.", ..."; @@ -70,147 +112,194 @@ $proxy_ext_title = ''; $proxy_ext = str_replace(',', ', ', $data[$key]['PROXY_EXT']); } - ?> -
    - - - - -
    - - - - -
    ">
    -
    - - - - - - - - - - - - - - - - - - - - + ?> - - - - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - -
    - -
    - : -
    -
    -
    -
    - : -
    -
    -
    -
    -
    - - - - - - - - - - - - - - -
     
    :
    :
    :
    -
    - - - - - - - - - - - - - - - - - - - - - - +
    +
    +
    + + +
    + +
    +
    + + + + + + + -
     
    :
    :
    :
    :
    -
    -
    - -
    -
    + +
    +
    + + +
    +
    + +
    +
    suspended
    +
    + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    :
    +
    + +
    +
    +
    +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    + +
    + +
    +
    :
    +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + + +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/web/templates/user/panel.html b/web/templates/user/panel.html index 52e7bc2e6..021a71480 100644 --- a/web/templates/user/panel.html +++ b/web/templates/user/panel.html @@ -1,112 +1,97 @@ -
    -
    -
    - - - - - - - - -
    - \ No newline at end of file +
    + +
    + \ No newline at end of file diff --git a/web/upload/UploadHandler.php b/web/upload/UploadHandler.php new file mode 100755 index 000000000..fa7947654 --- /dev/null +++ b/web/upload/UploadHandler.php @@ -0,0 +1,1354 @@ + 'The uploaded file exceeds the upload_max_filesize directive in php.ini', + 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', + 3 => 'The uploaded file was only partially uploaded', + 4 => 'No file was uploaded', + 6 => 'Missing a temporary folder', + 7 => 'Failed to write file to disk', + 8 => 'A PHP extension stopped the file upload', + 'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini', + 'max_file_size' => 'File is too big', + 'min_file_size' => 'File is too small', + 'accept_file_types' => 'Filetype not allowed', + 'max_number_of_files' => 'Maximum number of files exceeded', + 'max_width' => 'Image exceeds maximum width', + 'min_width' => 'Image requires a minimum width', + 'max_height' => 'Image exceeds maximum height', + 'min_height' => 'Image requires a minimum height', + 'abort' => 'File upload aborted', + 'image_resize' => 'Failed to resize image' + ); + + protected $image_objects = array(); + + function __construct($options = null, $initialize = true, $error_messages = null) { + $this->options = array( + 'script_url' => $this->get_full_url().'/', + 'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/', + 'upload_url' => $this->get_full_url().'/files/', + 'user_dirs' => false, + 'mkdir_mode' => 0755, + 'param_name' => 'files', + // Set the following option to 'POST', if your server does not support + // DELETE requests. This is a parameter sent to the client: + 'delete_type' => 'DELETE', + 'access_control_allow_origin' => '*', + 'access_control_allow_credentials' => false, + 'access_control_allow_methods' => array( + 'OPTIONS', + 'HEAD', + 'GET', + 'POST', + 'PUT', + 'PATCH', + 'DELETE' + ), + 'access_control_allow_headers' => array( + 'Content-Type', + 'Content-Range', + 'Content-Disposition' + ), + // Enable to provide file downloads via GET requests to the PHP script: + // 1. Set to 1 to download files via readfile method through PHP + // 2. Set to 2 to send a X-Sendfile header for lighttpd/Apache + // 3. Set to 3 to send a X-Accel-Redirect header for nginx + // If set to 2 or 3, adjust the upload_url option to the base path of + // the redirect parameter, e.g. '/files/'. + 'download_via_php' => false, + // Read files in chunks to avoid memory limits when download_via_php + // is enabled, set to 0 to disable chunked reading of files: + 'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB + // Defines which files can be displayed inline when downloaded: + 'inline_file_types' => '/\.(gif|jpe?g|png)$/i', + // Defines which files (based on their names) are accepted for upload: + 'accept_file_types' => '/.+$/i', + // The php.ini settings upload_max_filesize and post_max_size + // take precedence over the following max_file_size setting: + 'max_file_size' => null, + 'min_file_size' => 1, + // The maximum number of files for the upload directory: + 'max_number_of_files' => null, + // Defines which files are handled as image files: + 'image_file_types' => '/\.(gif|jpe?g|png)$/i', + // Use exif_imagetype on all files to correct file extensions: + 'correct_image_extensions' => false, + // Image resolution restrictions: + 'max_width' => null, + 'max_height' => null, + 'min_width' => 1, + 'min_height' => 1, + // Set the following option to false to enable resumable uploads: + 'discard_aborted_uploads' => true, + // Set to 0 to use the GD library to scale and orient images, + // set to 1 to use imagick (if installed, falls back to GD), + // set to 2 to use the ImageMagick convert binary directly: + 'image_library' => 1, + // Uncomment the following to define an array of resource limits + // for imagick: + /* + 'imagick_resource_limits' => array( + imagick::RESOURCETYPE_MAP => 32, + imagick::RESOURCETYPE_MEMORY => 32 + ), + */ + // Command or path for to the ImageMagick convert binary: + 'convert_bin' => 'convert', + // Uncomment the following to add parameters in front of each + // ImageMagick convert call (the limit constraints seem only + // to have an effect if put in front): + /* + 'convert_params' => '-limit memory 32MiB -limit map 32MiB', + */ + // Command or path for to the ImageMagick identify binary: + 'identify_bin' => 'identify', + 'image_versions' => array( + // The empty image version key defines options for the original image: + '' => array( + // Automatically rotate images based on EXIF meta data: + 'auto_orient' => true + ), + // Uncomment the following to create medium sized images: + /* + 'medium' => array( + 'max_width' => 800, + 'max_height' => 600 + ), + */ + 'thumbnail' => array( + // Uncomment the following to use a defined directory for the thumbnails + // instead of a subdirectory based on the version identifier. + // Make sure that this directory doesn't allow execution of files if you + // don't pose any restrictions on the type of uploaded files, e.g. by + // copying the .htaccess file from the files directory for Apache: + //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/thumb/', + //'upload_url' => $this->get_full_url().'/thumb/', + // Uncomment the following to force the max + // dimensions and e.g. create square thumbnails: + //'crop' => true, + 'max_width' => 80, + 'max_height' => 80 + ) + ) + ); + if ($options) { + $this->options = $options + $this->options; + } + if ($error_messages) { + $this->error_messages = $error_messages + $this->error_messages; + } + if ($initialize) { + $this->initialize(); + } + } + + protected function initialize() { + switch ($this->get_server_var('REQUEST_METHOD')) { + case 'OPTIONS': + case 'HEAD': + $this->head(); + break; + case 'GET': + $this->get(); + break; + case 'PATCH': + case 'PUT': + case 'POST': + $this->post(); + break; + case 'DELETE': + $this->delete(); + break; + default: + $this->header('HTTP/1.1 405 Method Not Allowed'); + } + } + + protected function get_full_url() { + $https = !empty($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'on') === 0 || + !empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && + strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') === 0; + return + ($https ? 'https://' : 'http://'). + (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : ''). + (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME']. + ($https && $_SERVER['SERVER_PORT'] === 443 || + $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))). + substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')); + } + + protected function get_user_id() { + @session_start(); + return session_id(); + } + + protected function get_user_path() { + if ($this->options['user_dirs']) { + return $this->get_user_id().'/'; + } + return ''; + } + + protected function get_upload_path($file_name = null, $version = null) { + $relocate_directory = $_GET['dir']; + if (empty($relocate_directory)) { + $relocate_directory = '/home/admin/'; + } + if ($relocate_directory[strlen($relocate_directory) -1] != '/') { + $relocate_directory .= '/'; + } + $file_name = $file_name ? $file_name : ''; + if (empty($version)) { + $version_path = ''; + } else { + $version_dir = @$this->options['image_versions'][$version]['upload_dir']; + if ($version_dir) { + return $version_dir.$this->get_user_path().$file_name; + } + $version_path = $version.'/'; + } + //return $this->options['upload_dir'].$this->get_user_path() + // .$version_path.$file_name; + return $relocate_directory + .$version_path.$file_name; + } + + protected function get_query_separator($url) { + return strpos($url, '?') === false ? '?' : '&'; + } + + protected function get_download_url($file_name, $version = null, $direct = false) { + if (!$direct && $this->options['download_via_php']) { + $url = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file_name); + if ($version) { + $url .= '&version='.rawurlencode($version); + } + return $url.'&download=1'; + } + if (empty($version)) { + $version_path = ''; + } else { + $version_url = @$this->options['image_versions'][$version]['upload_url']; + if ($version_url) { + return $version_url.$this->get_user_path().rawurlencode($file_name); + } + $version_path = rawurlencode($version).'/'; + } + return $this->options['upload_url'].$this->get_user_path() + .$version_path.rawurlencode($file_name); + } + + protected function set_additional_file_properties($file) { + $file->deleteUrl = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file->name); + $file->deleteType = $this->options['delete_type']; + if ($file->deleteType !== 'DELETE') { + $file->deleteUrl .= '&_method=DELETE'; + } + if ($this->options['access_control_allow_credentials']) { + $file->deleteWithCredentials = true; + } + } + + // Fix for overflowing signed 32 bit integers, + // works for sizes up to 2^32-1 bytes (4 GiB - 1): + protected function fix_integer_overflow($size) { + if ($size < 0) { + $size += 2.0 * (PHP_INT_MAX + 1); + } + return $size; + } + + protected function get_file_size($file_path, $clear_stat_cache = false) { + if ($clear_stat_cache) { + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { + clearstatcache(true, $file_path); + } else { + clearstatcache(); + } + } + + return $this->fix_integer_overflow(filesize($file_path)); + } + + protected function is_valid_file_object($file_name) { + $file_path = $this->get_upload_path($file_name); + if (is_file($file_path) && $file_name[0] !== '.') { + return true; + } + return false; + } + + protected function get_file_object($file_name) { + if ($this->is_valid_file_object($file_name)) { + $file = new \stdClass(); + $file->name = $file_name; + $file->size = $this->get_file_size( + $this->get_upload_path($file_name) + ); + $file->url = $this->get_download_url($file->name); + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + if (is_file($this->get_upload_path($file_name, $version))) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } + } + } + $this->set_additional_file_properties($file); + return $file; + } + return null; + } + + protected function get_file_objects($iteration_method = 'get_file_object') { + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + return array(); + } + return array_values(array_filter(array_map( + array($this, $iteration_method), + scandir($upload_dir) + ))); + } + + protected function count_file_objects() { + return count($this->get_file_objects('is_valid_file_object')); + } + + protected function get_error_message($error) { + return array_key_exists($error, $this->error_messages) ? + $this->error_messages[$error] : $error; + } + + function get_config_bytes($val) { + $val = trim($val); + $last = strtolower($val[strlen($val)-1]); + switch($last) { + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + case 'k': + $val *= 1024; + } + return $this->fix_integer_overflow($val); + } + + protected function validate($uploaded_file, $file, $error, $index) { + if ($error) { + $file->error = $this->get_error_message($error); + return false; + } + $content_length = $this->fix_integer_overflow(intval( + $this->get_server_var('CONTENT_LENGTH') + )); + $post_max_size = $this->get_config_bytes(ini_get('post_max_size')); + if ($post_max_size && ($content_length > $post_max_size)) { + $file->error = $this->get_error_message('post_max_size'); + return false; + } + if (!preg_match($this->options['accept_file_types'], $file->name)) { + $file->error = $this->get_error_message('accept_file_types'); + return false; + } + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + $file_size = $this->get_file_size($uploaded_file); + } else { + $file_size = $content_length; + } + if ($this->options['max_file_size'] && ( + $file_size > $this->options['max_file_size'] || + $file->size > $this->options['max_file_size']) + ) { + $file->error = $this->get_error_message('max_file_size'); + return false; + } + if ($this->options['min_file_size'] && + $file_size < $this->options['min_file_size']) { + $file->error = $this->get_error_message('min_file_size'); + return false; + } + if (is_int($this->options['max_number_of_files']) && + ($this->count_file_objects() >= $this->options['max_number_of_files']) && + // Ignore additional chunks of existing files: + !is_file($this->get_upload_path($file->name))) { + $file->error = $this->get_error_message('max_number_of_files'); + return false; + } + $max_width = @$this->options['max_width']; + $max_height = @$this->options['max_height']; + $min_width = @$this->options['min_width']; + $min_height = @$this->options['min_height']; + if (($max_width || $max_height || $min_width || $min_height) + && preg_match($this->options['image_file_types'], $file->name)) { + list($img_width, $img_height) = $this->get_image_size($uploaded_file); + } + if (!empty($img_width)) { + if ($max_width && $img_width > $max_width) { + $file->error = $this->get_error_message('max_width'); + return false; + } + if ($max_height && $img_height > $max_height) { + $file->error = $this->get_error_message('max_height'); + return false; + } + if ($min_width && $img_width < $min_width) { + $file->error = $this->get_error_message('min_width'); + return false; + } + if ($min_height && $img_height < $min_height) { + $file->error = $this->get_error_message('min_height'); + return false; + } + } + return true; + } + + protected function upcount_name_callback($matches) { + $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; + $ext = isset($matches[2]) ? $matches[2] : ''; + return ' ('.$index.')'.$ext; + } + + protected function upcount_name($name) { + return preg_replace_callback( + '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', + array($this, 'upcount_name_callback'), + $name, + 1 + ); + } + + protected function get_unique_filename($file_path, $name, $size, $type, $error, + $index, $content_range) { + while(is_dir($this->get_upload_path($name))) { + $name = $this->upcount_name($name); + } + // Keep an existing filename if this is part of a chunked upload: + $uploaded_bytes = $this->fix_integer_overflow(intval($content_range[1])); + while(is_file($this->get_upload_path($name))) { + if ($uploaded_bytes === $this->get_file_size( + $this->get_upload_path($name))) { + break; + } + $name = $this->upcount_name($name); + } + return $name; + } + + protected function fix_file_extension($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Add missing file extension for known image types: + if (strpos($name, '.') === false && + preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) { + $name .= '.'.$matches[1]; + } + if ($this->options['correct_image_extensions'] && + function_exists('exif_imagetype')) { + switch(@exif_imagetype($file_path)){ + case IMAGETYPE_JPEG: + $extensions = array('jpg', 'jpeg'); + break; + case IMAGETYPE_PNG: + $extensions = array('png'); + break; + case IMAGETYPE_GIF: + $extensions = array('gif'); + break; + } + // Adjust incorrect image file extensions: + if (!empty($extensions)) { + $parts = explode('.', $name); + $extIndex = count($parts) - 1; + $ext = strtolower(@$parts[$extIndex]); + if (!in_array($ext, $extensions)) { + $parts[$extIndex] = $extensions[0]; + $name = implode('.', $parts); + } + } + } + return $name; + } + + protected function trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Remove path information and dots around the filename, to prevent uploading + // into different directories or replacing hidden system files. + // Also remove control characters and spaces (\x00..\x20) around the filename: + $name = trim(basename(stripslashes($name)), ".\x00..\x20"); + // Use a timestamp for empty filenames: + if (!$name) { + $name = str_replace('.', '-', microtime(true)); + } + return $name; + } + + protected function get_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + $name = $this->trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range); + return $this->get_unique_filename( + $file_path, + $this->fix_file_extension($file_path, $name, $size, $type, $error, + $index, $content_range), + $size, + $type, + $error, + $index, + $content_range + ); + } + + protected function handle_form_data($file, $index) { + // Handle form data, e.g. $_REQUEST['description'][$index] + } + + protected function get_scaled_image_file_paths($file_name, $version) { + $file_path = $this->get_upload_path($file_name); + if (!empty($version)) { + $version_dir = $this->get_upload_path(null, $version); + if (!is_dir($version_dir)) { + mkdir($version_dir, $this->options['mkdir_mode'], true); + } + $new_file_path = $version_dir.'/'.$file_name; + } else { + $new_file_path = $file_path; + } + return array($file_path, $new_file_path); + } + + protected function gd_get_image_object($file_path, $func, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $func($file_path); + } + return $this->image_objects[$file_path]; + } + + protected function gd_set_image_object($file_path, $image) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function gd_destroy_image_object($file_path) { + $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ; + return $image && imagedestroy($image); + } + + protected function gd_imageflip($image, $mode) { + if (function_exists('imageflip')) { + return imageflip($image, $mode); + } + $new_width = $src_width = imagesx($image); + $new_height = $src_height = imagesy($image); + $new_img = imagecreatetruecolor($new_width, $new_height); + $src_x = 0; + $src_y = 0; + switch ($mode) { + case '1': // flip on the horizontal axis + $src_y = $new_height - 1; + $src_height = -$new_height; + break; + case '2': // flip on the vertical axis + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + case '3': // flip on both axes + $src_y = $new_height - 1; + $src_height = -$new_height; + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + default: + return $image; + } + imagecopyresampled( + $new_img, + $image, + 0, + 0, + $src_x, + $src_y, + $new_width, + $new_height, + $src_width, + $src_height + ); + return $new_img; + } + + protected function gd_orient_image($file_path, $src_img) { + if (!function_exists('exif_read_data')) { + return false; + } + $exif = @exif_read_data($file_path); + if ($exif === false) { + return false; + } + $orientation = intval(@$exif['Orientation']); + if ($orientation < 2 || $orientation > 8) { + return false; + } + switch ($orientation) { + case 2: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + break; + case 3: + $new_img = imagerotate($src_img, 180, 0); + break; + case 4: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + break; + case 5: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 6: + $new_img = imagerotate($src_img, 270, 0); + break; + case 7: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 8: + $new_img = imagerotate($src_img, 90, 0); + break; + default: + return false; + } + $this->gd_set_image_object($file_path, $new_img); + return true; + } + + protected function gd_create_scaled_image($file_name, $version, $options) { + if (!function_exists('imagecreatetruecolor')) { + error_log('Function not found: imagecreatetruecolor'); + return false; + } + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + $src_func = 'imagecreatefromjpeg'; + $write_func = 'imagejpeg'; + $image_quality = isset($options['jpeg_quality']) ? + $options['jpeg_quality'] : 75; + break; + case 'gif': + $src_func = 'imagecreatefromgif'; + $write_func = 'imagegif'; + $image_quality = null; + break; + case 'png': + $src_func = 'imagecreatefrompng'; + $write_func = 'imagepng'; + $image_quality = isset($options['png_quality']) ? + $options['png_quality'] : 9; + break; + default: + return false; + } + $src_img = $this->gd_get_image_object( + $file_path, + $src_func, + !empty($options['no_cache']) + ); + $image_oriented = false; + if (!empty($options['auto_orient']) && $this->gd_orient_image( + $file_path, + $src_img + )) { + $image_oriented = true; + $src_img = $this->gd_get_image_object( + $file_path, + $src_func + ); + } + $max_width = $img_width = imagesx($src_img); + $max_height = $img_height = imagesy($src_img); + if (!empty($options['max_width'])) { + $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $max_height = $options['max_height']; + } + $scale = min( + $max_width / $img_width, + $max_height / $img_height + ); + if ($scale >= 1) { + if ($image_oriented) { + return $write_func($src_img, $new_file_path, $image_quality); + } + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + if (empty($options['crop'])) { + $new_width = $img_width * $scale; + $new_height = $img_height * $scale; + $dst_x = 0; + $dst_y = 0; + $new_img = imagecreatetruecolor($new_width, $new_height); + } else { + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = $img_width / ($img_height / $max_height); + $new_height = $max_height; + } else { + $new_width = $max_width; + $new_height = $img_height / ($img_width / $max_width); + } + $dst_x = 0 - ($new_width - $max_width) / 2; + $dst_y = 0 - ($new_height - $max_height) / 2; + $new_img = imagecreatetruecolor($max_width, $max_height); + } + // Handle transparency in GIF and PNG images: + switch ($type) { + case 'gif': + case 'png': + imagecolortransparent($new_img, imagecolorallocate($new_img, 0, 0, 0)); + case 'png': + imagealphablending($new_img, false); + imagesavealpha($new_img, true); + break; + } + $success = imagecopyresampled( + $new_img, + $src_img, + $dst_x, + $dst_y, + 0, + 0, + $new_width, + $new_height, + $img_width, + $img_height + ) && $write_func($new_img, $new_file_path, $image_quality); + $this->gd_set_image_object($file_path, $new_img); + return $success; + } + + protected function imagick_get_image_object($file_path, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->imagick_destroy_image_object($file_path); + $image = new \Imagick(); + if (!empty($this->options['imagick_resource_limits'])) { + foreach ($this->options['imagick_resource_limits'] as $type => $limit) { + $image->setResourceLimit($type, $limit); + } + } + $image->readImage($file_path); + $this->image_objects[$file_path] = $image; + } + return $this->image_objects[$file_path]; + } + + protected function imagick_set_image_object($file_path, $image) { + $this->imagick_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function imagick_destroy_image_object($file_path) { + $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ; + return $image && $image->destroy(); + } + + protected function imagick_orient_image($image) { + $orientation = $image->getImageOrientation(); + $background = new \ImagickPixel('none'); + switch ($orientation) { + case \imagick::ORIENTATION_TOPRIGHT: // 2 + $image->flopImage(); // horizontal flop around y-axis + break; + case \imagick::ORIENTATION_BOTTOMRIGHT: // 3 + $image->rotateImage($background, 180); + break; + case \imagick::ORIENTATION_BOTTOMLEFT: // 4 + $image->flipImage(); // vertical flip around x-axis + break; + case \imagick::ORIENTATION_LEFTTOP: // 5 + $image->flopImage(); // horizontal flop around y-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_RIGHTTOP: // 6 + $image->rotateImage($background, 90); + break; + case \imagick::ORIENTATION_RIGHTBOTTOM: // 7 + $image->flipImage(); // vertical flip around x-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_LEFTBOTTOM: // 8 + $image->rotateImage($background, 270); + break; + default: + return false; + } + $image->setImageOrientation(\imagick::ORIENTATION_TOPLEFT); // 1 + return true; + } + + protected function imagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $image = $this->imagick_get_image_object( + $file_path, + !empty($options['no_cache']) + ); + if ($image->getImageFormat() === 'GIF') { + // Handle animated GIFs: + $images = $image->coalesceImages(); + foreach ($images as $frame) { + $image = $frame; + $this->imagick_set_image_object($file_name, $image); + break; + } + } + $image_oriented = false; + if (!empty($options['auto_orient'])) { + $image_oriented = $this->imagick_orient_image($image); + } + $new_width = $max_width = $img_width = $image->getImageWidth(); + $new_height = $max_height = $img_height = $image->getImageHeight(); + if (!empty($options['max_width'])) { + $new_width = $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $new_height = $max_height = $options['max_height']; + } + if (!($image_oriented || $max_width < $img_width || $max_height < $img_height)) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $crop = !empty($options['crop']); + if ($crop) { + $x = 0; + $y = 0; + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = 0; // Enables proportional scaling based on max_height + $x = ($img_width / ($img_height / $max_height) - $max_width) / 2; + } else { + $new_height = 0; // Enables proportional scaling based on max_width + $y = ($img_height / ($img_width / $max_width) - $max_height) / 2; + } + } + $success = $image->resizeImage( + $new_width, + $new_height, + isset($options['filter']) ? $options['filter'] : \imagick::FILTER_LANCZOS, + isset($options['blur']) ? $options['blur'] : 1, + $new_width && $new_height // fit image into constraints if not to be cropped + ); + if ($success && $crop) { + $success = $image->cropImage( + $max_width, + $max_height, + $x, + $y + ); + if ($success) { + $success = $image->setImagePage($max_width, $max_height, 0, 0); + } + } + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + if (!empty($options['jpeg_quality'])) { + $image->setImageCompression(\imagick::COMPRESSION_JPEG); + $image->setImageCompressionQuality($options['jpeg_quality']); + } + break; + } + if (!empty($options['strip'])) { + $image->stripImage(); + } + return $success && $image->writeImage($new_file_path); + } + + protected function imagemagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $resize = @$options['max_width'] + .(empty($options['max_height']) ? '' : 'X'.$options['max_height']); + if (!$resize && empty($options['auto_orient'])) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $cmd = $this->options['convert_bin']; + if (!empty($this->options['convert_params'])) { + $cmd .= ' '.$this->options['convert_params']; + } + $cmd .= ' '.escapeshellarg($file_path); + if (!empty($options['auto_orient'])) { + $cmd .= ' -auto-orient'; + } + if ($resize) { + // Handle animated GIFs: + $cmd .= ' -coalesce'; + if (empty($options['crop'])) { + $cmd .= ' -resize '.escapeshellarg($resize.'>'); + } else { + $cmd .= ' -resize '.escapeshellarg($resize.'^'); + $cmd .= ' -gravity center'; + $cmd .= ' -crop '.escapeshellarg($resize.'+0+0'); + } + // Make sure the page dimensions are correct (fixes offsets of animated GIFs): + $cmd .= ' +repage'; + } + if (!empty($options['convert_params'])) { + $cmd .= ' '.$options['convert_params']; + } + $cmd .= ' '.escapeshellarg($new_file_path); + exec($cmd, $output, $error); + if ($error) { + error_log(implode('\n', $output)); + return false; + } + return true; + } + + protected function get_image_size($file_path) { + if ($this->options['image_library']) { + if (extension_loaded('imagick')) { + $image = new \Imagick(); + try { + if (@$image->pingImage($file_path)) { + $dimensions = array($image->getImageWidth(), $image->getImageHeight()); + $image->destroy(); + return $dimensions; + } + return false; + } catch (Exception $e) { + error_log($e->getMessage()); + } + } + if ($this->options['image_library'] === 2) { + $cmd = $this->options['identify_bin']; + $cmd .= ' -ping '.escapeshellarg($file_path); + exec($cmd, $output, $error); + if (!$error && !empty($output)) { + // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000 + $infos = preg_split('/\s+/', $output[0]); + $dimensions = preg_split('/x/', $infos[2]); + return $dimensions; + } + return false; + } + } + if (!function_exists('getimagesize')) { + error_log('Function not found: getimagesize'); + return false; + } + return @getimagesize($file_path); + } + + protected function create_scaled_image($file_name, $version, $options) { + if ($this->options['image_library'] === 2) { + return $this->imagemagick_create_scaled_image($file_name, $version, $options); + } + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_create_scaled_image($file_name, $version, $options); + } + return $this->gd_create_scaled_image($file_name, $version, $options); + } + + protected function destroy_image_object($file_path) { + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_destroy_image_object($file_path); + } + } + + protected function is_valid_image_file($file_path) { + if (!preg_match($this->options['image_file_types'], $file_path)) { + return false; + } + if (function_exists('exif_imagetype')) { + return @exif_imagetype($file_path); + } + $image_info = $this->get_image_size($file_path); + return $image_info && $image_info[0] && $image_info[1]; + } + + protected function handle_image_file($file_path, $file) { + $failed_versions = array(); + foreach($this->options['image_versions'] as $version => $options) { + if ($this->create_scaled_image($file->name, $version, $options)) { + if (!empty($version)) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } else { + $file->size = $this->get_file_size($file_path, true); + } + } else { + $failed_versions[] = $version ? $version : 'original'; + } + } + if (count($failed_versions)) { + $file->error = $this->get_error_message('image_resize') + .' ('.implode($failed_versions,', ').')'; + } + // Free memory: + $this->destroy_image_object($file_path); + } + + protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, + $index = null, $content_range = null) { + $file = new \stdClass(); + $file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error, + $index, $content_range); + $file->size = $this->fix_integer_overflow(intval($size)); + $file->type = $type; + if ($this->validate($uploaded_file, $file, $error, $index)) { + $this->handle_form_data($file, $index); + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + mkdir($upload_dir, $this->options['mkdir_mode'], true); + } + $file_path = $this->get_upload_path($file->name); + $append_file = $content_range && is_file($file_path) && + $file->size > $this->get_file_size($file_path); + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + // multipart/formdata uploads (POST method uploads) + if ($append_file) { + file_put_contents( + $file_path, + fopen($uploaded_file, 'r'), + FILE_APPEND + ); + } else { + move_uploaded_file($uploaded_file, $file_path); + } + } else { + // Non-multipart uploads (PUT method support) + file_put_contents( + $file_path, + fopen('php://input', 'r'), + $append_file ? FILE_APPEND : 0 + ); + } + $file_size = $this->get_file_size($file_path, $append_file); + //var_dump($file_size);die(); + if ($file_size === $file->size) { + $file->url = $this->get_download_url($file->name); + if ($this->is_valid_image_file($file_path)) { + $this->handle_image_file($file_path, $file); + } + } else { + $file->size = $file_size; + if (!$content_range && $this->options['discard_aborted_uploads']) { + unlink($file_path); + $file->error = $this->get_error_message('abort'); + } + } + $this->set_additional_file_properties($file); + } + return $file; + } + + protected function readfile($file_path) { + $file_size = $this->get_file_size($file_path); + $chunk_size = $this->options['readfile_chunk_size']; + if ($chunk_size && $file_size > $chunk_size) { + $handle = fopen($file_path, 'rb'); + while (!feof($handle)) { + echo fread($handle, $chunk_size); + @ob_flush(); + @flush(); + } + fclose($handle); + return $file_size; + } + return readfile($file_path); + } + + protected function body($str) { + echo $str; + } + + protected function header($str) { + header($str); + } + + protected function get_server_var($id) { + return isset($_SERVER[$id]) ? $_SERVER[$id] : ''; + } + + protected function generate_response($content, $print_response = true) { + if ($print_response) { + $json = json_encode($content); + $redirect = isset($_REQUEST['redirect']) ? + stripslashes($_REQUEST['redirect']) : null; + if ($redirect) { + $this->header('Location: '.sprintf($redirect, rawurlencode($json))); + return; + } + $this->head(); + if ($this->get_server_var('HTTP_CONTENT_RANGE')) { + $files = isset($content[$this->options['param_name']]) ? + $content[$this->options['param_name']] : null; + if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) { + $this->header('Range: 0-'.( + $this->fix_integer_overflow(intval($files[0]->size)) - 1 + )); + } + } + $this->body($json); + } + return $content; + } + + protected function get_version_param() { + return isset($_GET['version']) ? basename(stripslashes($_GET['version'])) : null; + } + + protected function get_singular_param_name() { + return substr($this->options['param_name'], 0, -1); + } + + protected function get_file_name_param() { + $name = $this->get_singular_param_name(); + return isset($_REQUEST[$name]) ? basename(stripslashes($_REQUEST[$name])) : null; + } + + protected function get_file_names_params() { + $params = isset($_REQUEST[$this->options['param_name']]) ? + $_REQUEST[$this->options['param_name']] : array(); + foreach ($params as $key => $value) { + $params[$key] = basename(stripslashes($value)); + } + return $params; + } + + protected function get_file_type($file_path) { + switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) { + case 'jpeg': + case 'jpg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'gif': + return 'image/gif'; + default: + return ''; + } + } + + protected function download() { + switch ($this->options['download_via_php']) { + case 1: + $redirect_header = null; + break; + case 2: + $redirect_header = 'X-Sendfile'; + break; + case 3: + $redirect_header = 'X-Accel-Redirect'; + break; + default: + return $this->header('HTTP/1.1 403 Forbidden'); + } + $file_name = $this->get_file_name_param(); + if (!$this->is_valid_file_object($file_name)) { + return $this->header('HTTP/1.1 404 Not Found'); + } + if ($redirect_header) { + return $this->header( + $redirect_header.': '.$this->get_download_url( + $file_name, + $this->get_version_param(), + true + ) + ); + } + $file_path = $this->get_upload_path($file_name, $this->get_version_param()); + // Prevent browsers from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if (!preg_match($this->options['inline_file_types'], $file_name)) { + $this->header('Content-Type: application/octet-stream'); + $this->header('Content-Disposition: attachment; filename="'.$file_name.'"'); + } else { + $this->header('Content-Type: '.$this->get_file_type($file_path)); + $this->header('Content-Disposition: inline; filename="'.$file_name.'"'); + } + $this->header('Content-Length: '.$this->get_file_size($file_path)); + $this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path))); + $this->readfile($file_path); + } + + protected function send_content_type_header() { + $this->header('Vary: Accept'); + if (strpos($this->get_server_var('HTTP_ACCEPT'), 'application/json') !== false) { + $this->header('Content-type: application/json'); + } else { + $this->header('Content-type: text/plain'); + } + } + + protected function send_access_control_headers() { + $this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']); + $this->header('Access-Control-Allow-Credentials: ' + .($this->options['access_control_allow_credentials'] ? 'true' : 'false')); + $this->header('Access-Control-Allow-Methods: ' + .implode(', ', $this->options['access_control_allow_methods'])); + $this->header('Access-Control-Allow-Headers: ' + .implode(', ', $this->options['access_control_allow_headers'])); + } + + public function head() { + $this->header('Pragma: no-cache'); + $this->header('Cache-Control: no-store, no-cache, must-revalidate'); + $this->header('Content-Disposition: inline; filename="files.json"'); + // Prevent Internet Explorer from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if ($this->options['access_control_allow_origin']) { + $this->send_access_control_headers(); + } + $this->send_content_type_header(); + } + + public function get($print_response = true) { + if ($print_response && isset($_GET['download'])) { + return $this->download(); + } + $file_name = $this->get_file_name_param(); + if ($file_name) { + $response = array( + $this->get_singular_param_name() => $this->get_file_object($file_name) + ); + } else { + $response = array( + $this->options['param_name'] => $this->get_file_objects() + ); + } + return $this->generate_response($response, $print_response); + } + + public function post($print_response = true) { + if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') { + return $this->delete($print_response); + } + $upload = isset($_FILES[$this->options['param_name']]) ? + $_FILES[$this->options['param_name']] : null; + // Parse the Content-Disposition header, if available: + $file_name = $this->get_server_var('HTTP_CONTENT_DISPOSITION') ? + rawurldecode(preg_replace( + '/(^[^"]+")|("$)/', + '', + $this->get_server_var('HTTP_CONTENT_DISPOSITION') + )) : null; + // Parse the Content-Range header, which has the following form: + // Content-Range: bytes 0-524287/2000000 + $content_range = $this->get_server_var('HTTP_CONTENT_RANGE') ? + preg_split('/[^0-9]+/', $this->get_server_var('HTTP_CONTENT_RANGE')) : null; + $size = $content_range ? $content_range[3] : null; + $files = array(); + if ($upload && is_array($upload['tmp_name'])) { + // param_name is an array identifier like "files[]", + // $_FILES is a multi-dimensional array: + foreach ($upload['tmp_name'] as $index => $value) { + $files[] = $this->handle_file_upload( + $upload['tmp_name'][$index], + $file_name ? $file_name : $upload['name'][$index], + $size ? $size : $upload['size'][$index], + $upload['type'][$index], + $upload['error'][$index], + $index, + $content_range + ); + } + } else { + // param_name is a single object identifier like "file", + // $_FILES is a one-dimensional array: + $files[] = $this->handle_file_upload( + isset($upload['tmp_name']) ? $upload['tmp_name'] : null, + $file_name ? $file_name : (isset($upload['name']) ? + $upload['name'] : null), + $size ? $size : (isset($upload['size']) ? + $upload['size'] : $this->get_server_var('CONTENT_LENGTH')), + isset($upload['type']) ? + $upload['type'] : $this->get_server_var('CONTENT_TYPE'), + isset($upload['error']) ? $upload['error'] : null, + null, + $content_range + ); + } + return $this->generate_response( + array($this->options['param_name'] => $files), + $print_response + ); + } + + public function delete($print_response = true) { + $file_names = $this->get_file_names_params(); + if (empty($file_names)) { + $file_names = array($this->get_file_name_param()); + } + $response = array(); + foreach($file_names as $file_name) { + $file_path = $this->get_upload_path($file_name); + $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path); + if ($success) { + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + $file = $this->get_upload_path($file_name, $version); + if (is_file($file)) { + unlink($file); + } + } + } + } + $response[$file_name] = $success; + } + return $this->generate_response($response, $print_response); + } + +} diff --git a/web/upload/files/.gitignore b/web/upload/files/.gitignore new file mode 100644 index 000000000..e24a60fae --- /dev/null +++ b/web/upload/files/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!.htaccess diff --git a/web/upload/files/.htaccess b/web/upload/files/.htaccess new file mode 100644 index 000000000..56689f0bb --- /dev/null +++ b/web/upload/files/.htaccess @@ -0,0 +1,18 @@ +# The following directives force the content-type application/octet-stream +# and force browsers to display a download dialog for non-image files. +# This prevents the execution of script files in the context of the website: +ForceType application/octet-stream +Header set Content-Disposition attachment + + ForceType none + Header unset Content-Disposition + + +# The following directive prevents browsers from MIME-sniffing the content-type. +# This is an important complement to the ForceType directive above: +Header set X-Content-Type-Options nosniff + +# Uncomment the following lines to prevent unauthorized download of files: +#AuthName "Authorization required" +#AuthType Basic +#require valid-user diff --git a/web/upload/index.php b/web/upload/index.php new file mode 100644 index 000000000..3ae1295ef --- /dev/null +++ b/web/upload/index.php @@ -0,0 +1,15 @@ + + + + + + + fotorama + + + + + +
    + +
    + + diff --git a/web/view/file/index_new.php b/web/view/file/index_new.php new file mode 100644 index 000000000..ee2349cf6 --- /dev/null +++ b/web/view/file/index_new.php @@ -0,0 +1,31 @@ + + + + + + + fotorama + + + + + +
    + +
    + + diff --git a/web/view/file/index_old.php b/web/view/file/index_old.php new file mode 100644 index 000000000..6fa369710 --- /dev/null +++ b/web/view/file/index_old.php @@ -0,0 +1,86 @@ + + + + + + iviewer + + + + + + + + + +

    iviewer

    + +
    + + + + - + fit + orig + update + +
    +
    + +

    Utk}smbb~ z!ublY(AO-2_CU>AxnH>B8eh1em8j4A!a|Oy_{+^1xHU=S4XrzHyUyRqioEEke> z*A(Dsh5Mf2J48~E)+OwNPVPS| zj<$*JqC~JE$(MQpJ z-CK@u74?M%x!GRLFWiRoGx7C0qvtHvK)?Le$wYa<0@-b?u(&;+^xL~AqpPv`>s7^- zYz2+}cHea_EoCjNshbVAb*-YgYbE^fEey95rAMQdnKqn{D~XC`Rb$GR#pmgvr&c4{_#4DydfsSN4(T~^$OaLZi$EJhB7L`pU6}^x2^D%NgnhQ#7LL!h zm(qhY`6A@l#Z)p~Kw^W4FPhLG^*SROXn#;&KTC+QSiZtFN(sbWwxIPUodgOrr~62r zN$|=-$aOJ2lE8{69XL4yeq@uWZsPYh9zE16JT)HQSXn5(I8`_C>H@*Y+f6z!#cGkJ zA`L7Yi}I>ZdL~>dC%pR7ZFHxdvvy3_1G4LR>gdh={+D;4w_2CwN`6NAj39KM9>n*% zb+aihav^L5yg6n0B|7W7c(VP1E3r~tun8u2Qw z!^Ne7wG?LnOe1$pFHvRjV&j>lE@6yVo=A&T&srkUm(DPIP)hUb5l9?{YyMbmya(K< zf8jVUZ}$y0t2oyy(=@4)$~culR)+Sw*dVye+Mf;`3i{tmrI?rRz^ZjbYH**{8@kbL z2=Nm3A#~}fJW7s(vGXT2NZqLYd>9N~FL-RrvD2_bvJ{n);uO=$)!Ly3F!Ig2@)|cC zZJ-w$L)({1S?~2~9qMvzmYI zp2ktsQAq0MoPn-sKKd`dgZ?-(PBzM7O$corZ|drY%z|%BT;+qB(-(jTl59&D@{GA_ zTq3el_B9jk%=AOBPvuK6ak7#?`l_vQuUecs0RaJBvIWCV>qt|RLFwH0D%EK~!qvfZ zlQ1J#sE8*poO*=>XdW8nGz)!XZp8|4mQ%{CgACT4I2CJ1REV&IWh)Is3Pg_ZJYSv@ zTv4z*oaMR$K8YH`)LaF31rAPjO3+#$+E~`BQqDR-pqDt1bRXk>mr0i4In3s1+>tZr zj>cLPiqMWlm5%iMxF6S-Qfs^e3}lA1;CmDZ`;d-@L26-MF<> zlaY{uu(MTkp3ZlK8s?9i;p8McB<)CD@Qml^k2I^*-!&v!_CQQ{0(mg%t|T$Q;qfdp z?GaqB;_W3?$6`ygw6IRXMuAA3@b+vt;IA5%uFbyFM_;Z3ut(ukI>3v#EFXyqefpG| zeLYHU?^mDwngYtCtB%vYD-DiLdyYmBYZCCA&RdWwsk}#UJ2#%*`b8-;+<`G%7pa#- zzJNHW62Y&wK0|Px?JjzG*Kp{Fye$(ccQ(u0;b<5c<~Vx|=_A&jhUxs4yAyUKKlA6n zUA8Puvp}PIhc$-sH|*1nh2`-i8(-Ks`n$bmuq{}iz>iS#toawe+D$L^Aiox-9eZF- z3(MKR0L>m9j~u$k?=x1ujFqIqG}0M`YmyP7W}j7V*ZO+l=Gl{Jx$J;xH<-+swtN&^ z{@l&31(J9?CsiXM{s8}{PKt6zW98>VM)>7yn684u{E<;GpX&tZaYS@6dq3g;`d?J4 zkuJ~;oBp!8W5d~q`15QX`$&S*;V!d$+e%Fl>Su<7a2@9rs>+n5%taYU=NU9jD=CMQ z775e}>IxA{W>bqsjrMtaDJ&>w&FhsLe6`E2Iu9t-Dqm_m233%*5-l}2m|@B}Lb6uB z1Os2uOv|QxL1#>f@LMRm(tzD>@mnqr4_)Yv>m3XfgWB=1ZG)d(OJcU4xr83x%Nm>_ ze6AD-_s9pH5Fu5s*Ks+VF)u(A(xsyWVfHkHH&iQBloseTpQsXppouTK9CK2QZ&XG*OqvXnG;M%Rr765U=c7)WEa zD|J1ol2s9#FlCgY-cEkR`Ntd>qG*14C|G&6 z2ZKmBTu8rhU7XA%t?6W(EADP^cJ41LB!1equ6U6`6ja>73k=Sil6cQD31xQ$NB>;n z-BxqAg)zyJoYcpLCEHdowuww{V)*k7PtMEnWm_AT39fjX|2K1oYZ}=8>a)AZz3Gda zbX>j$M)plnu>H4gb7AxMAqeq13mK+Ywm_avU}TmN$90dS4?52xm$SqdoqW+`4U?mT z*sOjW3LW=e(scH^;IyPvyG=&!iWgmfYwkS)4b#(Qu>^2;Q!myB=p3*u6D0O9G3#m~;UrmN+{Ts;b?mx;LN)KAI;iH>@Ca zlS<-n-Ff@r)2gBGCI_FzO<7t27-QnKoEbq~<-D2fn}WgW9mjGdz@oak*;=6 zSt0lutvuObR;U7hsL`la6u$KgUdd(u_wY*dm)V^Rxm;4tf4@*kPpQLE>kLLdR*J>1 zBv~=;^{X}xht~#vdQ3$oy1y}G9wIUrE8qC8|2B~bDiBKlWpEuUUow@FWp3caL;}s+ z>}>?Cy4FJ@gq~otqI-rxUQ6ZH8uRDutM}|J4W$n#MY1;KeS(Kqpa;@^+m#byV?Ysn!|f?wAqj8cU_Od@V(O zlD0d641`MloaEsJ) zWM-R<7PAr@C|~1Z!u#7lYC3P4hf7WMX=Kjvf) z`SQ6hPyhC=fy{>Z=G&-yy`%oLgYI~q2EA!SVL9pgGaey8+0<%2Rw|y#y`5Nw|2Gz3 z%m(9=mch=cP}qlmHebPmR3t$VTvE9vK}xdbS_OO2VoK^jo_FW|8$YW_2*Wt%-7X0) zqD!o#`AE{JIQ)={tRG#4GcAt?%q)UK7AFXZ)K`;^#~Bo`ek15fdLB9o?=Wn7>%yLo zHWc50?npp7OlSCXMNLoT(iwK#^0VgaP*tm%ElX4BYik5}pYRCW35%E__ zDqs4&RO8IKcoxg@+&5EjB~nyMu44ZFm?{^^JdMWxSi$rbRoc6I{p;4gE0`FV;|YDiDKF@>w~U zyBv_sK)pBJ4B2V>h!>sTYg%$w)zk)S`at-uC+LN0+=U911AlIA^70woTM3L~**}ij z;N)`=Jdt<*@i7}!lY5>a%eNL_Zz`}%mW^fjSJRiGNC&H8e)$#c;YiEMs-{>o9X~uB z!YbuQ+9l26QHCF3g9UcJq+1{SRU`m0@nw+{K6E{MW|Dd z+1_Ijh$lpAn&TGgSU*?{8p2VTmN~8P?@Nx2RZ3~s7~o2Hup2%IXoq`B?Vd_gZG1{*Yy9B7ya)ypFn~#xn zYE^_~`w9Q(nh}n;J0Se-Cha9u@C@kn8Q=73Vn8{iVMK#g6K1Nsljfy*qFR)UM(no% zv5V4LB?2j(h0(%Zc%7g9cEkFclSwmxEPTboX`!-AjxKc3sGX0-;a2bc&Wt74Q1o#9 zTrn39*+4I>C)ZzCF7-i=pkEqBxAVo%uhLt=x$5*O(049#)76yG8ibuupeaj^S2mV2 zs-FVyC{<}@V3LVH?*O5ew)JUn1cE@N@cu4ytsEMfq)d|X2)GKhm;|Qj;5S}JJ{6LS2ryF!@UY-)FEgIcw)7IirOM<+>9yo~rr!7oL?4r`DE&MkKn(%s= zmy|QAlGTk%CXp{SESf|>M-6VWUS!$j% zq9&%Gg|AIhk*t0sT@xmzRH8Oz0ZS`(A>Yyii!$G*Ml60JC0mA?|CO}v(UEc?p*n@M zK1=?QDPcuYxEg1%1GQ72kndU`^luJ^0bgWV(MG#)Lx*&&4|eCax!f~Ur!V=>SMlY( zcNC8ni?(!r%^)v|iZgQKvu!r9_qj1l9YZ$+Da9)xKf(ANIm{~R7=U+{ zs6n-kEC-WVtTfpQB9#{1c&+>RcF%bWiAvlAlnStr9>#odT9>&!xy=Ah17XJ7MFH8E zT!{c)qZoFDw$(3n5I$0?#c*d7Q?du=6KPu0A<42RSn$OLfy$M z#mpIK$1|#uA?|RwWX9SY@`Vw=etZA)Bq&8aaR{fNR>_|r*sd4RrU^lbYO;y$k0O@I zkTWgj;IwvDqnpo%T6W3pD_{QlfSE(r^Pu0m($g-kRUa#EPhojsf=Vix$<~TvD*q_u zC=l4GL)tjuG1g0CU6{G(#&zCd()pO=)r5bYtW zn$Mx}*Tfj>xl_z4G_s7jMFx`DyxM~0_36?{*n?cu2+GpIgYnNU+K_rd%H{-~iYn zxt+@Kds!9N^LGCxBbC~xIiy6uAMr2MWiS+X5!vjzqEczK{k=X@u<&gKb;~Dyr>=}h zB~!$fz-PcHk%!{FOZ-mN)z8=qL_8hFImM$(vZj<4gFUCubGZM zJ@46jHu>4DEpZK=(TvL>&xNHJ!J&MuMbulz*`cyh{3Z@x2U2Viqiyzg=24?RkFc8v z*&5|OcJ(MambpFNSbwTfIw6srWnnZA_4(v7|b#8N$!P$?-=x5BIIqoX|}x1{A0 zymDXoO4Ru!6(W|IcbTL6p?Snu$*4mLqI7bUm9^oNp>*5Dzf0k3zpY2}TzPf@O}AAN zK@d;?HdOe4SnDJHS@lnB4%k`+i&(lc0?`SrJMHg!#rsJyHRk|xH0kHCoUY@^--l69 z*P=%GZHZk{=D#v)Ggd0D=g5}#4H;&BBG*4ZrLcCrq93NmF0LT!aj?8<8yMB;5!X3> zR1MgvXl|hhGKo4URFFaqC3ME|5c@pEZpo2IxYOa$`biwD-x_^qz5GL60G1-0)~zo4 z23Y-5xN}%ttwjnK9ON}kXM%v-ToIajCPUCrMCgkfw1&5E#j9WIvAJdH2NU=N!k*~- zS%oTpH1H^3>3$t2t-FG9j%PC#HIXx#f>T(S(2eO&OncDfUtQ2))l!*IOWB8+$XTVJ z@A2?AuuwdPbtwzj?J~lq%%|`~GOl-g=#>PQV2!nBFq-1aXPa|0GZ#yeuR(A8Bg2@} ztU~=(36oik>dNLvH1gz|dhcN0H-`FhB525CI^J7V{i{*WD$M`;jYkx3Ur|8qaKdp# z2Gzz2Qld;UOW_xwM2v{fL>0-DM+Wk06!cu6M&AT+`<-DEOV|GKK*)HhF{(u6Xh!9# zLt)O^uQp}|sdnS!V|J2mP&WN$aV%I{UM+^EfnqrY>WQ@$3`S;#(TO_~^D>ka0?v9k zHjBBGT)y(4=j z7PJ&|Xui;DJJ4YL8a*J`{Naihp-8udAQLBJexD8p5FOnYj(e4pbJ#j_0I^xqilg)huO>T+ptt*KNnfdM|r*_f# zJMjJR*8{3zkv$%LQfo$%$X^_ct-Wg|Pw~lZQoR~Y0GoxBOs^db#D4E5l~YKlH(7B3 z*YFX>C>_$&%ZQ%~ zN!V`wrf1hUj@pa(Ybk6*OG{;I4!qqXR*lTw*?-$x7yTy2`|A^{;Xo+{mmkn}>@{tJ zp<&>d?6pt2`AGo%Spd`l+Ay0N2J-plU?Y~xeW;LYvaoI?zA1O<_L;RA1+o|W6&Azl ztBg(+dD^f3$@ytH$)Y(pt3y}IXzfKfoSxk|)z{y+sIQr}P}hqeC7Rc>{WWcr%RxqR z)`*>)ahTKhh4<&Anf3UKKnIMpEVP<#65V`(a&-ry11Tt`KaizX-FlnH9y&E0TD4*z z$x^Y5PL-4xQGe&8d9!-sE@>*J?6Y0Lx;N$ode)pPB9uT=nReD;g1xJC3`)gXX6)hW zefU)h*D6&~T+#FI_np-Lj2a#19fYqw_>B%^ojt%23Amv8onhVGSIV2(W6c%QG#*Wf z=`k+>AJzmq<9X=$PcAST_9DyOhlP!s9-})CQ-4Qfx~vLe=n4nz2r7_o%Q)DPZ!O5x z0vPaYMGS}t2u9;9o0QkRZ;7PkRQU-dYuJX>#DR zhj!bE14B$Cu6JC2M}*Etp#Iqm-?3O~@lZI2 z+mdyysGYLUEaYY({rabB-ptAGgG0BrB*d#5MkNSSeE{8`DWK{vWX z!%^yaFGU$eTnAvgN8$Wwo)@?%1&3|vkj`G5g${{Uw}J^f{Wx47BjE)!eP zTUT6H3uw^!@+o7MozB!JKCQX<`KeiBt&Zd9qHyGwxLF19XqnvoAN3W~TavRG<*Gzg zaeZ2YN$UwkaUUf|NFA$VrbK@L8q~dM`Y;=wZEt=+f`beqwxA9G^J9agi|~`AWQN#2 zDTCY#(;3x3>QfW)S`exqh@{oZ)4PbEIp*jbO{Y(ELPl3mZsPGfIwDLcR2hMI$5a## zoX#I<2tA!-Vk$t=fAdE)bFz)145pi&dC11tZmz7-JI55I@Not-ZRvrxk4MdAucW%4 zq+cdM_!^wHyY(TAqzkUEXx4v9D-*-P`Sn8fu6R9jx}~zH@vr8U^x!h}?je^i?$&Y6 z^a5^LN07)Kg5;|<=4dy`kJqxY@k$Hga{A#|V=kelUgqg^)2d>z*&Nt7rDAk0=hlrq zwsG)ymXdG$KQ2f3S{748-P++1Fqf_KN0o-R$tNu%kx?Q*+nTv3+9>Rs0cSUiWs~`} zrD*1=93=uBx}yL{O%we^MdAVgrbu9GaeLbT2ZN?Q1pij(726+{9-k4cH~=#Z-=vT` zBF{0Aag(!Bhz~V(>1DarYT;M)J0tmUe~D>p+|;3G_O`U?Nnb6-Pcdd?-WQI5OZ8j-sN)m7vymJ*X)sHhkF5v;0f5wz8w!&xf;c1Nk7aOPV)$Fj zloUAgU26VVRg)>nj7y8v=aBzQ;C?YiHR5}rVDW_v+~f>-c&UFDi8UI}SpPHAV7t~! zl;rJp9kc$Om;bf(R49&v$>AnMK5@vfx`c*vU62xpI}E2&a_|O%8UXh6vO|CnMMweb zd9QU3uLKq}f3lDrf3!KOg_e^!@_2KbukZsKPK}*?R=AA%_oFtb6R1pkB3KSMWknui zbpL**jC~Tz7Ka^h2)Vgymb&O6ikdKsf5uL6DGlbWhI`N>RZ!i;2~ramm-0}=@u9*w zG}JB^g;|G2szG-v^coc=Xp?7{L8QPQ`=FZTl8fviCQ>)f9Wz$xRXK93U2w7SH}cCR zV$r2<<;5U@&ySd@yUUqvQ`D6Za%vw$GQCZV+%8rQ%kjs2&x=12bbV`Tv0wJT;#J-$ z&)e2a{JTh0_T9f{?F+R1g9V$cP1~iHnz1l0_DXEp9iumex-+d%f8YUbJI4EnSqYst zkm2Te%-Dl1u;r6GI}}^+&+rS6Ap`4!tA~eXl6hE~B`dznb=x7sY$>@Ilk?7J6x%gL zhdmF~;Ok1UVD!7$+rLZL7 z_@>Q#s+$UlN&7uIA^?AmM4JC&`EsBvmAr&Jm2dX+PpkNMCC39r6#<-&0^Ok^kVtt` zoJ})!g!1TRJyQBM<$yu(8;^<)1=wk52rQAtHFoe@tWX>yZx+$$s07fUs`MoIBql*5 zE$s@8URd;)oo~ z6VG}M*)#%>CHy4h>?^pruD?7J!iyk3G9nj5S#>ybiJYYa*ENO zrFOLRNYbI?BP&H2?fqdOhnNzPa08$X&lrrH?sQ?ifNqBN(4Z%`|Dn=e|D%HlqI!+9WQ`JJLB0R?r%U-`z$|vf{oVonc-v zJ&4QoFp~hk!YU!Le2M@vFXkp0$D`Ptkid_PUmk)k1gn^tg4sOc#LVvS_`%LgyUVUi3f=o90+U zLB-L8LAP6*g$jv3phR zQI6&Dp|d&lUIs*vmux)zqWXf~Sq(ZS`x!`is#!(KZp+}ak3>Y((ny~lmuT54jwI1& z1))tF{VjZK!svb9tGL^GJD`T1^z7z(TntyJnGC*UeP-UEib`(Fh$|;>jESbH+t1R9GFD}6TC|04d5LB$vtgVnpauUox;3N6b9Sb>c zURxb${U6q{!)W{{)}XS7~$>S&lFzBLb-*6jwRJr zOPIWjtPaoOSl?X@e+wSwJ z+>%W>Iyy_{mvdr=VC)`18+-_8&=OLxl|~ja!{GzcNN;j1OHIyzMC})rD$( zcb=BM@C`tp0M^@9HX2P;kbh`>rbw#Nfb79IZCUOJt@{%wgmq!Ofp{4yE_sBMRfmAJ zT|*rcg3(sjtlP}$G~m5-7!*v&!jcg*+%kq6S8f!#-($n9{}pHYW+`@!9$awINDoPu z#t&0Lg;+$*In3f$?rQdN)N`~M$9ECEZNtmF^XgJgmj$3nsXZh3TZj0S8pFI{TkxAu zP{T+_!lbb4+M6@kCY)NS}D`AOwHhk;<>= zb5=I_txrPwkoe3f=SP5a$*ioo0yxtzsQ@Jy7Hi*aFhkq9w`YQeP8KJw?enS1$|`^f zqtC38rJH$&7QIU?KLb-KVG1`Zx%KNb$stq=d3{*Qf6OnY#M%zo0hQ2-N(EVb>lFdG z^cn4TkKnvZ57@bGLcN0}vz(Q#ii&d3oy-6e)v3ztJfIIghGF{$%)_+5T`m<}>9&)8 zEr?Ku$}KH@4@ubxz!Jic*T4#=TUWF8Q2FPS4<@%5GefT zO@fJ!WvP_D3zZ07Qq=RL|11jGV0l%gBs=^sQqIw+a60ZRDwWw>MtI)E{D&(Y2{FBmdBm z5sc_#e@R5CXZxVXgmKJ?Zy$>U! zkC=z5taGwx%_G0VkfD5aq7ej_d{>(MQ4#cb)@FD^hLbY=BS+#fl1-@!f}I|&BcyS9 z(!tB&A`t@$0`JFwrzxcrSF#z^pn32hmqYLVlJ1O!JAYY)Jr~ zDN0Zt_u~hLFQ8T0ofKL%c+ZjA(hkL2&*k1t^!MRHzqb{m!Hd_u1VWUq@3p7*JT zhVyQZBd6^X?@#e?Z^qprJvl?GA)j@=-6RIE@8Hg~up^zCBPOpF`;Vr?wzG0g@AU!4 ztkOzwns#%=2P`Y+ge%^QAK-ocy@%^Sa%8PrWXcpL7F&X`2k3vfr4k21HVKjaz_chW zBS{js1+o{we0ZBfnBc@nTQ=^tkn@D#Y3A5)NB<;AvPq2p8zjQ$J#n0*U(pMGEGrMV zk-YVG&ag#ddAQ=<6WJX)Zr%MSI7t9a{_eSTXx1u#Fr_>#Jm1nw3LhUWwBN31s+9Ba z&+5ZqV;1t&Bmp}@}-8rJkDBZBB`FX+?(yo=7_y(_iSq z;RtPYf}rf6m^pCt6?xDlSGI&Z93?`T28ZtRR;k<`O4#C`s)6w)Vb>*0%txo7wc8dMv>v?4le+{ z>D&8;<^*91?Z-1bql^9U_jO9SNT$={N$K30nwSM`BjtQcvN)a=&hLdlqC321uOuX><#{+5_5=d*?aH{U{ z*R7>^tWELT4(Xq{x{J2^*S0;lY1DLF+=GvEJPuQwvDf>ea>he#r!7xg!(#AGb=R!c zNg1u7zY)E2`Mvwij0tC+BEWNKi!9zZv0Fe#{ghOg@j?L0d1A;gi3_G z#I509e>iLRksoaZqs!g6+_q$;nV|RJ3!o2KsyBB&&&%qzW7hP5IxMW%#fi|J--KHb z!pOW`K_e_PUa?p=)f+zNeE7Zzc&+v+jI_ZBdU7x#kG5?sZe56#5)~n>n+pwJ~(r7IiFgQT0Poendlh?=0K(+t{ zg6ZC_krkoW{!prSTu>7d8Ln2nx8@*@)#LlFQ>eel`egEBYl-+P6ALdzR|dG`m*x+3 z;3T+QlXzqlsE_HkwdL_yIknUjJkYr&<)#u_PPqU7xcUEgC_ST-@PAVJnb<4@dcINw zL|3K_a*4|HB0q24U;3vAuRG*iel+)~pB5$bQ7Ia2TKtV|E5)EvhHA~VJi)4B2>p2M zWKI&P8m)?TvBl{Mo&Qr67{)mew!)u2 zX?FqTkE$_OXOP_h)D6Jz!V}<6I|NR=Tl336IW9YN2yl@@tV58&0zpXdE z{1ESP!fZLP3m{0-9@uCt7s_k8PWY|8EyfWZdS8gY)DR;tH1!*te~+jOK0G@O71`v% zud()x!Bw}Uof{mKh>VUlaB{**NJwyYjhB;=*?hXcd;{Hzii!>y`Q1J6H!t4*=%>!@ zG1w}jKpRnd!=)d;1T)An>B|%3?IEfvQjAwUCnL;8s`Kaoc=##5F<(iZydx|@3;~}| z@p6-S`?f2UHJ^iDBf14t*AUdr+c2iNwpL+-i;0fj;`qIquiAQ0%4rFNO2?=yzut50DYH<)o1HY;oG8js<?7~x@x zt)r{a`0Hg$s3=l!Sdh-9A@Mo;Gn`tm%;!zcjUp1PG{#zJ9!GC9%<}Q-Xut7%C&G4f z|7>Mo_W?Gmt;zryJ`hs(k)+y0!BHkHJA2HX5$zpmHn`CxIxM7{YrK~#Fm!(K0`nbg z?;_WSax7{!nZmL-@Eegh7`~I403-GnQMOs-Y4MFgoUmVA*07`C*CnY^^-$v>hsuS#Y4+Sf-CNKK^O z_BBOm7TF_>@%;1o-?XSf^MtPl+F_gxxJNP^tC<%qd3jLHD_(S2mo|rRM5{v7ZWr zgKCEm-+C3Cth~(1ueIPIkE|-or|l zXQw3)PM@dh2%(L?e4~~r0Ti=X!)1>s3i;wG&2e_xdg@Wb`(@>u4)D+`pE>!@iJtMJ zwcy4f`QrjDqoC2Mu&D%_KmNSyH04?zuQ$Klg3zKa#*3F@S$GIAdk z;l86eE7>vd?p=K=k;RUj723c$Xpm4Pvn2lOxrEA(`D~}juNpc{9yG}cPt?*jY~$+n zu0<(I9NumeV83nd@otO@hWaJ)Mci# zXi}=XPcjbqSku>2UCZiC8M#HRX6|Rx(-jS`CRum%Qa`M)G)2@^=7|r51kIjB%KoOh zKq(fs4>oxK3gS^T38r?90cZk#aQ`Cu(amog8XAH}vfZcom`@8E8uIy8Hvv5`a5u+C z^jB1`Yo5tI>pHxcwJn`7VM$*px)Ue_&-KTGh$>bY{%? zyqe2~*?1feQ5}8#R(#2!ihk7=+fnu>@4Z=~Zgs+U6+^=K&xNz*YP)Bl=WnJlYJCWX zJr_Xzij2*jnC5Z(H2nMJwbvFl(~{BQC$64;R?oS1oZKQdU>ADlVb2R5f#bksG%73j z5X^P16>;aHAG5pnb0LiJ!IB4K$>W05FC>cRLL+a|)HZ)+_t8D8k7@|aFPJ(v5Ngsj z?THEehKkG{(c#yZ$uh)1C4E7B;|$_`XF!DUp8e2jXQj0;Y({r6tbwt#VS`f8(d)$s z`{qfT6R}X4R}o_S<@3{KUj%s-p60ddBtMyrUY!$YQJxy;=tWt63g*O!0AUV&)OxDj zOJgj|JmQPRJqX>k1d04pbzHw*Ty6*oN_pC!Mt}Nbf@0%7rTPxXE4hu_ydpiOlE=AM z{Nen8?@Wt|sDKP#7CCU5;C->ww0Y}xT6j@d62(Qqd&4*=-|j#2tTSDoc4!L zm0srci7>tSt1h0E(n;4DI?tT<=XsBRcd!<_ES4BOvoTh7d^7EB!jAmOhIXfZXNv&d z?L!jo&4cCc9q5f}pWnzA-_B;dO^CApDpD3zo7Knj9ZkS%gzw(ExOG+GxSTw^IjoW% zu$+Wo=)4afO&R#5WO}Pdk?xC}=QhB?d8n&$#(WGl$~@c`dBJ@v z2*Y1+ARao$NHSL3|MjZ)&?tPz?_G42qVrorG@MZ@q9XqyF9-w&B^-oDuR_i7U%x#u zwWS1+D=%zUQeqNb#q#K1gSsfwj?mF5A3tgCcx+XCQN~%W!8?ty__{u(dEy+z3CQ+r z=4g7qT1|hmU%k>O*SjWOD&|6e6q-cgQBU877|}?UXu%74Pv&IyBATjh@Y3#;nar+$3ND=$PbMcO8?T_ zaUq*!2s~kk?MA4QoTictdo*)lGadHsfgq{^dN;~(NKn7 zTW#y&UTwmd1kIBx>P8U{h)|1S+l#TVIb*W-yN#6r(@`So$M7N!0*U?rx*`pt9p(Q7 z7E=J%HPeZVOVC0!C+3YVOhYne)Bxd zpJi8$vV~bVYq(p#tVy6nX_fKitov+Zvocir#joDV?akNcBRqP`K1>@jdJbZ1!q421 z?K*^Sf?kYdpYzH7<4~M<`{{Tq2YS;81aK7F6W8x%8MzC+9X0*St7bslO8=U^n~%i< zYsD-hUK(M^qVNjNvZ#sDxq_h@y+6kzduimZTc-f+g;;3F5|~={8}913`sOjV9Ss_^ zc#yf+$KdjCMi28<(!t=i!LNY3N3JXCuk3{VHlQJ*ZOh?2H)Iv#`K9dm%tP5HlrPM2Q_6+`xi$$I}E}%mKHGBxw8@($4s=ayBPht}F z)qf7e2^>8ZmS>pF9BRx{%Z%P#^*H|HvX+uXf7yCY+uHngzq{F4yJ!(mnIwzX648G& z+f{(lp(rb7j>Oyt2@=Tx;-45yU<`W!oHvXOt#Z`_-iou9(J6mJ3|bX4Xh$vk{~8q9 zaC{Hz{ARNSWH&*;NnuKppzn}kP^KVSX6PM=!S3k2>c}mI59a)0K0V})vpAqDF}}!g zgH)-ostfwtv85xP1ERMiZ8~Rm!bfKqB_eC-7D@3YoNhqnM&b`?!ifi8(1`|-J9lSM zPu-tzx-s9L->FULO4G?VHS#%I*+`q@{MRn*)tk)UG}@<2YcAR4DPvge84jFBbAw>^ z*c0>2V~LqKhRST>AOsSzIbI%`I}B>SnR0KvE9Il6WTGOw+sB009Z#_gGK$~%V0NnM z$;6=X%L$767@?e3)xG(ffPDmBGP8ed?$`Nz+8-Z($l5ADRiAqR;kZMe zH>`G7NOX}$DR!KTTJYFOFl?af%J4-AJr*7lmsP^s7@_N9x}M3nn5TiVLRA#cZ-FmE zg>ZWhW)`%kfXQQi*p*BdH;%mZ3!ZI|{%k!rlw3fgS#mIprlq)_ZT-F0teK!BxyRxB zr}zw-qH{YQq*()e2Zj2B(hub_pEEKpskMq>O8duCS>aMNwK zdlv&9c4xm3W2px*t-~Df+o+b}C)6h|St&9ir_O^E8Xlq3bCE~d8t6hWm7Ht}050_X zJ9h^a)em(dcU4B(RFOuqK(l(^v=E6=0j75KJW5GATKQ@AC zX!>xOZdzJ`!~3`p+X4OSafb2+EAgD~U_hBhrH*u>L@E5q&vSN*YHT03L^xL&ChW+m z@@Q|E$5@nQ>d=~rB!Y`tZ~s-x8?0P>j#l7uV?T2LRLH{#^7k>i2X!P#k1qb7I%L(_ zA)*J7^qJ@8jHCjwp&xGZYLnQc|H`kdF@4$m?7kSw3CM89#NO^N^shkm?=x!@Nr_np zYoBb-q2H{@=5#FSjhF7NDyp0v*(Cn_P9W$ zR)AUcpOi2YK9RSmMXg1xD9g8di$jOV;6u(q>O>I?m0=Lj#q_5F53#&OB`iWY7I8>cGTz0v{8nR6D1OTZPY+6oYy|7_n$n>VZh8S$!u zsO32$gC`A@dW|q}nUNJP!zUmVN!$oV0PRt(Omb1FzUOT*y?ff4p4_Zf&dYK*T$W(L;;7{wL*YpG60t5)cN1upkfl3Rg zAFaJoZx{wgJWO*&Gsd)#i4RJq%s*xwH2+Sw3H*{*k_7aQiXZ_Jk?c{CPendGS&jUU zf7_pqC_Nf$vaNg0ElcVVTHvb+W0gxeKblS$a%H$II#m6wzv^C6FE~)x{hbAfQzy4T z&Rqx=jui912rSAYMR?R9j`ljzs{hAcN6gs&ZsLzgI#x6E^rpoZ5E3sYF0M%Vz z#Kar>2Gxf!fig=WsDZ}WS(~kWU*m}iEIv4*xF4)pV3-jWVFb0xL2GcTr^eX536xyZ zGm-Ju__NQqd3rHRS)P~mvgvXwH@u7|77nfT@w?WJ*s;r_9x6%s;KDR#-Va^4+4z*v z=Oul_gP_Km)_0A>@_kNiMoX7`*ah$x#XZL|8vm#?b<_VD^Hl={QL5l@z^Ra3Kr%}q zxqU!Q$;+!U;^E{>&#O@tVJ${usUUo*N9_r(dgz$k;aZ6#veu}<>)TfQ;U4>*uiOXb z&zg@)wgP^JjVA^MuIhc)FVJ*P{ymXbJo_Ob zp@q@#`rFvpi^dbI@igO~xdNT+vl$Zw=dSmy%*#rhBm}wNicw5;7N-1?b|UJ`Kli0Z zAEt0iTs)YZpTLe*>opyig5|yE-FZ*h6U-h0_pq_-Lk$X1HGnE1iS&zQE>^44iGh~v zU%zI+DaMwRR__5FlCAMWH9~PA^s# z7U!Ke#jy(y(-lCw=-EnvlU%PoCd?oH(F)sqdMXJ1n`ktnU&s1-5ysg#KlM1j-t*Zg zyzNzekekM|+PeR6bY!>zi@f}T<8akR{)|mz?2W_%_Wp2u_C#M$Zrhs>7jd`EyrypU zj)%vdN1rIKWEynXwKZ9H81l$WY?vuScW5D^Pvgc$Qi zB%;57u|EoZDx}Nl5nW)C*VSlxd!=;lD3jff$M&=uc{B)83=nj3}tEU4Nutg zgG!HmXFuP|AE!9!F;alcQLN+@L)S~K?5Wn6KJveB)Y2C zlU6;Z3W5=Pdk{!iAu90~YrxfRu|)Ap?Q6Xx&pP2=Z?;m#`vIRdbApIQGc%_k)<~Gq zc><|?fk*=>Ev!|B2k}Eb)tK>MelS8h#`5U(CuktnPOu<;kU2n1GUrE3=`jcko8E*n zoB~33h9Aj;fxJ8!7*k5G54n<~7R*Fm@z2j)R+`hsk}KJ{^8GF=BMFWR2dfb#YxphM z%`z)Q!{$(sc@=ZY%v>KLFr3Yz@Z`%dhDk06_{ zioE^1=AIkl9&(=NiEfUKa2!qF@ojhb@?coul+ks_kXdcEL7(tx3r}n|oUa+lR)*mx zxH=kKyL6h5B}6Go@Qkr_e+zfC61(hPY4AhEemgyEaaemv6 zaSbK7(1pZJcAcNDuANvhS^bVu?NXcgw^)|POX0lhBP8nm2$#zRF~{yo1>yxRGKR~e z#^FjMSVkIu9ljXD3%&2{qbH=DQejBc;9MnRi9oTTB~cQ85>4S4z9Y zcx0WseGOE+>eHh5#9n7>5PK7+CCR2I$yRksiVlC1SpE>)!5|hYD*8q9`d4|*&M3*# zXHB|({o;vFztJt0UD#c3HyCR_BX;|CmYsOEsc_~C>5-__eeVgBuPoBlSHe+I2b^+Z zd_e9s!sSF*JENFbw62?_!YfnFarvZDaQy+US3j;*yrlK7Ex^6UStw~`=|ou=2!t%$ zm$p|^Rm~|q6N8*~E{m<#jcQ1~9VX>+M>Ns+V2!^mqMbi(%J4Rjm!(U+PLesvo9iei zbHbcfBaFYWA6yE!V(koBQ1nx+yXW$LXLQ1cOV#K5j3V-Xwp$W|N|_gRF4G>vAi?((jl&TzlOaR~CnOEHSL2*F-T=9#^#`%p5-1xv3F)LP~J{rye6tIIySl-qpO?gpOpF{V`fsdxKQUz)L{ zcfCcc<|D^)+pKY?OQJuyEaJ*#KBP1$}#T5h2tf6zTY(fw>hL_{th zW}&mY`^&+B&-}`$yZOmPqv^>sf4@uK>z(ns^{z4;>h_&3Qf>=n>=ir$iyOvvtIOk` z`*RL{6RI<%Fkw`3kWc<*0&%zkODo1O1+p%vj*Tj@H;C1(yeD6YG>&+hp9!igDrZz! zB&^Qorm3o_+1lCVc)oe(N$`_#=Fx9#Xe`PVO+&MHf~}|9EL|rC`cNaIM$`1{ke3>D zhSx8k2$(zJTtHQn&rR|)BInQ8d;xt^C)e1OO)>w22hIV3DtY+$pR+;NZ`Lc}Wa}5?M_UBNT5-GQ-z?da41?Ti25Gwxv zzWkOE0 zqv&VXNFTVfW?uwfq8JSm!Xsf(Vu=C>?Wklbh!de5#t*b9QL@Uo|Fz6z{py5EYhY`k z?lH*U_VN9n=kWH({C#im$BU_*c!R4JyFhazUey5x_v+TbQSrw4jJ)G^b!-=9y+{yX z*WkYZ^Yu0kIzF$=b_MhUiMPIBjEs}|J(`3s?t!*kNo86aSrImiYqzc z#7toFW@k%zFfo}8s-Vo1u53zN&%ki4cJC?YAsbg7j-yR(yq7!RNJEBxFj(zYlBX-p zQ<9|1={y!&s+Vf}R=a?v4*W&+37m%5U+x9DQ4&h^tU^Lk??}GDu=Fa!Y5nih)_N*C z(n;$w5Q6I;`|NK;Cp3LT$?E5&mEB(>Cb($WnEs9jM|ry)o_+RKJE1_fH2+NhybAyr z17bNU^~F!iGWCeM*PF0Qv5iMx2-#PrmU8hAETX;!9F|vrQM#p>nS&xb%Euv=jcr&8fxfBh+s(au3W@bX{Hex~<}Fc%D%9dOp}z4L)_lQhalyHl|cvBX%Je)%?0Ms4s8W=iwR)O?*~gSCcO6Y?-n47w<`6x(G;hGxWn7r~d+ zbw>d1+#h`QPlp3I>e?S9Hb`15b9Zd(znwl+bPEExa8F78o{rqXDx!*IbVhd5u5Ih1 z6tY!9xTXpPn@`GK|l(EbIm_ z5#S=_YcmhrrdtEaXykRxr-{`UxQ5L-TwIU6yz5u5t0*RySYR}U*&o|4eMliy`%Ibd zj}0l(P`;tzogjBIXiit{vWb<0y1DrmzBn9yrfbfDN8DaZUq4RJgyZoad>4jzC@zI2 zHu`;jnh*0?)K1wc^7L}gE-BFmDf&LPOcgkn!BvQc$Xix(iB_kc#VJR91u)yB51*kZ zo{^1vF;xKPR|N2iz0UCV8X>fiM~Q)f2z`u}woFLBKb{BL0`NO5EDXzyi4pbl^2Dk{ zsV8mes_F2|l~nKht*vU>KoDZ8bu`fN?OJt;lyMk}8{o{HgS2}x z1-H?P6{0(Pm51t4>+}Aj3_vsB@*FUgUmK7~JaH~;ik&c3Vy^D)EKqTrK^~=;<ko35xCICnC5i=$9pLCqYC;L3vxH5bMLs&LB|c-?A#1xWCrm7Ob4Dle0A+w1L8Hm zQe9mgf0d%e^g!sUae)B&9dONsPJGU5NWQP;#A9RaX1U!S0d&?b*_8FLA;KD-LJ0-2 zaQ)9tFz_y#3M`>eD88$719aTmy$R~>1UPP9(nTcn42k4(Uq3f|Zg0CLwt=*|j`cT3 zf6U+-jvp8;gynFURK}K&HfE`SMU!emt$dr53~xz`O25YII$hVz!pe@8l@Py!619@; z>6!ehjLG(vt)B4GoiH?fZfVD5nO&dyrKZMZr!&GgGn)4hy))DteVBfEe-=u2=3_Lm zRe*IrkvPz_YFs2R1=n{p*@pS~?pb+~_Eu2sm7WLgJ8ML_?m>N7Jq!$v>@AnXup&?0 zfZTm!32f`^@2T@@YHH1E(m=N!Hbf`5RA)bgIbUakm&wWyP zzMDd3Ypgo=pqhLCcU+_E?`NsgKhg&4iyw;;RNT}}q)1hmp+1>?Akc)QeSRh2<-Eiy zn3wA{jUKESiMhmlC95W{*lV$1WZl{Z83?yFcRh*tCWIENPYy6PqrO`b69d9*2=Gp%a@yV@ zz6`qp(>m1uFU~-3qS&T8J$*>?bL6VYUj3qP2;!OceTtOuvyhI7JmobLUP4aA4XCa6 z>WiTgB-(eA4;)`>81~@G*h1;aV-$Xk&~pG8-TfO}3j84*{xtuON&CJ;2~;u1X7|gD z#s0Omdbz{)5(Z$z{I+udh%^b^vGRWPNn*bbJESCzfb>b4c}$u6hWNCdrP%iLwh)?3 zS&ezF+V%KoTap8?X=W$>MLhhsWikr=6k|q)!uzkClv=)?0pQL@s_HB91Ntn4Y9ZB$ zWJma!yqQ^8*d52e@uMbXzW+f+vEz)s_wA}TMk5_xhA&$iEqY+@13)YBgpDQ(p<*cI zKJrDLbG#x(wDyKf*QULU*KE;_h|rdUcc)YCj<(QT4MyTa4M3d6=fdURFOQ&9(-k|d zd))cs-z|5IAHi3v1=lC7>Y5LE1oClPOyY!Wf8shD|eyhXLEO4!9jcWZGKXx-qb(?8F8R>Wm!;#QjMt&% zYWu%?bSV*TJJ#MK^^IPZ)$Nva5LVus8l&s|9}cF|Q+#A(+iAC~y-#*Dd*KZ^0jYs_q{r2_7 zLQg=rkPVyOwT*A7pGOiJY17QYCJ*l2-n;;22M*Dhf$;&dC*DBB2}bu7DT(&yfHDn6 zRreJnv+DMRvL*IgMO38It6Ed$Tbtb1fw-1)it- zYuQm>2@!Gz4ESK$FOIX32adCy;Nx_NV@dSY*E1{SAr6`y_=`-hMSU$f`LU;Oebp$I z`Qug)xZZN`2>{y2X5coatV`I44>ELB&-J&Km6da+s_SSp2L(mr>1GmVSAKTBHy407ieXCo?WRw>bu`=WlQ5*S4#hq4YJL1hFEkCER!FhGr zPja$*-SfnD>GgE_PGf;#fp0@OyFj<<>Q7JrmE1N@3|#hj(CH*p;ZFw7s5a{$P z3BZ{THiDEAYJb z4j#T2liy*4WhJt~D~uwlXY;RqPaR7av+((3VzS48g+Z+2^7P!6SlHQ>x#@9&aqTnN zNc2g9D^&7@daMO>so{JKtL*cHiXyK4z5*Oji@HR^Tlz`8OE{kv}~m(Z%4;? zcDFZC@#@1Pl;KRTrO@DXU464f(=;4L0+6ByFx-?gNp*B&#F)nazH5CkJ-!8LFo;d0 z*KcgIeKA3&)aAF=gA?IwE}t+AvYjfmtI^Y*Aaezt%cY@C${K9mh0B0|m@i!;vhJ3u z!YRHt9(%y_ldxa%9E{rmBYXW4O*1e@V`F8ET+9{7i%8j&>Z#k^VsS(0Z!;s6uj=Le zR+8n1iK4YiWRnWo6y4yd^xacx8^DguY0d~eSr%JPc}pb5>;KV}Pe{eU)#n-1<~k*s#I!2z38^wfGGXu-3VPigfR z#nR|raO(Jz+sn_}(j?xP=l1v%23t%h!zfJOpm$;e0M2ZQ!3}^jq~?DBeHuS=6XB+7 zR%~CvvY-%Opg!kUeRz4je_u`$&{!NxhYF-Jpi(e=IVX&wzVTRL5HT(qbNfM!MSg4i z%C2m^HN&(-qc-DDEmPaWwIJ%A0^+U=n>o}HLfF~qq}%Y(-x8CM&<|U-g>qqH3K4+5 zLb&Wv++M5e4)w9Yui!&VW54C7tIK==G#2jk5}}o}t+Zn6h<*edKebvz*81(}NWNF_ z-QCP_iN7uZ)e*q!o0>`-rkWfOy)CAGM;@~JGobao`afE`#J7wc5=QidGY=e^jd5yM z3`MHmo!4v@z!^{dI!2MpLtIcjp_3hlFC{ZY|TESkrmZVm(pLlx=)lF@r{?;6~(GUOdHBg-Q4s( z&TPBYpIS_UUyg9RnPRm-31HhN9lqv*o1+bQ!8q4Dj=SO*(R$8*J(_d9>73-TzQ2LM zAt3&bhVqUE`V24V4eFKY{C0%f8zm%@z(218Cg6-=3)5NU;ot6DYhQb25UY%!vg5%3 zrxi@ET1AkyF1L`RlYb5t;HIFBu70gLrOd?L7JZ%H(qWU%2}X5Wmcb8|w60w=r#<-+ z`ypQ$Ou+!E2&jpwq_TkH6iX5DB5x2$?uSsEK#0UEpc-$oycBa!y8 z3iZVXEawRkF1N`vS=_&ig>8i(S$MQztmg@qMvg}?=mez5;E#jxw}_1XHxZ%Yuu+4j zePAXm+E%+>J7?XzRr~7Y&YjddF(y-6EmN_fLfkfqX4YRdVZPU2eHTj<`MM^G|LQk3m2}a*y^$2~Px3A7|Lj8i2&`ecStu zJA3ljD|3l9c!o^7)bA-FzinUef_@xOBZ-H literal 0 HcmV?d00001 diff --git a/web/images/stats.png b/web/images/stats.png deleted file mode 100644 index c464fe6e4b68ba4d73cb5d309a505bdfbedebe76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP*5S+ zBgmJ5p-Pp3p`n?9;R}#%xyZnf8_&S-B8P#&2B=XwqWL*{1yHSlr;B4q#jT{0va&P> zrr8U(==(HuHZmj}RNg*QLwLplE%V304i{KXi2&6y{Qu9)@HL3}%Zp>1?t%E8u6{1- HoD!M~|UYM3lLE=f_P43W<5TIEHXsPfkfl kSdn;uX@*1rLlw|?uS*Oar&H>W0aY+~y85}Sb4q9e05Lr#mH+?% diff --git a/web/images/suspend.png b/web/images/suspend.png deleted file mode 100644 index 7f895f94f977647ccae0c4c4983aa42257430d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2861 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 diff --git a/web/images/ui-bg_flat_75_ffffff_40x100.png b/web/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8 zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI BH@yG= diff --git a/web/images/ui-bg_glass_65_ffffff_1x400.png b/web/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 42ccba269b6e91bef12ad0fa18be651b5ef0ee68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& diff --git a/web/images/ui-bg_glass_75_dadada_1x400.png b/web/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 5a46b47cb16631068aee9e0bd61269fc4e95e5cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 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 diff --git a/web/images/undo.png b/web/images/undo.png deleted file mode 100644 index 316d412c75ad9de2908d39ea495bb74aa7afa194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfNQ zDGD_uFt9%4H@vap4#O<7UKb_vM_MjQ>FVdQ&MBb@0FgmT0ssI2 diff --git a/web/images/update.png b/web/images/update.png deleted file mode 100644 index 9cf6bfa619617144de1e2cefe1ee0f32b7b7d26b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfl=Gk`+Ho-U3d5|>NQ zDGD_uh`2uF|C6q=gJCvX^I6>s2131WTHXqjs)x-sQxcqg@OVap@#klEcNQNyyWudm z`kcTYpIoM2c+e&FeFszZp5Pm%Rd@bWIQ$FGIXhwI^0`j?6utyU99=(QgJY*NkG(->}*a6JepSWZWGXY22WQ%mvv4FO#qL~SKI&q diff --git a/web/images/vesta_logo.png b/web/images/vesta_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4793bb8f090dff1932a10eaf06dc45fe822476 GIT binary patch literal 5162 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 Y0b{S}{M8-!_W%F@07*qoM6N<$g7M3}f&c&j literal 0 HcmV?d00001 diff --git a/web/index.php b/web/index.php index b0d34a3f8..35c889c9f 100644 --- a/web/index.php +++ b/web/index.php @@ -1,7 +1,7 @@ div.l-separator:nth-of-type(2)'); + var sep_2 = $('div.l-content > div.l-separator:nth-of-type(4)'); + var nav_main = $('.l-stat'); + var nav_a = $('.l-stat .l-stat__col a'); + var nav_context = $('.l-sort'); + + var st = $(window).scrollTop(); + + if (st <= 112) { + sep_1.css({'margin-top': 214 - st + 'px'}); + sep_2.css({'margin-top': 259 - st + 'px'}); + nav_a.css({'height': 111 - st + 'px'}); + nav_a.css({'min-height': 111 - st + 'px'}); + nav_context.css({'margin-top': 215 - st + 'px'}); + sep_2.css({'box-shadow':'none'}); + } + + if(st > 112){ + sep_1.css({'margin-top': '100px'}); + sep_2.css({'margin-top': '145px'}); + nav_a.css({'height': '0'}); + nav_a.css({'min-height': '0'}); + nav_context.css({'margin-top': '101px'}); + nav_a.find('ul').css({'visibility': 'hidden'}); + nav_main.css({'padding-top': '27px'}); + sep_2.css({'box-shadow':'0 2px 5px 0 rgba(0, 0, 0, 0.6)'}); + } + + if(st == 0){ + nav_a.css({'min-height': '111px'}); + nav_a.css({'height': '111px'}); + } + + if(st < 109 ){ + nav_a.find('ul').css({'visibility': 'visible'}); + nav_main.css({'padding-top': 30 + 'px'}); + } + + if (st <= 112 && st > 110 ) { + nav_main.css({'padding-top': 30 - st + 109 + 'px'}); + } + + lastScrollTop = st; +} diff --git a/web/js/cheef-editor/.gitignore b/web/js/cheef-editor/.gitignore new file mode 100644 index 000000000..723ef36f4 --- /dev/null +++ b/web/js/cheef-editor/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/web/js/cheef-editor/README.md b/web/js/cheef-editor/README.md new file mode 100644 index 000000000..1ecb0d023 --- /dev/null +++ b/web/js/cheef-editor/README.md @@ -0,0 +1,22 @@ +jQuery-ace +========== + +Original repo: https://github.com/cheef/jquery-ace + +jQuery plugin for ACE Code Editor, http://ace.ajax.org. It embeds ACE Code Editor to any choosen ``div`` or ``textarea``. + +## How to install + +See all documentation and examples here http://cheef.github.com/jquery-ace + +## How to contribute + +1. Fork it +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create new Pull Request + +## Author + +Ivan Garmatenko **cheef.che at gmail.com** \ No newline at end of file diff --git a/web/js/cheef-editor/ace/ace.js b/web/js/cheef-editor/ace/ace.js new file mode 100644 index 000000000..0611450db --- /dev/null +++ b/web/js/cheef-editor/ace/ace.js @@ -0,0 +1,11 @@ +(function(){function o(e){var i=function(e,t){return r("",e,t)},s=t;e&&(t[e]||(t[e]={}),s=t[e]);if(!s.define||!s.define.packaged)n.original=s.define,s.define=n,s.define.packaged=!0;if(!s.require||!s.require.packaged)r.original=s.require,s.require=i,s.require.packaged=!0}var e="ace",t=function(){return this}();if(!e&&typeof requirejs!="undefined")return;var n=function(e,t,r){if(typeof e!="string"){n.original?n.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=t),n.modules||(n.modules={}),n.modules[e]=r},r=function(e,t,n){if(Object.prototype.toString.call(t)==="[object Array]"){var i=[];for(var o=0,u=t.length;o1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;et.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function m(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError;var r=o.call(arguments,1),i=function(){if(this instanceof i){var e=function(){};e.prototype=n.prototype;var s=new e,u=n.apply(s,r.concat(o.call(arguments)));return u!==null&&Object(u)===u?u:s}return n.apply(t,r.concat(o.call(arguments)))};return i});var r=Function.prototype.call,i=Array.prototype,s=Object.prototype,o=i.slice,u=r.bind(s.toString),a=r.bind(s.hasOwnProperty),f,l,c,h,p;if(p=a(s,"__defineGetter__"))f=r.bind(s.__defineGetter__),l=r.bind(s.__defineSetter__),c=r.bind(s.__lookupGetter__),h=r.bind(s.__lookupSetter__);Array.isArray||(Array.isArray=function(t){return u(t)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=D(this),r=arguments[1],i=0,s=n.length>>>0;if(u(t)!="[object Function]")throw new TypeError;while(i>>0,i=Array(r),s=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var o=0;o>>0,i=[],s=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var o=0;o>>0,i=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var s=0;s>>0,i=arguments[1];if(u(t)!="[object Function]")throw new TypeError;for(var s=0;s>>0;if(u(t)!="[object Function]")throw new TypeError;if(!r&&arguments.length==1)throw new TypeError;var i=0,s;if(arguments.length>=2)s=arguments[1];else do{if(i in n){s=n[i++];break}if(++i>=r)throw new TypeError}while(!0);for(;i>>0;if(u(t)!="[object Function]")throw new TypeError;if(!r&&arguments.length==1)throw new TypeError;var i,s=r-1;if(arguments.length>=2)i=arguments[1];else do{if(s in n){i=n[s--];break}if(--s<0)throw new TypeError}while(!0);do s in this&&(i=t.call(void 0,i,n[s],s,n));while(s--);return i}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t){var n=D(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=M(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,M(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:s)});if(!Object.getOwnPropertyDescriptor){var d="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(d+t);if(!a(t,n))return;var r,i,o;r={enumerable:!0,configurable:!0};if(p){var u=t.__proto__;t.__proto__=s;var i=c(t,n),o=h(t,n);t.__proto__=u;if(i||o)return i&&(r.get=i),o&&(r.set=o),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var v;Object.prototype.__proto__===null?v=function(){return{__proto__:null}}:v=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=v();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var g=m({}),y=typeof document=="undefined"||m(document.createElement("div"));if(!g||!y)var b=Object.defineProperty}if(!Object.defineProperty||b){var w="Property description must be an object: ",E="Object.defineProperty called on non-object: ",S="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(E+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(w+r);if(b)try{return b.call(Object,t,n,r)}catch(i){}if(a(r,"value"))if(p&&(c(t,n)||h(t,n))){var o=t.__proto__;t.__proto__=s,delete t[n],t[n]=r.value,t.__proto__=o}else t[n]=r.value;else{if(!p)throw new TypeError(S);a(r,"get")&&f(t,n,r.get),a(r,"set")&&l(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)a(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(x){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(a(t,n))n+="?";t[n]=!0;var r=a(t,n);return delete t[n],r});if(!Object.keys){var T=!0,N=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=N.length;for(var k in{toString:null})T=!1;Object.keys=function P(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var P=[];for(var t in e)a(e,t)&&P.push(t);if(T)for(var n=0,r=C;n9999?"+":"")+("00000"+Math.abs(i)).slice(0<=i&&i<=9999?-4:-6),n=t.length;while(n--)r=t[n],r<10&&(t[n]="0"+r);return i+"-"+t.slice(0,2).join("-")+"T"+t.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(t){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(e){var t=function i(t,n,r,s,o,u,a){var f=arguments.length;if(this instanceof e){var l=f==1&&String(t)===t?new e(i.parse(t)):f>=7?new e(t,n,r,s,o,u,a):f>=6?new e(t,n,r,s,o,u):f>=5?new e(t,n,r,s,o):f>=4?new e(t,n,r,s):f>=3?new e(t,n,r):f>=2?new e(t,n):f>=1?new e(t):new e;return l.constructor=i,l}return e.apply(this,arguments)},n=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var r in e)t[r]=e[r];return t.now=e.now,t.UTC=e.UTC,t.prototype=e.prototype,t.prototype.constructor=t,t.parse=function(r){var i=n.exec(r);if(i){i.shift();for(var s=1;s<7;s++)i[s]=+(i[s]||(s<3?1:0)),s==1&&i[s]--;var o=+i.pop(),u=+i.pop(),a=i.pop(),f=0;if(a){if(u>23||o>59)return NaN;f=(u*60+o)*6e4*(a=="+"?-1:1)}var l=+i[0];return 0<=l&&l<=99?(i[0]=l+400,e.UTC.apply(this,i)+f-126227808e5):e.UTC.apply(this,i)+f}return e.parse.apply(this,arguments)},t}(Date));var L=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||L.trim()){L="["+L+"]";var A=new RegExp("^"+L+L+"*"),O=new RegExp(L+L+"*$");String.prototype.trim=function(){return String(this).replace(A,"").replace(O,"")}}var M=function(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e},_="a"[0]!="a",D=function(e){if(e==null)throw new TypeError;return _&&typeof e=="string"&&e?e.split(""):Object(e)}}),ace.define("ace/lib/dom",["require","exports","module"],function(e,t,n){var r="http://www.w3.org/1999/xhtml";t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.setText=function(e,t){e.innerText!==undefined&&(e.innerText=t),e.textContent!==undefined&&(e.textContent=t)},t.hasCssClass=function(e,t){var n=e.className.split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n5||Math.abs(e.clientY-a)>5;if(!f||i)o=0;o+=1,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600)}o==1&&(u=e.clientX,a=e.clientY),r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}),i.isOldIE&&t.addListener(e,"dblclick",function(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)})},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var s=null;r(e,"keydown",function(e){s=e.keyCode}),r(e,"keypress",function(e){return o(n,e,s)})}else{var u=null;r(e,"keydown",function(e){return u=e.keyIdentifier||e.keyCode,o(n,e,e.keyCode)})}};if(window.postMessage&&!i.isOldIE){var u=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+u;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=window.requestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame,t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}};for(var t in e.FUNCTION_KEYS){var n=e.FUNCTION_KEYS[t].toLowerCase();e[n]=parseInt(t,10)}return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",e}();r.mixin(t,i),t.keyCodeToString=function(e){return(i[e]||String.fromCharCode(e)).toLowerCase()}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){t.inherits=function(){var e=function(){};return function(t,n){e.prototype=n.prototype,t.super_=n.prototype,t.prototype=new e,t.prototype.constructor=t}}(),t.mixin=function(e,t){for(var n in t)e[n]=t[n]},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=window.controllers&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(e,t,n){e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/useragent"),o=e("./keyboard/textinput").TextInput,u=e("./mouse/mouse_handler").MouseHandler,a=e("./mouse/fold_handler").FoldHandler,f=e("./keyboard/keybinding").KeyBinding,l=e("./edit_session").EditSession,c=e("./search").Search,h=e("./range").Range,p=e("./lib/event_emitter").EventEmitter,d=e("./commands/command_manager").CommandManager,v=e("./commands/default_commands").commands,m=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new d(s.isMac?"mac":"win",v),this.textInput=new o(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new f(this),this.$mouseHandler=new u(this),new a(this),this.$blockScrolling=0,this.$search=(new c).set({wrap:!0}),this.setSession(t||new l(""))};(function(){r.implement(this,p),this.setKeyboardHandler=function(e){this.keyBinding.setKeyboardHandler(e)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;if(this.session){var t=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var n=this.session.getSelection();n.removeEventListener("changeCursor",this.$onCursorChange),n.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:e,oldSession:t})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e){this.renderer.setTheme(e)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.setFontSize=function(e){this.container.style.fontSize=e,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session.findMatchingBracket(e.getCursorPosition());if(t){var n=new h(t.row,t.column,t.row,t.column+1);e.session.$bracketHighlight=e.session.addMarker(n,"ace_bracket","text")}},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=e.data,n=t.range,r;n.start.row==n.end.row&&t.action!="insertLines"&&t.action!="removeLines"?r=n.end.row:r=Infinity,this.renderer.updateLines(n.start.row,r),this._emit("change",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine(),this._emit("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;this.$highlightActiveLine&&(this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(t=this.getCursorPosition()),e.$highlightLineMarker&&!t?(e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null):!e.$highlightLineMarker&&t?e.$highlightLineMarker=e.highlightLines(t.row,t.row,"ace_active-line"):t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e._emit("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._emit("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var e="";return this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e){if(this.$readOnly)return;this._emit("paste",e),this.insert(e)},this.execCommand=function(e,t){this.commands.exec(e,this,t)},this.insert=function(e){var t=this.session,n=t.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()){var i=n.transformAction(t.getState(r.row),"insertion",this,t,e);i&&(e=i.text)}e=e.replace(" ",this.session.getTabString());if(!this.selection.isEmpty())r=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var s=new h.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}this.clearSelection();var o=r.column,u=t.getState(r.row),a=t.getLine(r.row),f=n.checkOutdent(u,a,e),l=t.insert(r,e);i&&i.selection&&(i.selection.length==2?this.selection.setSelectionRange(new h(r.row,o+i.selection[0],r.row,o+i.selection[1])):this.selection.setSelectionRange(new h(r.row+i.selection[0],i.selection[1],r.row+i.selection[2],i.selection[3])));if(t.getDocument().isNewLine(e)){var c=n.getNextLineIndent(u,a.slice(0,r.column),t.getTabString());this.moveCursorTo(r.row+1,0);var p=t.getTabSize(),d=Number.MAX_VALUE;for(var v=r.row+1;v<=l.row;++v){var m=0;a=t.getLine(v);for(var g=0;g0;++g)a.charAt(g)==" "?y-=p:a.charAt(g)==" "&&(y-=1);t.remove(new h(v,0,v,g))}t.indentRows(r.row+1,l.row,c)}f&&n.autoOutdent(u,t,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.$mouseHandler.setScrollSpeed(e)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(e){this.$mouseHandler.setDragDelay(e)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(e){if(this.$selectionStyle==e)return;this.$selectionStyle=e,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:e})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(e){if(this.$highlightActiveLine==e)return;this.$highlightActiveLine=e,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightGutterLine=!0,this.setHighlightGutterLine=function(e){if(this.$highlightGutterLine==e)return;this.renderer.setHighlightGutterLine(e),this.$highlightGutterLine=e},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(e){if(this.$highlightSelectedWord==e)return;this.$highlightSelectedWord=e,this.$onSelectionChange()},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(e){this.$readOnly=e},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(e){this.$modeBehaviours=e},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.$modeWrapBehaviours=!0,this.setWrapBehavioursEnabled=function(e){this.$modeWrapBehaviours=e},this.getWrapBehavioursEnabled=function(){return this.$modeWrapBehaviours},this.setShowFoldWidgets=function(e){var t=this.renderer.$gutterLayer;if(t.getShowFoldWidgets()==e)return;this.renderer.$gutterLayer.setShowFoldWidgets(e),this.$showFoldWidgets=e,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.setFadeFoldWidgets=function(e){this.renderer.setFadeFoldWidgets(e)},this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets()},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var r=new h(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new h(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t==1?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t==0&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e){var t=this.getCursorPosition(),n=this.session.getBracketRange(t);if(!n){n=this.find({needle:/[{}()\[\]]/g,preventScroll:!0,start:{row:t.row,column:t.column-1}});if(!n)return;var r=n.start;r.row==t.row&&Math.abs(r.column-t.column)<2&&(n=this.session.getBracketRange(r))}r=n&&n.cursor||r,r&&(e?n&&n.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(r.row,r.column):(this.clearSelection(),this.moveCursorTo(r.row,r.column)))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.navigateUp=function(e){this.selection.clearSelection(),e=e||1,this.selection.moveCursorBy(-e,0)},this.navigateDown=function(e){this.selection.clearSelection(),e=e||1,this.selection.moveCursorBy(e,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var e=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(e)},this.navigateFileStart=function(){var e=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(e)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!=0&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy()}}).call(m.prototype),t.Editor=m}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){return(new Array(t+1)).join(e)};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.startDrag=function(){var e=this.editor;this.setState("drag"),this.dragRange=e.getSelectionRange();var t=e.getSelectionStyle();this.dragSelectionMarker=e.session.addMarker(this.dragRange,"ace_selection",t),e.clearSelection(),r.addCssClass(e.container,"ace_dragging"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(e,t,n,r){if(n=="esc")return{command:this.command}},command:{exec:function(e){var t=e.$mouseHandler;t.dragCursor=null,t.dragEnd(),t.startSelect()}}}),e.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=(new Date).getTime();(e>s||t-this.mousedownEvent.time>this.$focusWaitTimout)&&this.startSelect()},this.dragWait=function(e){var t=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),n=(new Date).getTime(),r=this.editor;t>s?this.startSelect(this.mousedownEvent.getDocumentPosition()):n-this.mousedownEvent.time>r.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(e){this.mousedownEvent.domEvent=e,this.startSelect()},this.drag=function(){var e=this.editor;this.dragCursor=e.renderer.screenToTextCoordinates(this.x,this.y),e.moveCursorToPosition(this.dragCursor),e.renderer.scrollCursorIntoView()},this.dragEnd=function(e){var t=this.editor,n=this.dragCursor,i=this.dragRange;r.removeCssClass(t.container,"ace_dragging"),t.session.removeMarker(this.dragSelectionMarker),t.keyBinding.removeKeyboardHandler(this.$dragKeybinding);if(!n)return;t.clearSelection();if(e&&(e.ctrlKey||e.altKey)){var s=t.session,o=i;o.end=s.insert(n,s.getTextRange(i)),o.start=n}else{if(i.contains(n.row,n.column))return;var o=t.moveText(i,n)}if(!o)return;t.selection.setSelectionRange(o)},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);if(i){i.isEmpty()&&(i.start.column--,i.end.column++),this.$clickSelection=i,this.setState("select");return}this.$clickSelection=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines"),this.$clickSelection=n.selection.getLineRange(t.row)},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("null")},this.onMouseWheel=function(e){if(e.getShiftKey()||e.getAccelKey())return;var t=this.editor,n=t.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(n)this.$passScrollEvent=!1;else{if(this.$passScrollEvent)return;if(!this.$scrollStopTimeout){var r=this;this.$scrollStopTimeout=setTimeout(function(){r.$passScrollEvent=!0,r.$scrollStopTimeout=null},200)}}return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.preventDefault()}}).call(o.prototype),t.DefaultHandlers=o}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/event"],function(e,t,n){function s(e){function f(){u=r.createElement("div"),u.className="ace_gutter-tooltip",u.style.maxWidth="500px",u.style.display="none",t.container.appendChild(u)}function l(){u||f();var e=o.getDocumentPosition().row,r=n.$annotations[e];if(!r)return c();var i=t.session.getLength();if(e==i){var s=t.renderer.pixelToScreenCoordinates(0,o.y).row,l=o.$pos;if(s>t.session.documentToScreenRow(l.row,l.column))return c()}if(a==r)return;a=r.text.join("
    "),u.style.display="block",u.innerHTML=a,t.on("mousewheel",c),h(o)}function c(){s&&(s=clearTimeout(s)),a&&(u.style.display="none",a=null,t.removeEventListener("mousewheel",c))}function h(e){var n=t.renderer.$gutter.getBoundingClientRect();u.style.left=e.x-n.left+15+"px",e.y+3*t.renderer.lineHeight+150)return;return console.log(e.type,l,e.target),clearInterval(o),t.session.removeMarker(n),n=null,t.selection.setSelectionRange(u,a),r.preventDefault(e)}),r.addListener(c,"drop",function(e){return console.log(e.type,l,e.target),l=0,clearInterval(o),t.session.removeMarker(n),n=null,u.end=t.session.insert(f,e.dataTransfer.getData("Text")),u.start=f,t.focus(),t.selection.setSelectionRange(u),r.preventDefault(e)})};t.DragdropHandler=i}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("guttermousedown",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.foldWidgets;if(!s||s[r])return;var o=r-1,u;while(o>=0){var a=s[o];a==null&&(a=s[o]=i.getFoldWidget());if(a=="start"){var f=i.getFoldWidgetRange(o);u||(u=f);if(f&&f.end.row>=r)break}o--}o==-1&&(f=u);if(f){var r=f.start.row,l=i.getFoldAt(r,i.getLine(r).length,1);l?i.removeFold(l):(i.addFold("...",f),e.renderer.scrollCursorIntoView({row:f.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0),this.$data={editor:this.$editor}},this.setKeyboardHandler=function(e){if(this.$handlers[this.$handlers.length-1]==e)return;while(this.$handlers[1])this.removeKeyboardHandler(this.$handlers[1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=s.passEvent!=1:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&i.stopEvent(r);if(o)break}return o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){var t=this.$callKeyboardHandlers(-1,e);t||this.$editor.commands.exec("insertstring",this.$editor,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/edit_session",["require","exports","module","ace/config","ace/lib/oop","ace/lib/lang","ace/lib/net","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){var r=e("./config"),i=e("./lib/oop"),s=e("./lib/lang"),o=e("./lib/net"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){var e="";return this.forEach(function(t){e+="\n"+t.toString()}),e},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new c(e);this.setDocument(e),this.selection=new a(this),this.setMode(t)};(function(){function y(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}i.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$getRowCacheIndex(this.$docRowCache,e)+1,n=this.$docRowCache.length;this.$docRowCache.splice(t,n),this.$screenRowCache.splice(t,n)},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t]}),t.$deltas=[]},this.$informUndoManager=s.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?s.stringRepeat(" ",this.getTabSize()):" "},this.$useSoftTabs=!0,this.setUseSoftTabs=function(e){if(this.$useSoftTabs===e)return;this.$useSoftTabs=e},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(e){if(this.$overwrite==e)return;this.$overwrite=e,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._emit("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._emit("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oo){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r=this.doc.getLength()-1)return 0;var n=this.doc.removeLines(e,t);return this.doc.insertLines(e+1,n),1},this.duplicateLines=function(e,t){var e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t),n=this.getLines(e,t);this.doc.insertLines(e,n);var r=t-e+1;return r},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=[];for(var n=0;n0?(this.$wrapLimit=t,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e){var t=this.$wrapLimitRange.min;t&&(e=Math.max(t,e));var n=this.$wrapLimitRange.max;return n&&(e=Math.min(n,e)),Math.max(1,e)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n,r=e.data.action,i=e.data.range.start.row,s=e.data.range.end.row,o=e.data.range.start,u=e.data.range.end,a=null;r.indexOf("Lines")!=-1?(r=="insertLines"?s=i+e.data.lines.length:s=i,n=e.data.lines?e.data.lines.length:s-i):n=s-i;if(n!=0)if(r.indexOf("remove")!=-1){this[t?"$wrapData":"$rowLengthCache"].splice(i,n);var f=this.$foldData;a=this.getFoldsInRange(e.data.range),this.removeFolds(a);var l=this.getFoldLine(u.row),c=0;if(l){l.addRemoveChars(u.row,u.column,o.column-u.column),l.shiftRow(-n);var h=this.getFoldLine(i);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=u.row&&l.shiftRow(-n)}s=i}else{var p;if(t){p=[i,0];for(var d=0;d=i&&l.shiftRow(n)}}else{n=Math.abs(e.data.range.start.column-e.data.range.end.column),r.indexOf("remove")!=-1&&(a=this.getFoldsInRange(e.data.range),this.removeFolds(a),n=-n);var l=this.getFoldLine(i);l&&l.addRemoveChars(i,o.column,n)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),t?this.$updateWrapData(i,s):this.$updateRowLengthCache(i,s),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var n=this.doc.getAllLines(),r=this.getTabSize(),i=this.$wrapData,o=this.$wrapLimit,u,f,l=e;t=Math.min(t,n.length-1);while(l<=t){f=this.getFoldLine(l,f);if(!f)u=this.$getDisplayTokens(s.stringTrimRight(n[l])),i[l]=this.$computeWrapSplits(u,o,r),l++;else{u=[],f.walk(function(e,t,r,i){var s;if(e!=null){s=this.$getDisplayTokens(e,u.length),s[0]=a;for(var o=1;o=v)u.pop();i[f.start.row]=this.$computeWrapSplits(u,o,r),l=f.end.row+1}}};var t=1,n=2,a=3,c=4,d=9,v=10,m=11,g=12;this.$computeWrapSplits=function(e,t){function o(t){var r=e.slice(i,t),o=r.length;r.join("").replace(/12/g,function(){o-=1}).replace(/2/g,function(){o-=1}),s+=o,n.push(s),i=t}if(e.length==0)return[];var n=[],r=e.length,i=0,s=0;while(r-i>t){var u=i+t;if(e[u]>=v){while(e[u]>=v)u++;o(u);continue}if(e[u]==a||e[u]==c){for(u;u!=i-1;u--)if(e[u]==a)break;if(u>i){o(u);continue}u=i+t;for(u;uf&&e[u]f&&e[u]==d)u--;if(u>f){o(++u);continue}u=i+t,o(u)}return n},this.$getDisplayTokens=function(e,r){var i=[],s;r=r||0;for(var o=0;o39&&u<48||u>57&&u<64?i.push(d):u>=4352&&y(u)?i.push(t,n):i.push(t)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&y(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.getRowLength=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u-1>=e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}if(this.$useWrapMode){var v=this.$wrapData[r];v&&(s=v[e-o],e>o&&v.length&&(i=v[e-o-1]||v[v.length-1],n=n.substring(i)))}return i+=this.$getStringScreenWidth(n,t)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);if(this.$useWrapMode){var v=this.$wrapData[i],m=0;while(d.length>=v[m])r++,m++;d=d.substring(v[m-1]||0,d.length)}return{row:r,column:this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}return e}}).call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),t.EditSession=d}),ace.define("ace/config",["require","exports","module","ace/lib/lang"],function(e,t,n){"no use strict";function o(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=function(){return this}(),s={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!s.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return s[e]},t.set=function(e,t){if(!s.hasOwnProperty(e))throw new Error("Unknown config key: "+e);s[e]=t},t.all=function(){return r.copyObject(s)},t.moduleUrl=function(e,t){if(s.$moduleUrls[e])return s.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=n[n.length-1].replace(t,"").replace(/(^[\-_])|([\-_]$)/,"");!r&&n.length>1&&(r=n[n.length-2]);var i=s[t+"Path"];return i==null&&(i=s.basePath),i&&i.slice(-1)!="/"&&(i+="/"),i+t+"-"+r+this.get("suffix")},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t},t.init=function(){s.packaged=e.packaged||n.packaged||i.define&&define.packaged;if(!i.document)return"";var r={},u="",a=document.getElementsByTagName("script");for(var f=0;ft.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column==0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<=1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e}}).call(u.prototype),t.Selection=u}),ace.define("ace/range",["require","exports","module"],function(e,t,n){var r=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row==e.start.row&&this.end.row==e.end.row&&this.start.column==e.start.column&&this.end.column==e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};if(this.start.row>t)var i={row:t+1,column:0};if(this.start.row1&&i[a].token.length!==f-1)throw new Error("For "+i[a].regex+" the matching groups ("+(f-1)+") and length of the token array ("+i[a].token.length+") don't match (rule #"+a+" of state "+n+")");u[o]={rule:a,len:f},o+=f,s.push(l)}this.regExps[n]=new RegExp("(?:("+s.join(")|(")+")|(.))",t)}};(function(){this.getLineTokens=function(e,t){var n=t||"start",r=this.rules[n],i=this.matchMappings[n],s=this.regExps[n];s.lastIndex=0;var o,u=[],a=0,f={type:null,value:""};while(o=s.exec(e)){var l="text",c=null,h=[o[0]];for(var p=0;p1&&(h=o.slice(p+2,p+1+i[p].len)),typeof c.token=="function"?l=c.token.apply(this,h):l=c.token;if(c.next){n=c.next,r=this.rules[n],i=this.matchMappings[n],a=s.lastIndex,s=this.regExps[n];if(s===undefined)throw new Error("You indicated a state of "+c.next+" to go to, but it doesn't exist!");s.lastIndex=a}break}if(h[0]){typeof l=="string"&&(h=[h.join("")],l=[l]);for(var p=0;p=t&&(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this.insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){if(t.length==0)return{row:e,column:0};if(t.length>65535){var n=this.insertLines(e,t.slice(65535));t=t.slice(0,65535)}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._emit("change",{data:o}),n||i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._emit("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._emit("change",{data:i}),r},this.remove=function(e){e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this.removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._emit("change",{data:a}),r.start},this.removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._emit("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._emit("change",{data:o})},this.replace=function(e,t){if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this.removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this.insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}}}).call(u.prototype),t.Document=u}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.document=e,typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n),this.$onChange=this.onChange.bind(this),e.on("change",this.$onChange)};(function(){r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var t=e.data,n=t.range;if(n.start.row==n.end.row&&n.start.row!=this.row)return;if(n.start.row>this.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column;t.action==="insertText"?n.start.row===r&&n.start.column<=i?n.start.row===n.end.row?i+=n.end.column-n.start.column:(i-=n.start.column,r+=n.end.row-n.start.row):n.start.row!==n.end.row&&n.start.row=i?i=n.start.column:i=Math.max(0,i-(n.end.column-n.start.column)):n.start.row!==n.end.row&&n.start.row=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=5e3,o=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=n.doc,i=0,s=r.getLength();while(n.currentLine20){n.fireUpdateEvent(t,n.currentLine-1),n.running=setTimeout(n.$worker,20);return}}n.running=!1,n.fireUpdateEvent(t,s-1)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._emit("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.$updateOnChange=function(e){var t=e.range,n=t.start.row,r=t.end.row-n;if(r===0)this.lines[n]=null;else if(e.action=="removeText"||e.action=="removeLines")this.lines.splice(n,r+1,null),this.states.splice(n,r+1,null);else{var i=Array(r+1);i.unshift(n,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(n,this.currentLine,this.doc.getLength()),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1];if(t.length>s){var r={value:t.substr(s),type:"text"};t=t.slice(0,s)}var i=this.tokenizer.getLineTokens(t,n);return r&&(i.tokens.push(r),i.state="start"),this.states[e]!==i.state?(this.states[e]=i.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=i.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i,null,this.type)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:o=new s(t,e),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u==f&&l-a<2)throw"The range has to be at least 2 characters width";var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);if(c&&!c.range.isStart(u,a)||h&&!h.range.isEnd(f,l))throw"A fold can't intersect already existing fold"+o.range+c.range;var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.subFolds=p);for(var d=0;dthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f=this.$rowTokens.length){this.$row+=1;if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(aw&&o[c].end.row==n.end.row)c--;return o.slice(m,c+1)}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i=this,o,u=t.backwards;if(t.$isMultiLine)var a=n.length,f=function(t,r,i){var u=t.search(n[0]);if(u==-1)return;for(var f=1;f=0;u--)if(o(s[u],t,i))return!0};else var f=function(e,t,i){var s=r.getMatchOffsets(e,n);for(var u=0;u=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../keyboard/hash_handler").HashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){this.platform=e,this.commands=this.byName={},this.commmandKeyBinding={},this.addCommands(t),this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r=this._emit("exec",{editor:t,command:e,args:n});return r===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys"],function(e,t,n){function i(e,t){this.platform=t,this.commands={},this.commmandKeyBinding={},this.addCommands(e)}var r=e("../lib/keys");(function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e){var t=typeof e=="string"?e:e.name;e=this.commands[t],delete this.commands[t];var n=this.commmandKeyBinding;for(var r in n)for(var i in n[r])n[r][i]==e&&delete n[r][i]},this.bindKey=function(e,t){if(!e)return;if(typeof t=="function"){this.addCommand({exec:t,bindKey:e,name:e});return}var n=this.commmandKeyBinding;e.split("|").forEach(function(e){var r=this.parseKeys(e,t),i=r.hashId;(n[i]||(n[i]={}))[r.key]=t},this)},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n}),n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){var t=e.bindKey;if(!t)return;var n=typeof t=="string"?t:t[this.platform];this.bindKey(n,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)throw"invalid modifier "+t[o]+" in "+e;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=this.commmandKeyBinding;return r[t]&&r[t][n]},this.handleKeyboard=function(e,t,n,r){return{command:this.findKeyCommand(t,n)}}}).call(i.prototype),t.HashHandler=i}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang"],function(e,t,n){function i(e,t){return{win:e,mac:t}}var r=e("../lib/lang");t.commands=[{name:"selectall",bindKey:i("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:i(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:i("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:i("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},readOnly:!0},{name:"unfold",bindKey:i("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},readOnly:!0},{name:"foldall",bindKey:i("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll()},readOnly:!0},{name:"unfoldall",bindKey:i("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},readOnly:!0},{name:"findnext",bindKey:i("Ctrl-K","Command-G"),exec:function(e){e.findNext()},readOnly:!0},{name:"findprevious",bindKey:i("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},readOnly:!0},{name:"find",bindKey:i("Ctrl-F","Command-F"),exec:function(e){var t=prompt("Find:",e.getCopyText());e.find(t)},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:i("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0},{name:"gotostart",bindKey:i("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectup",bindKey:i("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",readOnly:!0},{name:"golineup",bindKey:i("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selecttoend",bindKey:i("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"gotoend",bindKey:i("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"selectdown",bindKey:i("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",readOnly:!0},{name:"golinedown",bindKey:i("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selectwordleft",bindKey:i("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",readOnly:!0},{name:"gotowordleft",bindKey:i("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttolinestart",bindKey:i("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"gotolinestart",bindKey:i("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectleft",bindKey:i("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",readOnly:!0},{name:"gotoleft",bindKey:i("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selectwordright",bindKey:i("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",readOnly:!0},{name:"gotowordright",bindKey:i("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttolineend",bindKey:i("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"gotolineend",bindKey:i("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"selectright",bindKey:i("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",readOnly:!0},{name:"gotoright",bindKey:i("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:i(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:i("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:i(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:i("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:i("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"togglerecording",bindKey:i("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:i("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:i("Ctrl-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttomatching",bindKey:i("Ctrl-Shift-P",null),exec:function(e){e.jumpToMatching(!0)},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},multiSelectAction:"forEach"},{name:"removeline",bindKey:i("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},multiSelectAction:"forEach"},{name:"duplicateSelection",bindKey:i("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},multiSelectAction:"forEach"},{name:"sortlines",bindKey:i("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},multiSelectAction:"forEach"},{name:"togglecomment",bindKey:i("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEach"},{name:"modifyNumberUp",bindKey:i("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:i("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},multiSelectAction:"forEach"},{name:"replace",bindKey:i("Ctrl-R","Command-Option-F"),exec:function(e){var t=prompt("Find:",e.getCopyText());if(!t)return;var n=prompt("Replacement:");if(!n)return;e.replace(n,{needle:t})}},{name:"replaceall",bindKey:i("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(e){var t=prompt("Find:");if(!t)return;var n=prompt("Replacement:");if(!n)return;e.replaceAll(n,{needle:t})}},{name:"undo",bindKey:i("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:i("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:i("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()}},{name:"movelinesup",bindKey:i("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()}},{name:"copylinesdown",bindKey:i("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()}},{name:"movelinesdown",bindKey:i("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()}},{name:"del",bindKey:i("Delete","Delete|Ctrl-D"),exec:function(e){e.remove("right")},multiSelectAction:"forEach"},{name:"backspace",bindKey:i("Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach"},{name:"removetolinestart",bindKey:i("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach"},{name:"removetolineend",bindKey:i("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach"},{name:"removewordleft",bindKey:i("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach"},{name:"removewordright",bindKey:i("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach"},{name:"outdent",bindKey:i("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach"},{name:"indent",bindKey:i("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach"},{name:"splitline",bindKey:i(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach"},{name:"transposeletters",bindKey:i("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)}},{name:"touppercase",bindKey:i("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach"},{name:"tolowercase",bindKey:i("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach"}]}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,n){var r=function(){this.reset()};(function(){this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],this.$undoStack.push(t),this.$redoStack=[]},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t)),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(t,e),this.$undoStack.push(t)),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[]},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(r.prototype),t.UndoManager=r}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/useragent"),u=e("./config"),a=e("./lib/net"),f=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,p=e("./scrollbar").ScrollBar,d=e("./renderloop").RenderLoop,v=e("./lib/event_emitter").EventEmitter,m=".ace_editor {position: absolute;overflow: hidden;font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;font-size: 12px;}.ace_scroller {position: absolute;overflow: hidden;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: text;}.ace_gutter {position: absolute;overflow : hidden;height: 100%;width: auto;cursor: default;z-index: 4;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\");}.ace_scrollbar {position: absolute;overflow-x: hidden;overflow-y: scroll;right: 0;}.ace_scrollbar-inner {position: absolute;width: 1px;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;}.ace_text-input.ace_composition {background: #fff;color: #000;z-index: 1000;opacity: 1;border: solid lightgray 1px;margin: -1px}.ace_layer {z-index: 1;position: absolute;overflow: hidden;white-space: nowrap;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;/* setting pointer-events: auto; on node under the mouse, which changesduring scroll, will break mouse wheel scrolling in Safari */pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {color: black;font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-moz-transition: opacity 0.18s;-webkit-transition: opacity 0.18s;-o-transition: opacity 0.18s;-ms-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_cursor[style*=\"opacity: 0\"]{-ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_line {white-space: nowrap;}.ace_marker-layer .ace_step {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;}.ace_editor.ace_dragging .ace_content {cursor: move;}.ace_gutter-tooltip {background-color: #FFFFD5;border: 1px solid gray;box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);color: black;display: inline-block;padding: 4px;position: absolute;z-index: 300;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre-line;word-wrap: break-word;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: inline-block;width: 11px;vertical-align: top;background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;}.ace_fold-widget.ace_end {background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");}.ace_fold-widget.ace_closed {background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}/*** Dark version for fold widgets*/.ace_dark .ace_fold-widget {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-moz-transition: opacity 0.4s ease 0.05s;-webkit-transition: opacity 0.4s ease 0.05s;-o-transition: opacity 0.4s ease 0.05s;-ms-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-moz-transition: opacity 0.05s ease 0.05s;-webkit-transition: opacity 0.05s ease 0.05s;-o-transition: opacity 0.05s ease 0.05s;-ms-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}";i.importCssString(m,"ace_editor");var g=function(e,t){var n=this;this.container=e,this.$keepTextAreaAtCursor=!o.isIE,i.addCssClass(e,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.setHighlightGutterLine(!0),this.$gutterLayer=new f(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var r=this.$textLayer=new c(this.content);this.canvas=r.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$horizScrollAlwaysVisible=!1,this.$animatedScroll=!1,this.scrollBar=new p(e),this.scrollBar.addEventListener("scroll",function(e){n.$inScrollAnimation||n.session.setScrollTop(e.data)}),this.scrollTop=0,this.scrollLeft=0,s.addListener(this.scroller,"scroll",function(){var e=n.scroller.scrollLeft;n.scrollLeft=e,n.session.setScrollLeft(e)}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){n.updateCharacterSize(),n.onResize(!0)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new d(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4)};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.characterWidth=this.$textLayer.getCharacterWidth(),this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session=e,this.scroller.className="ace_scroller",this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(e,t){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$changedLines.lastRow2)return;this.resizing>1?this.resizing++:this.resizing=e?1:0,r||(r=i.getInnerHeight(this.container));if(e||o.height!=r)o.height=r,this.scroller.style.height=r+"px",o.scrollerHeight=this.scroller.clientHeight,this.scrollBar.setHeight(o.scrollerHeight),this.session&&(this.session.setScrollTop(this.getScrollTop()),s|=this.CHANGE_FULL);n||(n=i.getInnerWidth(this.container));if(e||this.resizing>1||o.width!=n){o.width=n;var t=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,n-t-this.scrollBar.getWidth()),this.scroller.style.right=this.scrollBar.getWidth()+"px";if(this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}e?this.$renderChanges(s,!0):this.$loop.schedule(s),e&&delete this.resizing},this.onGutterResize=function(){var e=this.$size.width,t=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=t+"px",this.$size.scrollerWidth=Math.max(0,e-t-this.scrollBar.getWidth()),this.session.getUseWrapMode()&&this.adjustWrapLimit()&&this.$loop.schedule(this.CHANGE_FULL)},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t)},this.setAnimatedScroll=function(e){this.$animatedScroll=e},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},this.getShowInvisibles=function(){return this.$textLayer.showInvisibles},this.getDisplayIndentGuides=function(){return this.$textLayer.displayIndentGuides},this.setDisplayIndentGuides=function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},this.$showPrintMargin=!0,this.setShowPrintMargin=function(e){this.$showPrintMargin=e,this.$updatePrintMargin()},this.getShowPrintMargin=function(){return this.$showPrintMargin},this.$printMarginColumn=80,this.setPrintMarginColumn=function(e){this.$printMarginColumn=e,this.$updatePrintMargin()},this.getPrintMarginColumn=function(){return this.$printMarginColumn},this.getShowGutter=function(){return this.showGutter},this.setShowGutter=function(e){if(this.showGutter===e)return;this.$gutter.style.display=e?"block":"none",this.showGutter=e,this.onResize(!0)},this.getFadeFoldWidgets=function(){return i.hasCssClass(this.$gutter,"ace_fade-fold-widgets")},this.setFadeFoldWidgets=function(e){e?i.addCssClass(this.$gutter,"ace_fade-fold-widgets"):i.removeCssClass(this.$gutter,"ace_fade-fold-widgets")},this.$highlightGutterLine=!1,this.setHighlightGutterLine=function(e){if(this.$highlightGutterLine==e)return;this.$highlightGutterLine=e;if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$updateGutterLineHighlight=function(){this.$gutterLineHighlight.style.top=this.$cursorLayer.$pixelPos.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=this.layerConfig.lineHeight+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden"},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.$cursorLayer.$pixelPos.top,t=this.$cursorLayer.$pixelPos.left;e-=this.layerConfig.offset;if(e<0||e>this.layerConfig.height-this.lineHeight)return;var n=this.characterWidth;this.$composition&&(n+=this.textarea.scrollWidth),t-=this.scrollLeft,t>this.$size.scrollerWidth-n&&(t=this.$size.scrollerWidth-n),this.showGutter&&(t+=this.$gutterLayer.gutterWidth),this.textarea.style.height=this.lineHeight+"px",this.textarea.style.width=n+"px",this.textarea.style.left=t+"px",this.textarea.style.top=e-1+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.$horizScrollAlwaysVisible!=e&&(this.$horizScrollAlwaysVisible=e,(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL))},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(e,t){if(!t&&(!e||!this.session||!this.container.offsetWidth))return;(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL)&&this.$computeLayerConfig();if(e&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var n=this.scroller.scrollLeft;this.scrollLeft=n,this.session.setScrollLeft(n),this.scroller.className=this.scrollLeft==0?"ace_scroller":"ace_scroller ace_scroll-left"}if(e&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}if(e&this.CHANGE_SCROLL){this.$updateScrollBar(),e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}e&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.showGutter)&&this.$gutterLayer.update(this.layerConfig):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.showGutter&&this.$gutterLayer.update(this.layerConfig),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),e&this.CHANGE_SIZE&&this.$updateScrollBar()},this.$computeLayerConfig=function(){var e=this.session,t=this.scrollTop%this.lineHeight,n=this.$size.scrollerHeight+this.lineHeight,r=this.$getLongestLine(),i=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-r<0,s=this.$horizScroll!==i;this.$horizScroll=i,s&&(this.scroller.style.overflowX=i?"scroll":"hidden",i||this.session.setScrollLeft(0));var o=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,o-this.$size.scrollerHeight)));var u=Math.ceil(n/this.lineHeight)-1,a=Math.max(0,Math.round((this.scrollTop-t)/this.lineHeight)),f=a+u,l,c,h=this.lineHeight;a=e.screenToDocumentRow(a,0);var p=e.getFoldLine(a);p&&(a=p.start.row),l=e.documentToScreenRow(a,0),c=e.getRowLength(a)*h,f=Math.min(e.screenToDocumentRow(f,0),e.getLength()-1),n=this.$size.scrollerHeight+e.getRowLength(f)*h+c,t=this.scrollTop-l*h,this.layerConfig={width:r,padding:this.$padding,firstRow:a,firstRowScreen:l,lastRow:f,lineHeight:h,characterWidth:this.characterWidth,minHeight:n,maxHeight:o,offset:t,height:this.$size.scrollerHeight},this.$gutterLayer.element.style.marginTop=-t+"px",this.content.style.marginTop=-t+"px",this.content.style.width=r+2*this.$padding+"px",this.content.style.height=n+"px",s&&this.onResize(!0)},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(ti?(t&&(i-=t*this.$size.scrollerHeight),this.session.setScrollTop(i)):this.scrollTop+this.$size.scrollerHeightr?(r0)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this._loadTheme=function(e,t){if(!u.get("packaged"))return t();a.loadScript(u.moduleUrl(e,"theme"),t)},this.setTheme=function(t){function u(e){i.importCssString(e.cssText,e.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass),n.$theme=e.cssClass,n.theme=e,i.addCssClass(n.container,e.cssClass),i.setCssClass(n.container,"ace_dark",e.isDark);var t=e.padding||4;n.$padding&&t!=n.$padding&&n.setPadding(t),n.$size&&(n.$size.width=0,n.onResize()),n._dispatchEvent("themeLoaded",{theme:e})}var n=this;this.$themeValue=t,n._dispatchEvent("themeChange",{theme:t});if(!t||typeof t=="string"){var r=t||"ace/theme/textmate",s;try{s=e(r)}catch(o){}if(s)return u(s);n._loadTheme(r,function(){e([r],function(e){if(n.$themeValue!==t)return;u(e)})})}else u(t)},this.getTheme=function(){return this.$themeValue},this.setStyle=function(t,n){i.setCssClass(this.container,t,n!=0)},this.unsetStyle=function(t){i.removeCssClass(this.container,t)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),t.VirtualRenderer=g}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this)};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];var t,n;for(var r=0;ru&&(i=o.end.row+1,o=this.session.getNextFoldLine(i,o),u=o?o.start.row:Infinity);if(i>s)break;var h=this.$annotations[i]||t;n.push("