From a212b194f38ff0f85458e564298111f0dedcdea6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com>
Date: Tue, 16 Jul 2024 19:08:01 +0200
Subject: [PATCH] Clean Redmine 5 with ruby-dev

---
 .gitmodules                                   |   24 -
 Dockerfile                                    |   10 +-
 plugins/easy_mindmup/Gemfile                  |    1 -
 plugins/easy_mindmup/README.rdoc              |    3 -
 plugins/easy_mindmup/after_init.rb            |    6 -
 .../controllers/easy_mindmup_controller.rb    |   44 -
 .../app/helpers/easy_mindmup_helper.rb        |   21 -
 .../app/views/easy_mindmup/_hotkeys.html.erb  |   31 -
 .../app/views/easy_mindmup/_includes.html.erb |   77 -
 .../views/easy_mindmup/_js_prepare.html.erb   |  141 -
 .../fonts/EasyMaterialIcons-Regular.eot       |  Bin 91978 -> 0 bytes
 .../fonts/EasyMaterialIcons-Regular.otf       |  Bin 239484 -> 0 bytes
 .../fonts/EasyMaterialIcons-Regular.svg       | 2411 -------------
 .../fonts/EasyMaterialIcons-Regular.ttf       |  Bin 139928 -> 0 bytes
 .../fonts/EasyMaterialIcons-Regular.woff      |  Bin 64752 -> 0 bytes
 .../fonts/EasyMaterialIcons-Regular.woff2     |  Bin 80288 -> 0 bytes
 plugins/easy_mindmup/assets/images/person.gif |  Bin 875 -> 0 bytes
 .../assets/javascripts/after_change.js        |   70 -
 .../assets/javascripts/autosave.js            |   81 -
 .../assets/javascripts/backup/last_state.js   |  170 -
 .../assets/javascripts/content_patch.js       |   35 -
 .../easy_mindmup/assets/javascripts/data.js   |   36 -
 .../assets/javascripts/dom_patch.js           |  197 --
 .../assets/javascripts/easy_wbs.js            |    1 -
 .../assets/javascripts/event_bus.js           |   58 -
 .../assets/javascripts/expand_all.js          |   63 -
 .../assets/javascripts/external.js            | 1690 ---------
 .../easy_mindmup/assets/javascripts/filter.js |   28 -
 .../assets/javascripts/history.js             |  174 -
 .../assets/javascripts/jsdocs_external.js     |   27 -
 .../assets/javascripts/layout_patch.js        |   94 -
 .../easy_mindmup/assets/javascripts/legend.js |  218 --
 .../assets/javascripts/legend_events.js       |  279 --
 .../easy_mindmup/assets/javascripts/libs.js   |    2 -
 .../assets/javascripts/link_edit_widget.js    |   70 -
 .../easy_mindmup/assets/javascripts/links.js  |  198 --
 .../easy_mindmup/assets/javascripts/loader.js |  391 --
 .../easy_mindmup/assets/javascripts/logger.js |   70 -
 .../easy_mindmup/assets/javascripts/main.js   |  266 --
 .../assets/javascripts/map_model_patch.js     |  108 -
 .../assets/javascripts/mapjs_init.js          |   92 -
 .../assets/javascripts/mindmup/clipboard.js   |   18 -
 .../assets/javascripts/mindmup/content.js     |  979 -----
 .../javascripts/mindmup/dom-map-view.js       | 1340 -------
 .../javascripts/mindmup/dom-map-widget.js     |  218 --
 .../javascripts/mindmup/hammer-draggable.js   |  153 -
 .../javascripts/mindmup/image-drop-widget.js  |  109 -
 .../assets/javascripts/mindmup/layout.js      |  349 --
 .../javascripts/mindmup/link-edit-widget.js   |   40 -
 .../assets/javascripts/mindmup/map-model.js   | 1230 -------
 .../javascripts/mindmup/map-toolbar-widget.js |   40 -
 .../assets/javascripts/mindmup/mapjs.js       |    1 -
 .../assets/javascripts/mindmup/observable.js  |   52 -
 .../assets/javascripts/mindmup/url-helper.js  |   23 -
 .../assets/javascripts/mm_context_menu.js     |  209 --
 .../assets/javascripts/model_classes.js       |  212 --
 .../assets/javascripts/node_patch.js          |  210 --
 .../assets/javascripts/polyfill.js            |   27 -
 .../easy_mindmup/assets/javascripts/print.js  |  174 -
 .../assets/javascripts/redrawer.js            |   60 -
 .../assets/javascripts/save_info.js           |   56 -
 .../assets/javascripts/save_progress.js       |   80 -
 .../easy_mindmup/assets/javascripts/saver.js  |  610 ----
 .../assets/javascripts/storage.js             |  191 -
 .../easy_mindmup/assets/javascripts/styles.js |  236 --
 .../assets/javascripts/toolbar.js             |  192 -
 .../easy_mindmup/assets/javascripts/utils.js  |  314 --
 .../assets/javascripts/validator.js           |  107 -
 .../assets/stylesheets/easy_mindmup.css       |  175 -
 .../stylesheets/easy_mindmup_sass.scss.erb    |   37 -
 .../stylesheets/generated/easy_mindmup.css    | 3138 -----------------
 .../assets/stylesheets/mindmup.css            | 1434 --------
 .../assets/stylesheets/sass/_mindmup.scss     |    0
 .../sass/_mindmup_default_variables.scss      |    6 -
 .../stylesheets/sass/_mindmup_frame.scss      |  211 --
 .../stylesheets/sass/_mindmup_icons.scss      |   50 -
 .../stylesheets/sass/_mindmup_legend.scss     |   67 -
 .../stylesheets/sass/_mindmup_mapjs.scss      |   30 -
 .../stylesheets/sass/_mindmup_mixins.scss     |    6 -
 .../stylesheets/sass/_mindmup_nodes.scss      |  130 -
 .../stylesheets/sass/_mindmup_print.scss      |   32 -
 .../stylesheets/sass/_mindmup_progress.scss   |   30 -
 .../stylesheets/sass/_mindmup_redmine.scss    |  143 -
 .../stylesheets/sass/_mindmup_schemes.scss    |   12 -
 .../stylesheets/sass/_mindmup_sidebar.scss    |  219 --
 .../stylesheets/sass/_mindmup_variables.scss  |   44 -
 plugins/easy_mindmup/config/locales/cs.yml    |  163 -
 plugins/easy_mindmup/config/locales/en.yml    |  171 -
 plugins/easy_mindmup/config/routes.rb         |    3 -
 plugins/easy_mindmup/init.rb                  |   17 -
 .../lib/easy_mindmup/easy_mindmup.rb          |    7 -
 .../controllers/easy_wbs_controller_spec.rb   |   19 -
 .../spec/features/wbs_tree_spec.rb            |   74 -
 plugins/easy_wbs/Gemfile                      |    1 -
 plugins/easy_wbs/README.rdoc                  |    3 -
 plugins/easy_wbs/after_init.rb                |   33 -
 .../app/controllers/easy_wbs_controller.rb    |  108 -
 .../easy_wbs/app/helpers/easy_wbs_helper.rb   |   59 -
 .../app/models/easy_wbs/issue_query.rb        |   51 -
 ...asy_wbs_easy_issue_query_settings.html.erb |    5 -
 .../app/views/easy_wbs/_includes.html.erb     |   14 -
 .../app/views/easy_wbs/_js_prepare.html.erb   |   57 -
 .../views/easy_wbs/_test_includes.html.erb    |    6 -
 .../easy_wbs/easy_queries/_show.html.erb      |   19 -
 .../easy_wbs/app/views/easy_wbs/index.api.rsb |   91 -
 .../app/views/easy_wbs/index.html.erb         |  157 -
 plugins/easy_wbs/assets/images/person.gif     |  Bin 875 -> 0 bytes
 .../easy_wbs/assets/javascripts/gateway.js    |   99 -
 .../assets/javascripts/tests/idea_diff.js     |  102 -
 .../assets/javascripts/tests/parse_form.js    |   57 -
 .../assets/javascripts/tests/printing.js      |   14 -
 .../assets/javascripts/tests/saving_test.js   |   23 -
 .../assets/javascripts/wbs_context_menu.js    |  133 -
 .../easy_wbs/assets/javascripts/wbs_loader.js |   47 -
 .../easy_wbs/assets/javascripts/wbs_main.js   |   60 -
 .../easy_wbs/assets/javascripts/wbs_modals.js |  267 --
 .../assets/javascripts/wbs_node_patch.js      |   56 -
 .../easy_wbs/assets/javascripts/wbs_saver.js  |  119 -
 .../easy_wbs/assets/javascripts/wbs_styles.js |  134 -
 .../assets/javascripts/wbs_validator.js       |   30 -
 .../easy_wbs/assets/stylesheets/easy_wbs.css  |   10 -
 .../assets/stylesheets/easy_wbs_old.css       |  271 --
 plugins/easy_wbs/config/locales/ar.yml        |    2 -
 plugins/easy_wbs/config/locales/cs.yml        |  170 -
 plugins/easy_wbs/config/locales/da.yml        |    2 -
 plugins/easy_wbs/config/locales/de.yml        |  181 -
 plugins/easy_wbs/config/locales/en-AU.yml     |    2 -
 plugins/easy_wbs/config/locales/en-GB.yml     |    2 -
 plugins/easy_wbs/config/locales/en-US.yml     |    2 -
 plugins/easy_wbs/config/locales/en.yml        |  169 -
 plugins/easy_wbs/config/locales/es.yml        |  177 -
 plugins/easy_wbs/config/locales/fi.yml        |    2 -
 plugins/easy_wbs/config/locales/fr.yml        |  182 -
 plugins/easy_wbs/config/locales/he.yml        |    2 -
 plugins/easy_wbs/config/locales/hr.yml        |    2 -
 plugins/easy_wbs/config/locales/hu.yml        |  171 -
 plugins/easy_wbs/config/locales/it.yml        |  175 -
 plugins/easy_wbs/config/locales/ja.yml        |  151 -
 plugins/easy_wbs/config/locales/ko.yml        |  162 -
 plugins/easy_wbs/config/locales/mk.yml        |    2 -
 plugins/easy_wbs/config/locales/nl.yml        |  173 -
 plugins/easy_wbs/config/locales/no.yml        |    2 -
 plugins/easy_wbs/config/locales/pl.yml        |  174 -
 plugins/easy_wbs/config/locales/pt-BR.yml     |  174 -
 plugins/easy_wbs/config/locales/pt.yml        |    2 -
 plugins/easy_wbs/config/locales/ro.yml        |    2 -
 plugins/easy_wbs/config/locales/ru.yml        |  172 -
 plugins/easy_wbs/config/locales/sk.yml        |    2 -
 plugins/easy_wbs/config/locales/sl.yml        |    2 -
 plugins/easy_wbs/config/locales/sq.yml        |    2 -
 plugins/easy_wbs/config/locales/sr-YU.yml     |    2 -
 plugins/easy_wbs/config/locales/sr.yml        |    2 -
 plugins/easy_wbs/config/locales/sv.yml        |    2 -
 plugins/easy_wbs/config/locales/th.yml        |    2 -
 plugins/easy_wbs/config/locales/tr.yml        |    2 -
 plugins/easy_wbs/config/locales/zh-TW.yml     |    2 -
 plugins/easy_wbs/config/locales/zh.yml        |  155 -
 plugins/easy_wbs/config/routes.rb             |    6 -
 plugins/easy_wbs/init.rb                      |   19 -
 plugins/easy_wbs/lib/easy_wbs/easy_wbs.rb     |    7 -
 plugins/easy_wbs/lib/easy_wbs/hooks.rb        |    9 -
 .../controllers/queries_controller_patch.rb   |   26 -
 .../helpers/application_helper_patch.rb       |   17 -
 .../redmine_patch/models/project_patch.rb     |   30 -
 .../controllers/easy_wbs_controller_spec.rb   |   19 -
 .../easy_wbs/spec/features/jasmine_spec.rb    |   22 -
 .../easy_wbs/spec/features/wbs_legend_spec.rb |   59 -
 .../spec/features/wbs_no_sidebar_spec.rb      |   22 -
 .../spec/features/wbs_sidebar_spec.rb         |   84 -
 .../easy_wbs/spec/features/wbs_tree_spec.rb   |   90 -
 plugins/redmine_agile/Gemfile                 |    1 -
 plugins/redmine_agile/README.rdoc             |   19 -
 .../controllers/agile_boards_controller.rb    |  158 -
 .../controllers/agile_charts_controller.rb    |  140 -
 .../agile_charts_queries_controller.rb        |   21 -
 .../agile_journal_details_controller.rb       |   71 -
 .../app/helpers/agile_boards_helper.rb        |  159 -
 .../app/helpers/agile_charts_helper.rb        |   32 -
 .../app/helpers/agile_support_helper.rb       |   70 -
 .../app/models/agile_charts_query.rb          |  167 -
 .../redmine_agile/app/models/agile_data.rb    |   25 -
 .../redmine_agile/app/models/agile_query.rb   |  679 ----
 .../app/models/agile_statuses_collector.rb    |  104 -
 .../agile_boards/_add_issue_card.html.erb     |    1 -
 .../agile_boards/_backlog_column.html.erb     |   15 -
 .../app/views/agile_boards/_board.html.erb    |   26 -
 .../app/views/agile_boards/_form.html.erb     |    1 -
 .../app/views/agile_boards/_index.html.erb    |   98 -
 .../views/agile_boards/_issue_card.html.erb   |  149 -
 .../agile_boards/_issue_tooltip.html.erb      |    1 -
 .../views/agile_boards/_issues_links.html.erb |   17 -
 .../views/agile_boards/_issues_list.html.erb  |   15 -
 .../app/views/agile_boards/_members.html.erb  |    8 -
 .../agile_boards/_upgrade_to_pro.html.erb     |    9 -
 .../app/views/agile_boards/agile_data.api.rsb |    7 -
 .../views/agile_boards/autocomplete.js.erb    |    1 -
 .../app/views/agile_boards/index.html.erb     |    3 -
 .../app/views/agile_boards/index.js.erb       |    3 -
 .../agile_boards/inline_comment.html.erb      |    3 -
 .../app/views/agile_boards/load_more.js.erb   |    1 -
 .../app/views/agile_boards/update.js.erb      |    6 -
 .../views/agile_charts/_agile_charts.html.erb |    5 -
 .../app/views/agile_charts/_chart.html.erb    |   99 -
 .../agile_charts/_versions_show.html.erb      |   31 -
 .../agile_charts/select_version_chart.js.erb  |    5 -
 .../app/views/agile_charts/show.html.erb      |   67 -
 .../views/agile_charts_queries/_form.html.erb |    1 -
 .../views/agile_charts_queries/edit.html.erb  |    1 -
 .../views/agile_charts_queries/new.html.erb   |    8 -
 .../_status_detail.html.erb                   |    9 -
 .../agile_journal_details/assignee.html.erb   |   27 -
 .../agile_journal_details/done_ratio.html.erb |   28 -
 .../views/agile_journal_details/edit.html.erb |    1 -
 .../views/agile_journal_details/new.html.erb  |    1 -
 .../agile_journal_details/status.html.erb     |   70 -
 .../views/issues/_agile_data_fields.html.erb  |    9 -
 .../views/issues/_agile_data_labels.html.erb  |    1 -
 .../views/issues/_issue_spint_form.html.erb   |    1 -
 .../views/issues/_issue_story_points.html.erb |    7 -
 .../issues/_issue_story_points_form.html.erb  |    9 -
 .../views/settings/agile/_general.html.erb    |   54 -
 plugins/redmine_agile/assets/images/agile.png |  Bin 857 -> 0 bytes
 .../assets/images/fullscreen.png              |  Bin 594 -> 0 bytes
 .../javascripts/jquery.simplecolorpicker.js   |  235 --
 .../javascripts/jquery.ui.touch-punch.js      |  180 -
 .../assets/javascripts/redmine_agile.js       |  787 -----
 .../javascripts/redmine_agile_sprint.js       |   14 -
 .../stylesheets/jquery.simplecolorpicker.css  |   88 -
 .../assets/stylesheets/redmine_agile.css      |  610 ----
 plugins/redmine_agile/config/locales/de.yml   |  233 --
 plugins/redmine_agile/config/locales/en.yml   |  231 --
 plugins/redmine_agile/config/locales/es.yml   |  221 --
 plugins/redmine_agile/config/locales/fr.yml   |  106 -
 plugins/redmine_agile/config/locales/it.yml   |  221 --
 plugins/redmine_agile/config/locales/ko.yml   |   70 -
 .../redmine_agile/config/locales/pt-BR.yml    |  222 --
 plugins/redmine_agile/config/locales/pt.yml   |  222 --
 plugins/redmine_agile/config/locales/ru.yml   |  220 --
 .../redmine_agile/config/locales/zh-TW.yml    |   92 -
 plugins/redmine_agile/config/locales/zh.yml   |  133 -
 plugins/redmine_agile/config/routes.rb        |   47 -
 .../migrate/001_create_issue_status_orders.rb |   30 -
 .../db/migrate/002_create_agile_colors.rb     |   30 -
 .../migrate/003_rename_issue_status_orders.rb |   40 -
 .../db/migrate/004_rename_agile_ranks.rb      |   40 -
 .../005_add_story_points_to_agile_ranks.rb    |   24 -
 .../db/migrate/006_create_agile_sprints.rb    |   33 -
 .../007_add_sprint_id_to_agile_data.rb        |   24 -
 .../008_add_sharing_to_agile_sprint.rb        |   24 -
 plugins/redmine_agile/doc/CHANGELOG           |  346 --
 plugins/redmine_agile/doc/COPYING             |  339 --
 plugins/redmine_agile/doc/LICENSE             |   26 -
 plugins/redmine_agile/init.rb                 |   71 -
 plugins/redmine_agile/lib/redmine_agile.rb    |  133 -
 .../lib/redmine_agile/charts/agile_chart.rb   |  278 --
 .../redmine_agile/charts/burndown_chart.rb    |  112 -
 .../lib/redmine_agile/charts/charts.rb        |   98 -
 .../charts/work_burndown_chart.rb             |   69 -
 .../lib/redmine_agile/helpers/agile_helper.rb |  153 -
 .../hooks/controller_issue_hook.rb            |   50 -
 .../redmine_agile/hooks/views_issues_hook.rb  |   31 -
 .../redmine_agile/hooks/views_layouts_hook.rb |   28 -
 .../hooks/views_versions_hook.rb              |   26 -
 .../redmine_agile/patches/issue_drop_patch.rb |   44 -
 .../lib/redmine_agile/patches/issue_patch.rb  |   75 -
 .../patches/issues_controller_patch.rb        |   33 -
 .../redmine_agile/patches/project_patch.rb    |   41 -
 .../patches/projects_helper_patch.rb          |   41 -
 .../patches/queries_controller_patch.rb       |   44 -
 .../test/fixtures/agile_data.yml              |   18 -
 .../redmine_agile/test/fixtures/queries.yml   |   32 -
 .../agile_boards_controller_test.rb           |  819 -----
 .../agile_charts_controller_test.rb           |  195 -
 .../agile_journal_details_controller_test.rb  |   95 -
 .../test/functional/issues_controller_test.rb |  125 -
 .../functional/projects_controller_test.rb    |   39 -
 .../test/functional/users_controller_test.rb  |   36 -
 .../integration/api_test/agile_data_test.rb   |   77 -
 .../test/integration/common_views_test.rb     |   87 -
 plugins/redmine_agile/test/test_helper.rb     |  368 --
 .../test/ui/agile_board_ui_test.rb            |   99 -
 .../test/unit/agile_charts_query_test.rb      |   68 -
 .../test/unit/agile_data_test.rb              |   67 -
 .../test/unit/charts/burndown_chart_test.rb   |  171 -
 .../unit/helpers/agile_boards_helper_test.rb  |   59 -
 plugins/redmine_checklists/Gemfile            |    1 -
 .../app/controllers/checklists_controller.rb  |  122 -
 .../app/helpers/checklists_helper.rb          |   58 -
 .../app/models/checklist.rb                   |   79 -
 .../app/models/journal_checklist_history.rb   |  127 -
 .../views/checklists/_checklist_item.html.erb |   11 -
 .../app/views/checklists/done.js.erb          |   17 -
 .../app/views/checklists/index.api.rsb        |   15 -
 .../app/views/checklists/show.api.rsb         |   11 -
 .../app/views/issues/_checklist.html.erb      |   19 -
 .../views/issues/_checklist_fields.html.erb   |   26 -
 .../app/views/issues/_checklist_form.html.erb |   23 -
 .../settings/checklists/_checklists.html.erb  |    8 -
 .../settings/checklists/_general.html.erb     |   13 -
 .../assets/javascripts/checklists.js          |  485 ---
 .../assets/stylesheets/checklists.css         |  145 -
 .../redmine_checklists/config/locales/bg.yml  |    9 -
 .../redmine_checklists/config/locales/de.yml  |   44 -
 .../redmine_checklists/config/locales/en.yml  |   44 -
 .../redmine_checklists/config/locales/es.yml  |   28 -
 .../redmine_checklists/config/locales/fr.yml  |   44 -
 .../redmine_checklists/config/locales/hu.yml  |   47 -
 .../redmine_checklists/config/locales/it.yml  |   45 -
 .../redmine_checklists/config/locales/ja.yml  |    9 -
 .../redmine_checklists/config/locales/ko.yml  |   11 -
 .../redmine_checklists/config/locales/nl.yml  |   44 -
 .../redmine_checklists/config/locales/pl.yml  |   28 -
 .../config/locales/pt-BR.yml                  |   44 -
 .../redmine_checklists/config/locales/pt.yml  |   44 -
 .../redmine_checklists/config/locales/ru.yml  |   46 -
 .../redmine_checklists/config/locales/sk.yml  |   10 -
 .../redmine_checklists/config/locales/sv.yml  |   11 -
 .../redmine_checklists/config/locales/tr.yml  |   44 -
 .../redmine_checklists/config/locales/uk.yml  |    9 -
 .../config/locales/zh-TW.yml                  |   44 -
 .../redmine_checklists/config/locales/zh.yml  |   32 -
 plugins/redmine_checklists/config/routes.rb   |   28 -
 .../db/migrate/001_create_checklists.rb       |   38 -
 .../002_add_time_stamps_to_checklists.rb      |   25 -
 .../003_create_checklist_template_category.rb |   32 -
 .../migrate/004_create_checklist_templates.rb |   36 -
 .../005_modify_checklist_subject_length.rb    |   28 -
 .../006_add_fields_to_checklist_template.rb   |   31 -
 .../007_add_is_section_to_checklists.rb       |   24 -
 plugins/redmine_checklists/doc/CHANGELOG      |  181 -
 plugins/redmine_checklists/doc/COPYING        |  339 --
 plugins/redmine_checklists/doc/LICENSE        |   26 -
 plugins/redmine_checklists/init.rb            |   52 -
 .../lib/redmine_checklists.rb                 |   46 -
 .../hooks/controller_issues_hook.rb           |   31 -
 .../hooks/views_issues_hook.rb                |   27 -
 .../hooks/views_layouts_hook.rb               |   29 -
 .../compatibility/application_helper_patch.rb |   36 -
 .../compatibility/open_struct_patch.rb        |   37 -
 .../patches/helper_for_checklists_patch.rb    |   32 -
 .../redmine_checklists/patches/issue_patch.rb |   93 -
 .../patches/issue_query_patch.rb              |   38 -
 .../patches/issues_controller_patch.rb        |   87 -
 .../patches/issues_helper_patch.rb            |   86 -
 .../patches/notifiable_patch.rb               |   20 -
 .../patches/project_patch.rb                  |   46 -
 .../test/fixtures/checklists.yml              |   27 -
 .../functional/checklists_controller_test.rb  |   91 -
 .../test/functional/issues_controller_test.rb |  236 --
 .../integration/api_test/checklists_test.rb   |  166 -
 .../test/integration/common_issue_test.rb     |   62 -
 .../redmine_checklists/test/test_helper.rb    |   86 -
 .../test/unit/checklist_test.rb               |  138 -
 .../test/unit/issue_test.rb                   |   85 -
 .../test/unit/project_test.rb                 |   73 -
 .../README.rdoc                               |   53 -
 ...nitoring_controlling_project_controller.rb |  119 -
 ..._human_resource_mgmt_project_controller.rb |   39 -
 .../mc_time_mgmt_project_controller.rb        |   70 -
 .../_index.html.erb                           |  342 --
 .../index.html.erb                            |   83 -
 .../_scripts.html.erb                         |  163 -
 .../index.html.erb                            |   20 -
 .../app/views/mc_menu/_contentHeader.html.erb |   11 -
 .../app/views/mc_menu/_mcmenu.html.erb        |   11 -
 .../app/views/mc_menu/_progressbar.html.erb   |   96 -
 .../mc_time_mgmt_project/_scripts.html.erb    |  224 --
 .../views/mc_time_mgmt_project/index.html.erb |   23 -
 .../assets/images/loadingAnimation.gif        |  Bin 5886 -> 0 bytes
 .../assets/javascripts/exporting.js           |   23 -
 .../assets/javascripts/highcharts.js          |  239 --
 .../assets/javascripts/highstock.js           |  295 --
 .../assets/javascripts/jquery.min.js          |    4 -
 .../assets/javascripts/rails.js               |  377 --
 .../assets/javascripts/thickbox.js            |  320 --
 .../stylesheets/monitoringcontrolling.css     |   77 -
 .../assets/stylesheets/thickbox.css           |  163 -
 .../config/locales/de.yml                     |   57 -
 .../config/locales/en.yml                     |   57 -
 .../config/locales/fr.yml                     |   57 -
 .../config/locales/pl.yml                     |   57 -
 .../config/locales/pt-BR.yml                  |   57 -
 .../config/locales/ru.yml                     |   57 -
 .../config/locales/tr.yml                     |   57 -
 .../config/locales/zh.yml                     |   58 -
 .../config/routes.rb                          |   11 -
 .../redmine_monitoring_controlling/init.rb    |   25 -
 .../lang/en.yml                               |    2 -
 .../lib/mc_tools.rb                           |   60 -
 .../license.txt                               |   15 -
 .../redmine_monitoring_controlling/logo.png   |  Bin 39747 -> 0 bytes
 .../screenshotEn.png                          |  Bin 161460 -> 0 bytes
 .../screenshotPt.png                          |  Bin 164958 -> 0 bytes
 .../test/test_helper.rb                       |    5 -
 plugins/redmine_omniauth_client/Gemfile       |    4 -
 plugins/redmine_omniauth_client/Gemfile.lock  |   22 -
 plugins/redmine_omniauth_client/README.md     |   51 -
 .../controllers/redmine_oauth_controller.rb   |  223 --
 .../app/helpers/redmine_omniauth_helper.rb    |    2 -
 .../app/models/group_mapping.rb               |    2 -
 .../hooks/_view_account_login_top.html.erb    |   11 -
 .../redmine_oauth/group_mapping.html.erb      |   49 -
 .../views/settings/_client_settings.html.erb  |   81 -
 .../assets/images/bt_connect_portail.png      |  Bin 9930 -> 0 bytes
 .../assets/images/bt_connect_ror.png          |  Bin 11316 -> 0 bytes
 .../assets/images/keycloak_plugin.png         |  Bin 18377 -> 0 bytes
 .../assets/images/keycloak_plugin_small.png   |  Bin 14889 -> 0 bytes
 .../assets/stylesheets/buttons.css            |   60 -
 .../config/locales/cs.yml                     |   37 -
 .../config/locales/en.yml                     |   41 -
 .../config/locales/fr.yml                     |    6 -
 .../config/locales/ru.yml                     |    5 -
 .../redmine_omniauth_client/config/routes.rb  |    5 -
 .../db/migrate/001_create_group_mappings.rb   |    8 -
 .../db/migrate/002_update_users_ssouid.rb     |   13 -
 plugins/redmine_omniauth_client/init.rb       |   31 -
 .../lib/group_patch.rb                        |   15 -
 .../lib/redmine_omniauth_client/hooks.rb      |    9 -
 .../redmine_oauth_controller_test.rb          |  116 -
 .../test/test_helper.rb                       |    2 -
 .../test/unit/group_mapping_test.rb           |    9 -
 plugins/redmine_pivot_table                   |    1 -
 plugins/redmine_theme_changer                 |    1 -
 plugins/redmine_work_time                     |    1 -
 plugins/redmine_zulip                         |    1 -
 plugins/redmineup_tags/.drone.jsonnet         |   27 -
 plugins/redmineup_tags/Gemfile                |    1 -
 .../app/controllers/issue_tags_controller.rb  |   87 -
 .../app/controllers/tags_controller.rb        |   89 -
 .../app/helpers/issues_tags_helper.rb         |   41 -
 .../redmineup_tags/app/helpers/tags_helper.rb |  129 -
 .../views/context_menus/_issues_tags.html.erb |    6 -
 .../app/views/issue_tags/_edit_modal.html.erb |   42 -
 .../app/views/issue_tags/edit.js.erb          |    2 -
 .../app/views/issues/_tags.html.erb           |    5 -
 .../app/views/issues/_tags_form.html.erb      |   23 -
 .../app/views/issues/_tags_sidebar.html.erb   |    6 -
 .../app/views/reports/_tags_simple.html.erb   |    8 -
 .../views/tags/_additional_assets.html.erb    |    5 -
 .../app/views/tags/_general.html.erb          |   25 -
 .../app/views/tags/_manage_tags.html.erb      |   46 -
 .../_select2_transformation_rules.html.erb    |    1 -
 .../app/views/tags/_settings.html.erb         |    8 -
 .../app/views/tags/context_menu.html.erb      |   12 -
 .../app/views/tags/edit.html.erb              |   14 -
 .../app/views/tags/merge.html.erb             |   26 -
 .../redmineup_tags/assets/images/tag-icon.png |  Bin 586 -> 0 bytes
 .../assets/images/tag_blue_add.png            |  Bin 671 -> 0 bytes
 .../assets/javascripts/redmine_tags.js        |   19 -
 .../assets/stylesheets/redmine_tags.css       |   44 -
 plugins/redmineup_tags/config/locales/bg.yml  |   43 -
 plugins/redmineup_tags/config/locales/de.yml  |   36 -
 plugins/redmineup_tags/config/locales/en.yml  |   57 -
 plugins/redmineup_tags/config/locales/fr.yml  |   41 -
 .../redmineup_tags/config/locales/pt-BR.yml   |   49 -
 plugins/redmineup_tags/config/locales/ro.yml  |   36 -
 plugins/redmineup_tags/config/locales/ru.yml  |   31 -
 .../redmineup_tags/config/locales/zh-TW.yml   |   47 -
 plugins/redmineup_tags/config/locales/zh.yml  |   57 -
 plugins/redmineup_tags/config/routes.rb       |   34 -
 .../db/migrate/001_add_tags_and_taggings.rb   |   26 -
 .../db/migrate/002_create_tags.rb             |   28 -
 plugins/redmineup_tags/doc/CHANGELOG          |   97 -
 plugins/redmineup_tags/doc/COPYING            |  339 --
 plugins/redmineup_tags/doc/LICENSE            |   26 -
 plugins/redmineup_tags/init.rb                |   60 -
 .../redmineup_tags/lib/query_tags_column.rb   |   24 -
 plugins/redmineup_tags/lib/redmineup_tags.rb  |   49 -
 .../redmineup_tags/hooks/model_issue_hook.rb  |   47 -
 .../hooks/views_context_menus_hook.rb         |   26 -
 .../redmineup_tags/hooks/views_issues_hook.rb |   29 -
 .../hooks/views_layouts_hook.rb               |   27 -
 .../hooks/views_reports_hook.rb               |   26 -
 .../add_helpers_for_issue_tags_patch.rb       |   41 -
 .../patches/agile_query_patch.rb              |   70 -
 .../patches/agile_versions_query_patch.rb     |   46 -
 .../auto_completes_controller_patch.rb        |   65 -
 .../lib/redmineup_tags/patches/issue_patch.rb |  157 -
 .../patches/issue_query_patch.rb              |   93 -
 .../patches/queries_helper_patch.rb           |   53 -
 .../patches/reports_controller_patch.rb       |   65 -
 .../patches/time_entry_patch.rb               |   48 -
 .../patches/time_entry_query_patch.rb         |   84 -
 .../patches/time_report_patch.rb              |   57 -
 .../redmineup_tags/test/fixtures/taggings.yml |   68 -
 plugins/redmineup_tags/test/fixtures/tags.yml |   12 -
 .../agile_boards_controller_test.rb           |   39 -
 .../agile_versions_controller_test.rb         |   44 -
 .../auto_completes_controller_test.rb         |  108 -
 .../functional/issue_tags_controller_test.rb  |  216 --
 .../test/functional/issues_controller_test.rb |  331 --
 .../functional/reports_controller_test.rb     |   62 -
 .../test/functional/tags_controller_test.rb   |  102 -
 .../functional/timelog_controller_test.rb     |   62 -
 plugins/redmineup_tags/test/test_helper.rb    |   56 -
 .../redmineup_tags/test/unit/issue_test.rb    |   74 -
 plugins/sparkline                             |    1 -
 plugins/traffic_lights                        |    1 -
 themes/PurpleMine2                            |    1 -
 499 files changed, 2 insertions(+), 48710 deletions(-)
 delete mode 100644 .gitmodules
 delete mode 100644 plugins/easy_mindmup/Gemfile
 delete mode 100644 plugins/easy_mindmup/README.rdoc
 delete mode 100644 plugins/easy_mindmup/after_init.rb
 delete mode 100644 plugins/easy_mindmup/app/controllers/easy_mindmup_controller.rb
 delete mode 100644 plugins/easy_mindmup/app/helpers/easy_mindmup_helper.rb
 delete mode 100644 plugins/easy_mindmup/app/views/easy_mindmup/_hotkeys.html.erb
 delete mode 100644 plugins/easy_mindmup/app/views/easy_mindmup/_includes.html.erb
 delete mode 100644 plugins/easy_mindmup/app/views/easy_mindmup/_js_prepare.html.erb
 delete mode 100644 plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.eot
 delete mode 100644 plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.otf
 delete mode 100644 plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.svg
 delete mode 100644 plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.ttf
 delete mode 100644 plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.woff
 delete mode 100644 plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.woff2
 delete mode 100644 plugins/easy_mindmup/assets/images/person.gif
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/after_change.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/autosave.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/backup/last_state.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/content_patch.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/data.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/dom_patch.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/easy_wbs.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/event_bus.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/expand_all.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/external.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/filter.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/history.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/jsdocs_external.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/layout_patch.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/legend.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/legend_events.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/libs.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/link_edit_widget.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/links.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/loader.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/logger.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/main.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/map_model_patch.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mapjs_init.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/clipboard.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/content.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-view.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-widget.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/hammer-draggable.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/image-drop-widget.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/layout.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/link-edit-widget.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/map-model.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/map-toolbar-widget.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/mapjs.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/observable.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mindmup/url-helper.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/mm_context_menu.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/model_classes.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/node_patch.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/polyfill.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/print.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/redrawer.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/save_info.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/save_progress.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/saver.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/storage.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/styles.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/toolbar.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/utils.js
 delete mode 100644 plugins/easy_mindmup/assets/javascripts/validator.js
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/easy_mindmup.css
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/easy_mindmup_sass.scss.erb
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/generated/easy_mindmup.css
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/mindmup.css
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_default_variables.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_frame.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_icons.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_legend.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mapjs.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mixins.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_nodes.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_print.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_progress.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_redmine.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_schemes.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_sidebar.scss
 delete mode 100644 plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_variables.scss
 delete mode 100644 plugins/easy_mindmup/config/locales/cs.yml
 delete mode 100644 plugins/easy_mindmup/config/locales/en.yml
 delete mode 100644 plugins/easy_mindmup/config/routes.rb
 delete mode 100644 plugins/easy_mindmup/init.rb
 delete mode 100644 plugins/easy_mindmup/lib/easy_mindmup/easy_mindmup.rb
 delete mode 100644 plugins/easy_mindmup/spec/controllers/easy_wbs_controller_spec.rb
 delete mode 100644 plugins/easy_mindmup/spec/features/wbs_tree_spec.rb
 delete mode 100644 plugins/easy_wbs/Gemfile
 delete mode 100644 plugins/easy_wbs/README.rdoc
 delete mode 100644 plugins/easy_wbs/after_init.rb
 delete mode 100644 plugins/easy_wbs/app/controllers/easy_wbs_controller.rb
 delete mode 100644 plugins/easy_wbs/app/helpers/easy_wbs_helper.rb
 delete mode 100644 plugins/easy_wbs/app/models/easy_wbs/issue_query.rb
 delete mode 100644 plugins/easy_wbs/app/views/easy_query_settings/by_query/_easy_wbs_easy_issue_query_settings.html.erb
 delete mode 100644 plugins/easy_wbs/app/views/easy_wbs/_includes.html.erb
 delete mode 100644 plugins/easy_wbs/app/views/easy_wbs/_js_prepare.html.erb
 delete mode 100644 plugins/easy_wbs/app/views/easy_wbs/_test_includes.html.erb
 delete mode 100644 plugins/easy_wbs/app/views/easy_wbs/easy_queries/_show.html.erb
 delete mode 100644 plugins/easy_wbs/app/views/easy_wbs/index.api.rsb
 delete mode 100644 plugins/easy_wbs/app/views/easy_wbs/index.html.erb
 delete mode 100644 plugins/easy_wbs/assets/images/person.gif
 delete mode 100644 plugins/easy_wbs/assets/javascripts/gateway.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/tests/idea_diff.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/tests/parse_form.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/tests/printing.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/tests/saving_test.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_context_menu.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_loader.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_main.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_modals.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_node_patch.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_saver.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_styles.js
 delete mode 100644 plugins/easy_wbs/assets/javascripts/wbs_validator.js
 delete mode 100644 plugins/easy_wbs/assets/stylesheets/easy_wbs.css
 delete mode 100644 plugins/easy_wbs/assets/stylesheets/easy_wbs_old.css
 delete mode 100644 plugins/easy_wbs/config/locales/ar.yml
 delete mode 100644 plugins/easy_wbs/config/locales/cs.yml
 delete mode 100644 plugins/easy_wbs/config/locales/da.yml
 delete mode 100644 plugins/easy_wbs/config/locales/de.yml
 delete mode 100644 plugins/easy_wbs/config/locales/en-AU.yml
 delete mode 100644 plugins/easy_wbs/config/locales/en-GB.yml
 delete mode 100644 plugins/easy_wbs/config/locales/en-US.yml
 delete mode 100644 plugins/easy_wbs/config/locales/en.yml
 delete mode 100644 plugins/easy_wbs/config/locales/es.yml
 delete mode 100644 plugins/easy_wbs/config/locales/fi.yml
 delete mode 100644 plugins/easy_wbs/config/locales/fr.yml
 delete mode 100644 plugins/easy_wbs/config/locales/he.yml
 delete mode 100644 plugins/easy_wbs/config/locales/hr.yml
 delete mode 100644 plugins/easy_wbs/config/locales/hu.yml
 delete mode 100644 plugins/easy_wbs/config/locales/it.yml
 delete mode 100644 plugins/easy_wbs/config/locales/ja.yml
 delete mode 100644 plugins/easy_wbs/config/locales/ko.yml
 delete mode 100644 plugins/easy_wbs/config/locales/mk.yml
 delete mode 100644 plugins/easy_wbs/config/locales/nl.yml
 delete mode 100644 plugins/easy_wbs/config/locales/no.yml
 delete mode 100644 plugins/easy_wbs/config/locales/pl.yml
 delete mode 100644 plugins/easy_wbs/config/locales/pt-BR.yml
 delete mode 100644 plugins/easy_wbs/config/locales/pt.yml
 delete mode 100644 plugins/easy_wbs/config/locales/ro.yml
 delete mode 100644 plugins/easy_wbs/config/locales/ru.yml
 delete mode 100644 plugins/easy_wbs/config/locales/sk.yml
 delete mode 100644 plugins/easy_wbs/config/locales/sl.yml
 delete mode 100644 plugins/easy_wbs/config/locales/sq.yml
 delete mode 100644 plugins/easy_wbs/config/locales/sr-YU.yml
 delete mode 100644 plugins/easy_wbs/config/locales/sr.yml
 delete mode 100644 plugins/easy_wbs/config/locales/sv.yml
 delete mode 100644 plugins/easy_wbs/config/locales/th.yml
 delete mode 100644 plugins/easy_wbs/config/locales/tr.yml
 delete mode 100644 plugins/easy_wbs/config/locales/zh-TW.yml
 delete mode 100644 plugins/easy_wbs/config/locales/zh.yml
 delete mode 100644 plugins/easy_wbs/config/routes.rb
 delete mode 100644 plugins/easy_wbs/init.rb
 delete mode 100644 plugins/easy_wbs/lib/easy_wbs/easy_wbs.rb
 delete mode 100644 plugins/easy_wbs/lib/easy_wbs/hooks.rb
 delete mode 100644 plugins/easy_wbs/lib/easy_wbs/redmine_patch/controllers/queries_controller_patch.rb
 delete mode 100644 plugins/easy_wbs/lib/easy_wbs/redmine_patch/helpers/application_helper_patch.rb
 delete mode 100644 plugins/easy_wbs/lib/easy_wbs/redmine_patch/models/project_patch.rb
 delete mode 100644 plugins/easy_wbs/spec/controllers/easy_wbs_controller_spec.rb
 delete mode 100644 plugins/easy_wbs/spec/features/jasmine_spec.rb
 delete mode 100644 plugins/easy_wbs/spec/features/wbs_legend_spec.rb
 delete mode 100644 plugins/easy_wbs/spec/features/wbs_no_sidebar_spec.rb
 delete mode 100644 plugins/easy_wbs/spec/features/wbs_sidebar_spec.rb
 delete mode 100644 plugins/easy_wbs/spec/features/wbs_tree_spec.rb
 delete mode 100644 plugins/redmine_agile/Gemfile
 delete mode 100644 plugins/redmine_agile/README.rdoc
 delete mode 100644 plugins/redmine_agile/app/controllers/agile_boards_controller.rb
 delete mode 100644 plugins/redmine_agile/app/controllers/agile_charts_controller.rb
 delete mode 100644 plugins/redmine_agile/app/controllers/agile_charts_queries_controller.rb
 delete mode 100644 plugins/redmine_agile/app/controllers/agile_journal_details_controller.rb
 delete mode 100644 plugins/redmine_agile/app/helpers/agile_boards_helper.rb
 delete mode 100644 plugins/redmine_agile/app/helpers/agile_charts_helper.rb
 delete mode 100644 plugins/redmine_agile/app/helpers/agile_support_helper.rb
 delete mode 100644 plugins/redmine_agile/app/models/agile_charts_query.rb
 delete mode 100644 plugins/redmine_agile/app/models/agile_data.rb
 delete mode 100644 plugins/redmine_agile/app/models/agile_query.rb
 delete mode 100644 plugins/redmine_agile/app/models/agile_statuses_collector.rb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_add_issue_card.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_backlog_column.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_board.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_form.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_index.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_issue_card.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_issue_tooltip.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_issues_links.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_issues_list.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_members.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/_upgrade_to_pro.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/agile_data.api.rsb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/autocomplete.js.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/index.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/index.js.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/inline_comment.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/load_more.js.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_boards/update.js.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts/_agile_charts.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts/_chart.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts/_versions_show.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts/select_version_chart.js.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts/show.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts_queries/_form.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts_queries/edit.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_charts_queries/new.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_journal_details/_status_detail.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_journal_details/assignee.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_journal_details/done_ratio.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_journal_details/edit.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_journal_details/new.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/agile_journal_details/status.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/issues/_agile_data_fields.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/issues/_agile_data_labels.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/issues/_issue_spint_form.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/issues/_issue_story_points.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/issues/_issue_story_points_form.html.erb
 delete mode 100644 plugins/redmine_agile/app/views/settings/agile/_general.html.erb
 delete mode 100644 plugins/redmine_agile/assets/images/agile.png
 delete mode 100644 plugins/redmine_agile/assets/images/fullscreen.png
 delete mode 100644 plugins/redmine_agile/assets/javascripts/jquery.simplecolorpicker.js
 delete mode 100644 plugins/redmine_agile/assets/javascripts/jquery.ui.touch-punch.js
 delete mode 100644 plugins/redmine_agile/assets/javascripts/redmine_agile.js
 delete mode 100644 plugins/redmine_agile/assets/javascripts/redmine_agile_sprint.js
 delete mode 100644 plugins/redmine_agile/assets/stylesheets/jquery.simplecolorpicker.css
 delete mode 100644 plugins/redmine_agile/assets/stylesheets/redmine_agile.css
 delete mode 100644 plugins/redmine_agile/config/locales/de.yml
 delete mode 100644 plugins/redmine_agile/config/locales/en.yml
 delete mode 100644 plugins/redmine_agile/config/locales/es.yml
 delete mode 100644 plugins/redmine_agile/config/locales/fr.yml
 delete mode 100644 plugins/redmine_agile/config/locales/it.yml
 delete mode 100644 plugins/redmine_agile/config/locales/ko.yml
 delete mode 100644 plugins/redmine_agile/config/locales/pt-BR.yml
 delete mode 100644 plugins/redmine_agile/config/locales/pt.yml
 delete mode 100644 plugins/redmine_agile/config/locales/ru.yml
 delete mode 100644 plugins/redmine_agile/config/locales/zh-TW.yml
 delete mode 100644 plugins/redmine_agile/config/locales/zh.yml
 delete mode 100644 plugins/redmine_agile/config/routes.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/001_create_issue_status_orders.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/002_create_agile_colors.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/003_rename_issue_status_orders.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/004_rename_agile_ranks.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/005_add_story_points_to_agile_ranks.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/006_create_agile_sprints.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/007_add_sprint_id_to_agile_data.rb
 delete mode 100644 plugins/redmine_agile/db/migrate/008_add_sharing_to_agile_sprint.rb
 delete mode 100644 plugins/redmine_agile/doc/CHANGELOG
 delete mode 100644 plugins/redmine_agile/doc/COPYING
 delete mode 100644 plugins/redmine_agile/doc/LICENSE
 delete mode 100644 plugins/redmine_agile/init.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/charts/agile_chart.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/charts/burndown_chart.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/charts/charts.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/charts/work_burndown_chart.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/helpers/agile_helper.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/hooks/controller_issue_hook.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/hooks/views_issues_hook.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/hooks/views_layouts_hook.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/hooks/views_versions_hook.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/patches/issue_drop_patch.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/patches/issue_patch.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/patches/issues_controller_patch.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/patches/project_patch.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/patches/projects_helper_patch.rb
 delete mode 100644 plugins/redmine_agile/lib/redmine_agile/patches/queries_controller_patch.rb
 delete mode 100644 plugins/redmine_agile/test/fixtures/agile_data.yml
 delete mode 100644 plugins/redmine_agile/test/fixtures/queries.yml
 delete mode 100644 plugins/redmine_agile/test/functional/agile_boards_controller_test.rb
 delete mode 100644 plugins/redmine_agile/test/functional/agile_charts_controller_test.rb
 delete mode 100644 plugins/redmine_agile/test/functional/agile_journal_details_controller_test.rb
 delete mode 100644 plugins/redmine_agile/test/functional/issues_controller_test.rb
 delete mode 100644 plugins/redmine_agile/test/functional/projects_controller_test.rb
 delete mode 100644 plugins/redmine_agile/test/functional/users_controller_test.rb
 delete mode 100644 plugins/redmine_agile/test/integration/api_test/agile_data_test.rb
 delete mode 100644 plugins/redmine_agile/test/integration/common_views_test.rb
 delete mode 100644 plugins/redmine_agile/test/test_helper.rb
 delete mode 100644 plugins/redmine_agile/test/ui/agile_board_ui_test.rb
 delete mode 100644 plugins/redmine_agile/test/unit/agile_charts_query_test.rb
 delete mode 100644 plugins/redmine_agile/test/unit/agile_data_test.rb
 delete mode 100644 plugins/redmine_agile/test/unit/charts/burndown_chart_test.rb
 delete mode 100644 plugins/redmine_agile/test/unit/helpers/agile_boards_helper_test.rb
 delete mode 100644 plugins/redmine_checklists/Gemfile
 delete mode 100644 plugins/redmine_checklists/app/controllers/checklists_controller.rb
 delete mode 100644 plugins/redmine_checklists/app/helpers/checklists_helper.rb
 delete mode 100644 plugins/redmine_checklists/app/models/checklist.rb
 delete mode 100644 plugins/redmine_checklists/app/models/journal_checklist_history.rb
 delete mode 100644 plugins/redmine_checklists/app/views/checklists/_checklist_item.html.erb
 delete mode 100644 plugins/redmine_checklists/app/views/checklists/done.js.erb
 delete mode 100644 plugins/redmine_checklists/app/views/checklists/index.api.rsb
 delete mode 100644 plugins/redmine_checklists/app/views/checklists/show.api.rsb
 delete mode 100644 plugins/redmine_checklists/app/views/issues/_checklist.html.erb
 delete mode 100644 plugins/redmine_checklists/app/views/issues/_checklist_fields.html.erb
 delete mode 100644 plugins/redmine_checklists/app/views/issues/_checklist_form.html.erb
 delete mode 100644 plugins/redmine_checklists/app/views/settings/checklists/_checklists.html.erb
 delete mode 100644 plugins/redmine_checklists/app/views/settings/checklists/_general.html.erb
 delete mode 100644 plugins/redmine_checklists/assets/javascripts/checklists.js
 delete mode 100644 plugins/redmine_checklists/assets/stylesheets/checklists.css
 delete mode 100644 plugins/redmine_checklists/config/locales/bg.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/de.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/en.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/es.yml
 delete mode 100755 plugins/redmine_checklists/config/locales/fr.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/hu.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/it.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/ja.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/ko.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/nl.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/pl.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/pt-BR.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/pt.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/ru.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/sk.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/sv.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/tr.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/uk.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/zh-TW.yml
 delete mode 100644 plugins/redmine_checklists/config/locales/zh.yml
 delete mode 100644 plugins/redmine_checklists/config/routes.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/001_create_checklists.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/002_add_time_stamps_to_checklists.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/003_create_checklist_template_category.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/004_create_checklist_templates.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/005_modify_checklist_subject_length.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/006_add_fields_to_checklist_template.rb
 delete mode 100644 plugins/redmine_checklists/db/migrate/007_add_is_section_to_checklists.rb
 delete mode 100644 plugins/redmine_checklists/doc/CHANGELOG
 delete mode 100644 plugins/redmine_checklists/doc/COPYING
 delete mode 100644 plugins/redmine_checklists/doc/LICENSE
 delete mode 100644 plugins/redmine_checklists/init.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/hooks/controller_issues_hook.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/hooks/views_issues_hook.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/hooks/views_layouts_hook.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/application_helper_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/open_struct_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/helper_for_checklists_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/issue_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/issue_query_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/issues_controller_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/issues_helper_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/notifiable_patch.rb
 delete mode 100644 plugins/redmine_checklists/lib/redmine_checklists/patches/project_patch.rb
 delete mode 100644 plugins/redmine_checklists/test/fixtures/checklists.yml
 delete mode 100644 plugins/redmine_checklists/test/functional/checklists_controller_test.rb
 delete mode 100644 plugins/redmine_checklists/test/functional/issues_controller_test.rb
 delete mode 100644 plugins/redmine_checklists/test/integration/api_test/checklists_test.rb
 delete mode 100644 plugins/redmine_checklists/test/integration/common_issue_test.rb
 delete mode 100644 plugins/redmine_checklists/test/test_helper.rb
 delete mode 100644 plugins/redmine_checklists/test/unit/checklist_test.rb
 delete mode 100644 plugins/redmine_checklists/test/unit/issue_test.rb
 delete mode 100644 plugins/redmine_checklists/test/unit/project_test.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/README.rdoc
 delete mode 100644 plugins/redmine_monitoring_controlling/app/controllers/home_monitoring_controlling_project_controller.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/controllers/mc_human_resource_mgmt_project_controller.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/controllers/mc_time_mgmt_project_controller.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/_index.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/index.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/_scripts.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/index.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_menu/_contentHeader.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_menu/_mcmenu.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_menu/_progressbar.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/_scripts.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/index.html.erb
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/images/loadingAnimation.gif
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/javascripts/exporting.js
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/javascripts/highcharts.js
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/javascripts/highstock.js
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/javascripts/jquery.min.js
 delete mode 100755 plugins/redmine_monitoring_controlling/assets/javascripts/rails.js
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/javascripts/thickbox.js
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/stylesheets/monitoringcontrolling.css
 delete mode 100644 plugins/redmine_monitoring_controlling/assets/stylesheets/thickbox.css
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/de.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/en.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/fr.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/pl.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/pt-BR.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/ru.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/tr.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/locales/zh.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/config/routes.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/init.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/lang/en.yml
 delete mode 100644 plugins/redmine_monitoring_controlling/lib/mc_tools.rb
 delete mode 100644 plugins/redmine_monitoring_controlling/license.txt
 delete mode 100644 plugins/redmine_monitoring_controlling/logo.png
 delete mode 100644 plugins/redmine_monitoring_controlling/screenshotEn.png
 delete mode 100644 plugins/redmine_monitoring_controlling/screenshotPt.png
 delete mode 100644 plugins/redmine_monitoring_controlling/test/test_helper.rb
 delete mode 100644 plugins/redmine_omniauth_client/Gemfile
 delete mode 100644 plugins/redmine_omniauth_client/Gemfile.lock
 delete mode 100644 plugins/redmine_omniauth_client/README.md
 delete mode 100644 plugins/redmine_omniauth_client/app/controllers/redmine_oauth_controller.rb
 delete mode 100644 plugins/redmine_omniauth_client/app/helpers/redmine_omniauth_helper.rb
 delete mode 100644 plugins/redmine_omniauth_client/app/models/group_mapping.rb
 delete mode 100644 plugins/redmine_omniauth_client/app/views/hooks/_view_account_login_top.html.erb
 delete mode 100644 plugins/redmine_omniauth_client/app/views/redmine_oauth/group_mapping.html.erb
 delete mode 100644 plugins/redmine_omniauth_client/app/views/settings/_client_settings.html.erb
 delete mode 100644 plugins/redmine_omniauth_client/assets/images/bt_connect_portail.png
 delete mode 100644 plugins/redmine_omniauth_client/assets/images/bt_connect_ror.png
 delete mode 100644 plugins/redmine_omniauth_client/assets/images/keycloak_plugin.png
 delete mode 100644 plugins/redmine_omniauth_client/assets/images/keycloak_plugin_small.png
 delete mode 100644 plugins/redmine_omniauth_client/assets/stylesheets/buttons.css
 delete mode 100644 plugins/redmine_omniauth_client/config/locales/cs.yml
 delete mode 100644 plugins/redmine_omniauth_client/config/locales/en.yml
 delete mode 100644 plugins/redmine_omniauth_client/config/locales/fr.yml
 delete mode 100644 plugins/redmine_omniauth_client/config/locales/ru.yml
 delete mode 100644 plugins/redmine_omniauth_client/config/routes.rb
 delete mode 100644 plugins/redmine_omniauth_client/db/migrate/001_create_group_mappings.rb
 delete mode 100644 plugins/redmine_omniauth_client/db/migrate/002_update_users_ssouid.rb
 delete mode 100644 plugins/redmine_omniauth_client/init.rb
 delete mode 100644 plugins/redmine_omniauth_client/lib/group_patch.rb
 delete mode 100644 plugins/redmine_omniauth_client/lib/redmine_omniauth_client/hooks.rb
 delete mode 100644 plugins/redmine_omniauth_client/test/functional/redmine_oauth_controller_test.rb
 delete mode 100644 plugins/redmine_omniauth_client/test/test_helper.rb
 delete mode 100644 plugins/redmine_omniauth_client/test/unit/group_mapping_test.rb
 delete mode 160000 plugins/redmine_pivot_table
 delete mode 160000 plugins/redmine_theme_changer
 delete mode 160000 plugins/redmine_work_time
 delete mode 160000 plugins/redmine_zulip
 delete mode 100644 plugins/redmineup_tags/.drone.jsonnet
 delete mode 100644 plugins/redmineup_tags/Gemfile
 delete mode 100644 plugins/redmineup_tags/app/controllers/issue_tags_controller.rb
 delete mode 100644 plugins/redmineup_tags/app/controllers/tags_controller.rb
 delete mode 100644 plugins/redmineup_tags/app/helpers/issues_tags_helper.rb
 delete mode 100644 plugins/redmineup_tags/app/helpers/tags_helper.rb
 delete mode 100644 plugins/redmineup_tags/app/views/context_menus/_issues_tags.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/issue_tags/_edit_modal.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/issue_tags/edit.js.erb
 delete mode 100644 plugins/redmineup_tags/app/views/issues/_tags.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/issues/_tags_form.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/issues/_tags_sidebar.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/reports/_tags_simple.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/_additional_assets.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/_general.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/_manage_tags.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/_select2_transformation_rules.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/_settings.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/context_menu.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/edit.html.erb
 delete mode 100644 plugins/redmineup_tags/app/views/tags/merge.html.erb
 delete mode 100644 plugins/redmineup_tags/assets/images/tag-icon.png
 delete mode 100644 plugins/redmineup_tags/assets/images/tag_blue_add.png
 delete mode 100644 plugins/redmineup_tags/assets/javascripts/redmine_tags.js
 delete mode 100644 plugins/redmineup_tags/assets/stylesheets/redmine_tags.css
 delete mode 100644 plugins/redmineup_tags/config/locales/bg.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/de.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/en.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/fr.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/pt-BR.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/ro.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/ru.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/zh-TW.yml
 delete mode 100644 plugins/redmineup_tags/config/locales/zh.yml
 delete mode 100644 plugins/redmineup_tags/config/routes.rb
 delete mode 100644 plugins/redmineup_tags/db/migrate/001_add_tags_and_taggings.rb
 delete mode 100644 plugins/redmineup_tags/db/migrate/002_create_tags.rb
 delete mode 100755 plugins/redmineup_tags/doc/CHANGELOG
 delete mode 100644 plugins/redmineup_tags/doc/COPYING
 delete mode 100644 plugins/redmineup_tags/doc/LICENSE
 delete mode 100644 plugins/redmineup_tags/init.rb
 delete mode 100644 plugins/redmineup_tags/lib/query_tags_column.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/hooks/model_issue_hook.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/hooks/views_context_menus_hook.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/hooks/views_issues_hook.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/hooks/views_layouts_hook.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/hooks/views_reports_hook.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/add_helpers_for_issue_tags_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/agile_query_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/agile_versions_query_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/auto_completes_controller_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/issue_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/issue_query_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/queries_helper_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/reports_controller_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_query_patch.rb
 delete mode 100644 plugins/redmineup_tags/lib/redmineup_tags/patches/time_report_patch.rb
 delete mode 100644 plugins/redmineup_tags/test/fixtures/taggings.yml
 delete mode 100644 plugins/redmineup_tags/test/fixtures/tags.yml
 delete mode 100644 plugins/redmineup_tags/test/functional/agile_boards_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/agile_versions_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/auto_completes_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/issue_tags_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/issues_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/reports_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/tags_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/functional/timelog_controller_test.rb
 delete mode 100644 plugins/redmineup_tags/test/test_helper.rb
 delete mode 100644 plugins/redmineup_tags/test/unit/issue_test.rb
 delete mode 160000 plugins/sparkline
 delete mode 160000 plugins/traffic_lights
 delete mode 160000 themes/PurpleMine2

diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 45084dc..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,24 +0,0 @@
-[submodule "themes/PurpleMine2"]
-	path = themes/PurpleMine2
-	url = https://github.com/mrliptontea/PurpleMine2.git
-[submodule "plugins/redmine_pivot_table"]
-	path = plugins/redmine_pivot_table
-	url = https://github.com/deecay/redmine_pivot_table.git
-[submodule "plugins/issue_charts"]
-	path = plugins/issue_charts
-	url = https://github.com/masweetman/issue_charts.git
-[submodule "plugins/redmine_zulip"]
-	path = plugins/redmine_zulip
-	url = https://github.com/zulip/zulip-redmine-plugin.git
-[submodule "plugins/redmine-signals-plugin"]
-	path = plugins/traffic_lights
-	url = https://gitlab.pirati.cz/sperling/redmine-signals-plugin.git
-[submodule "plugins/redmine_theme_changer"]
-	path = plugins/redmine_theme_changer
-	url = https://github.com/haru/redmine_theme_changer.git
-[submodule "plugins/redmine_work_time"]
-	path = plugins/redmine_work_time
-	url = https://github.com/tkusukawa/redmine_work_time.git
-[submodule "plugins/sparkline"]
-	path = plugins/sparkline
-	url = https://gitlab.pirati.cz/sperling/redmine-sparkline-plugin.git
diff --git a/Dockerfile b/Dockerfile
index 1f64057..b0dc316 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,4 @@
-FROM redmine:4.2.10-passenger
+FROM redmine:5.1.3
 MAINTAINER Andrej Ramašeuski <andrej.ramaseuski@pirati.cz>
 
-RUN	apt-get update && \
-	apt-get install -y --no-install-recommends \
-    build-essential && \
-    apt-get remove -y libgs9 ghostscript libgs9-common
-
-COPY ./themes/ /usr/src/redmine/public/themes/
-COPY ./plugins/ /usr/src/redmine/plugins/
+RUN	apt update && apt install ruby-dev
diff --git a/plugins/easy_mindmup/Gemfile b/plugins/easy_mindmup/Gemfile
deleted file mode 100644
index 772940c..0000000
--- a/plugins/easy_mindmup/Gemfile
+++ /dev/null
@@ -1 +0,0 @@
-gem 'redmine_extensions' unless Dir.exist?(File.expand_path('../../easyproject', __FILE__))
diff --git a/plugins/easy_mindmup/README.rdoc b/plugins/easy_mindmup/README.rdoc
deleted file mode 100644
index 5819ee8..0000000
--- a/plugins/easy_mindmup/README.rdoc
+++ /dev/null
@@ -1,3 +0,0 @@
-= Easy MindMup
-
-Mind map library compatible with EasyProject and Redmine
\ No newline at end of file
diff --git a/plugins/easy_mindmup/after_init.rb b/plugins/easy_mindmup/after_init.rb
deleted file mode 100644
index 560a27c..0000000
--- a/plugins/easy_mindmup/after_init.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-app_dir = File.join(File.dirname(__FILE__), 'app')
-lib_dir = File.join(File.dirname(__FILE__), 'lib', 'easy_mindmup')
-
-RedmineExtensions::Reloader.to_prepare do
-  require 'easy_mindmup/easy_mindmup'
-end
diff --git a/plugins/easy_mindmup/app/controllers/easy_mindmup_controller.rb b/plugins/easy_mindmup/app/controllers/easy_mindmup_controller.rb
deleted file mode 100644
index 64933b6..0000000
--- a/plugins/easy_mindmup/app/controllers/easy_mindmup_controller.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-class EasyMindmupController < ApplicationController
-  accept_api_auth :update_layout
-
-  before_action :find_project_by_project_id
-  before_action :authorize
-
-  # Save mindmup layout
-  #
-  #   PUT update_layout
-  #   {
-  #     easy_setting: {
-  #       *_layout: { ... }
-  #     }
-  #   }
-  #
-  def update_layout
-    if params[:easy_setting].is_a?(Hash)
-      params[:easy_setting].each do |name, value|
-        next unless name.end_with?('_layout')
-        next unless value.is_a?(Hash)
-
-        # Convert `ActionController::Parameters` to `Hash`
-        value = value.to_hash
-
-        setting = EasySetting.find_or_initialize_by(name: name, project_id: @project.id)
-        setting.value = value
-        setting.save
-      end
-    end
-
-    respond_to do |format|
-      format.api { render_api_ok }
-    end
-  end
-
-  private
-
-    def authorize
-      unless User.current.allowed_to?(:edit_project, @project)
-        return render_403
-      end
-    end
-
-end
diff --git a/plugins/easy_mindmup/app/helpers/easy_mindmup_helper.rb b/plugins/easy_mindmup/app/helpers/easy_mindmup_helper.rb
deleted file mode 100644
index a72e35a..0000000
--- a/plugins/easy_mindmup/app/helpers/easy_mindmup_helper.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-module EasyMindmupHelper
-
-  # def avatar_url_from_avatar(avatar_html)
-  #   start_index = avatar_html.index('src="')
-  #   return '' if start_index.nil?
-  #   start_index += 5
-  #   end_index = avatar_html.index('"', start_index)
-  #   avatar_html[start_index, end_index - start_index]
-  # end
-
-  def mindmup_avatar_url(user)
-    if defined?(avatar_url)
-      avatar_url(user)
-    elsif Setting.gravatar_enabled?
-      gravatar_url(user.mail.to_s.downcase, size: 64, default: Setting.gravatar_default)
-    else
-      ''
-    end
-  end
-
-end
diff --git a/plugins/easy_mindmup/app/views/easy_mindmup/_hotkeys.html.erb b/plugins/easy_mindmup/app/views/easy_mindmup/_hotkeys.html.erb
deleted file mode 100644
index 2e12624..0000000
--- a/plugins/easy_mindmup/app/views/easy_mindmup/_hotkeys.html.erb
+++ /dev/null
@@ -1,31 +0,0 @@
-  <div class="mindmup-hotkeys-source" style="display:none">
-    <h3 class="title"><%= l(:title_shortcuts, :scope => [:easy_mindmup, :hotkeys]) %></h3>
-    <h1><%= l(:title_key_shortcuts, :scope => [:easy_mindmup, :hotkeys]) %></h1>
-    <p><%= l(:info_mac_metakey, :scope => [:easy_mindmup, :hotkeys]) %></p>
-    <table class="table table-striped">
-    <colgroup><col width="30%"></col><col width="70%"></col></colgroup>
-    <tbody>
-      <% l(:keyboard, :scope => [:easy_mindmup, :hotkeys]).each do |group| %>
-        <tr>
-          <td colspan="2"><h2><%= group[:title] %></h2></td>
-        </tr>
-        <% group[:hotkeys].each do |item| %>
-          <tr>
-            <td><%= item[:hotkey] %></td>
-            <td><%= item[:info] %></td>
-          </tr>
-        <% end
-      end %>
-    </tbody>
-    </table>
-    <h1><%= l(:title_mouse_shortcuts, :scope => [:easy_mindmup, :hotkeys]) %></h1>
-    <table class="table table-striped">
-    <colgroup><col width="20%"></col><col width="80%"></col></colgroup>
-      <% l(:mouse, :scope => [:easy_mindmup, :hotkeys]).each do |item| %>
-        <tr>
-          <td><%= item[:action] %></td>
-          <td><%= item[:gesture] %></td>
-        </tr>
-      <% end %>
-    </table>
-  </div>
\ No newline at end of file
diff --git a/plugins/easy_mindmup/app/views/easy_mindmup/_includes.html.erb b/plugins/easy_mindmup/app/views/easy_mindmup/_includes.html.erb
deleted file mode 100644
index 842e70d..0000000
--- a/plugins/easy_mindmup/app/views/easy_mindmup/_includes.html.erb
+++ /dev/null
@@ -1,77 +0,0 @@
-<% include_calendar_headers_tags %>
-<% heads_for_wiki_formatter %>
-<% if defined?(EasyExtensions) %>
-  <%= stylesheet_link_tag('easy_mindmup', :media => 'all') %>
-<% else %>
-  <%= stylesheet_link_tag('generated/easy_mindmup', :plugin => 'easy_mindmup', :media => 'all') %>
-  <%#= stylesheet_link_tag('easy_mindmup', :plugin => 'easy_mindmup', :media => 'all') %>
-  <%= stylesheet_link_tag('context_menu', :media => 'all') %>
-<% end %>
-<%= javascript_include_tag('external', :plugin => 'easy_mindmup') %>
-<% if false && defined?(EasyExtensions) %>
-  <%= javascript_include_tag('easy_wbs', :plugin => 'easy_mindmup') %>
-<% else %>
-    <script type="application/javascript">
-        window.easyDartLoaders = window.easyDartLoaders || [];
-    </script>
-  <%= begin javascript_include_tag(
-        'mindmup/mapjs',
-        'mindmup/clipboard',
-        'mindmup/content',
-        'mindmup/dom-map-view',
-        'mindmup/dom-map-widget',
-        'mindmup/hammer-draggable',
-        'mindmup/image-drop-widget',
-        'mindmup/layout',
-        #'mindmup/link-edit-widget',
-        'mindmup/map-model',
-        'mindmup/map-toolbar-widget',
-        'mindmup/observable',
-        'mindmup/url-helper', :plugin => 'easy_mindmup')
-      end %>
-  <%= begin javascript_include_tag(
-        :libs,
-        :polyfill,
-        :utils,
-        :main,
-        :mapjs_init,
-        :event_bus,
-        :redrawer,
-        :toolbar,
-        :history,
-        :data,
-        :links,
-        :loader,
-        # :last_state,
-        :saver,
-        :autosave,
-        :save_progress,
-        :save_info,
-        :filter,
-        :node_patch,
-        :dom_patch,
-        :map_model_patch,
-        :model_classes,
-        :after_change,
-        :styles,
-        :logger,
-        # :gateway,
-        # :modals,
-        :validator,
-        :storage,
-        :legend,
-        :legend_events,
-        :expand_all,
-        :print,
-        :mm_context_menu,
-        :layout_patch,
-        :content_patch,
-        :links,
-        :link_edit_widget, :plugin => 'easy_mindmup')
-      end %>
-<% end %>
-
-
-<% if defined?(EasyExtensions)
-     include_front_end_commons if respond_to? :include_front_end_commons
-   end %>
diff --git a/plugins/easy_mindmup/app/views/easy_mindmup/_js_prepare.html.erb b/plugins/easy_mindmup/app/views/easy_mindmup/_js_prepare.html.erb
deleted file mode 100644
index 14cb604..0000000
--- a/plugins/easy_mindmup/app/views/easy_mindmup/_js_prepare.html.erb
+++ /dev/null
@@ -1,141 +0,0 @@
-<script type="text/javascript">
-  window.easyMindMupSetting = <%= {
-    easyRedmine: EasyMindmup.easy_extensions?,
-    rootID: @project.id,
-    apiKey: User.current.api_key,
-    noSave: params[:nosave].present?,
-    allIcons: false,
-    paths: {
-      root: home_path
-    },
-    labels: {
-      free: {
-        headerNotAvailable: l('easy_mindmup.free.header_not_available'),
-        buttonUpgrade: l('easy_mindmup.free.button_upgrade')
-      },
-      errors: {
-        warning_delete_node: l('easy_mindmup.warning_delete_node'),
-        warning_delete_nodes: l('easy_mindmup.warning_delete_nodes')
-      },
-      types: {},
-      gateway: {
-        multiSuccess: l('easy_mindmup.info_all_saved'),
-        multiFail: l('easy_mindmup.info_any_failed'),
-        PUTfail: l('easy_mindmup.error_update'),
-        POSTfail: l('easy_mindmup.error_create'),
-        DELETEfail: l('easy_mindmup.error_delete'),
-        response_403: l('easy_mindmup.info_no_permission'),
-        notProperlySaved: l('easy_mindmup.warning_not_saved')
-      },
-      legend: {},
-      buttons: {
-        close: l(:button_close),
-        button_yes: l(:general_text_Yes),
-        button_no: l(:general_text_No)
-      },
-      context: {
-        expand: l('easy_mindmup.button_expand'),
-        collapse: l('easy_mindmup.button_collapse'),
-        goto: l('easy_mindmup.label_go_to'),
-        rename: l(:button_rename),
-        editData: l('easy_mindmup.button_edit_data'),
-        add: l(:button_add),
-        addChild: l('easy_mindmup.button_add_child'),
-        addSibling: l('easy_mindmup.button_add_sibling'),
-        addParent: l('easy_mindmup.button_add_parent'),
-        remove: l(:button_delete),
-      },
-      links: {
-      },
-      save_info: {
-        initial: l('easy_mindmup.save_info.loaded'),
-        saved: l('easy_mindmup.save_info.saved'),
-        autosaved: l('easy_mindmup.save_info.autosaved'),
-        at: l('easy_mindmup.save_info.at')
-      },
-      titleNodeChanged: l('easy_mindmup.title_node_changed')
-    },
-    templates: {
-      legendTemplate: %{
-        {{#filter}}
-        <div class="mindmup-legend__filter_cont">
-          <a class="easy-mindmup__icon easy-mindmup__icon--cancel_filter mindmup-legend__filter_cancel_icon"></a>
-          <a class="easy-mindmup__icon easy-mindmup__icon--filter mindmup-legend__filter_icon"></a>
-        </div>
-        {{/filter}}
-        {{#items}}
-          {{{.}}}
-        {{/items}}
-        <a href="javascript:void(0)" class="mindmup-legend-used mindmup-legend-used-used--{{active}}">#{l('easy_mindmup.label_show_unused')}</a>
-        <a href="javascript:void(0)" class="mindmup-legend-used mindmup-legend-used-all--{{active}}">#{l('easy_mindmup.label_hide_unused')}</a>
-        <div class="hotkey_link"><a href="javascript:void(0)">#{l('easy_mindmup.button_hotkeys')}</a></div>
-      },
-      upgrade: %{
-        <h3 class="title">#{l('easy_mindmup.free.header_not_available')}</h3>
-        <p>
-          {{#filtering}}
-            #{l('easy_mindmup.free.feature_filtering')}
-          {{/filtering}}
-          {{#coloring}}
-            #{l('easy_mindmup.free.feature_coloring')}
-          {{/coloring}}
-          {{#context_menu}}
-            #{l('easy_mindmup.free.feature_context_menu')}
-          {{/context_menu}}
-          {{#dnd_property}}
-            #{l('easy_mindmup.free.feature_dnd_property')}
-          {{/dnd_property}}
-          {{text}}
-        </p>
-        <a id="upgrade_link" style="display:none" href="{{href}}">link</a>
-      },
-      reloadErrors: %{
-        {{#.}}
-          <li>
-            {{#isProject}}#{l(:label_project)}{{/isProject}}
-            {{^isProject}}#{l(:label_issue)}{{/isProject}}
-            {{#changed}}
-              "{{name}}" #{l('easy_mindmup.last_state_modal.message_changed')}
-            {{/changed}}
-            {{#moved}}
-              "{{name}}" #{l('easy_mindmup.last_state_modal.message_moved')}
-            {{/moved}}
-            {{#present}}
-              "{{name}}" #{l('easy_mindmup.last_state_modal.message_present')}
-            {{/present}}
-            {{#missing}}
-              "{{name}}" #{l('easy_mindmup.last_state_modal.message_missing')}
-            {{/missing}}
-          </li>
-        {{/.}}
-      },
-      lastStateModal: %{
-        <h3 class="title">#{l('easy_mindmup.last_state_modal.title')}</h3>
-        <h4>#{l('easy_mindmup.last_state_modal.label_differencies')}:</h4>
-        <ul class="mindmup-last-modal-diffs">
-          {{{differences}}}
-        </ul>
-        <p>#{l('easy_mindmup.last_state_modal.text_reload_appeal')}</p>
-      },
-      storedModal: %{
-        <h3 class="title">#{l('easy_mindmup.stored_modal.title')}</h3>
-        <p>#{l('easy_mindmup.stored_modal.text_load_appeal')}</p>
-        <button id="stored_state_modal_local">#{l('easy_mindmup.stored_modal.button_local')}</button>
-        <button id="stored_state_modal_server">#{l('easy_mindmup.stored_modal.button_server')}</button>
-      },
-      saveProgressModal: %{
-        <div class="mindmup-progress-modal">
-          <div class="mindmup-progress-title"><h3>#{l('easy_mindmup.label_save_progress')}</h3></div>
-          <div class="mindmup-progress-cont">
-            <div class="mindmup-progress-bar">
-            </div>
-          </div>
-        </div>
-      }
-    }
-  }.to_json.html_safe %>
-
-  $(document).ready(function(){
-    $("p.nodata").remove()
-  })
-</script>
diff --git a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.eot b/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.eot
deleted file mode 100644
index c1cc0f7fd9a9233ce0235a17d8761f224c1b2aea..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 91978
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
E0CVqyKmY&$

diff --git a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.otf b/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.otf
deleted file mode 100644
index f8500754524df47597aace5f694a24f3125e129b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 239484
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
U=onO%qKkpL(I9gf7_=D}02=%c&j0`b

diff --git a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.svg b/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.svg
deleted file mode 100644
index b46f165..0000000
--- a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.svg
+++ /dev/null
@@ -1,2411 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata>
-Created by FontForge 20161004 at Mon Feb 06 14:01:27 2017
- By milos
-Copyright 2015 Google, Inc. All Rights Reserved.
-</metadata>
-<defs>
-<font id="MaterialIcons-Regular" horiz-adv-x="512" >
-  <font-face 
-    font-family="Material Icons"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="512"
-    panose-1="2 0 5 3 0 0 0 0 0 0"
-    ascent="512"
-    descent="0"
-    bbox="0 0 512 512.5"
-    underline-thickness="50"
-    underline-position="-200"
-    unicode-range="U+0030-10FFFD"
-  />
-<missing-glyph 
-d="M17 0v341h136v-341h-136zM34 17h102v307h-102v-307z" />
-    <glyph glyph-name="uniE000" unicode="error" 
-d="M277 235v128h-42v-128h42zM277 149v43h-42v-43h42zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE001" unicode="error_outline" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM235 363h42v-128h-42v128z
-M235 192h42v-43h-42v43z" />
-    <glyph glyph-name="uniE002" unicode="warning" 
-d="M277 213v86h-42v-86h42zM277 128v43h-42v-43h42zM21 64l235 405l235 -405h-470z" />
-    <glyph glyph-name="uniE003" unicode="add_alert" 
-d="M341 234v43h-64v64h-42v-64h-64v-43h64v-64h42v64h64zM403 153l45 -45v-23h-384v23l45 45v124q0 51 32 91.5t81 51.5v15q0 14 10 24t24 10t24 -10t10 -24v-15q49 -11 81 -51.5t32 -91.5v-124zM214 64h84q0 -17 -12.5 -30t-29.5 -13t-29.5 13t-12.5 30z" />
-    <glyph glyph-name="uniE019" unicode="album" 
-d="M256 277q9 0 15 -6t6 -15t-6 -15t-15 -6t-15 6t-6 15t6 15t15 6zM256 160q40 0 68 28t28 68t-28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE01B" unicode="av_timer" 
-d="M128 256q0 9 6 15t15 6t15.5 -6t6.5 -15t-6.5 -15t-15.5 -6t-15 6t-6 15zM384 256q0 -9 -6 -15t-15 -6t-15.5 6t-6.5 15t6.5 15t15.5 6t15 -6t6 -15zM235 448h21q80 0 136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136q0 96 77 153v1l145 -145l-30 -30l-116 115
-q-33 -41 -33 -94q0 -62 43.5 -105.5t105.5 -43.5t105.5 43.5t43.5 105.5q0 56 -37 98t-91 50v-41h-42v85zM235 149q0 9 6 15.5t15 6.5t15 -6.5t6 -15.5t-6 -15t-15 -6t-15 6t-6 15z" />
-    <glyph glyph-name="uniE01C" unicode="closed_caption" 
-d="M384 277v22q0 9 -6 15t-15 6h-64q-9 0 -15.5 -6t-6.5 -15v-86q0 -9 6.5 -15t15.5 -6h64q9 0 15 6t6 15v22h-32v-11h-43v64h43v-11h32zM235 277v22q0 9 -6.5 15t-15.5 6h-64q-9 0 -15 -6t-6 -15v-86q0 -9 6 -15t15 -6h64q9 0 15.5 6t6.5 15v22h-32v-11h-43v64h43v-11h32z
-M405 427q17 0 30 -13t13 -30v-256q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v256q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE01D" unicode="equalizer" 
-d="M341 320h86v-235h-86v235zM85 85v171h86v-171h-86zM213 85v342h86v-342h-86z" />
-    <glyph glyph-name="uniE01E" unicode="explicit" 
-d="M320 320v43h-128v-214h128v43h-85v43h85v42h-85v43h85zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE01F" unicode="fast_forward" 
-d="M277 384l182 -128l-182 -128v256zM85 128v256l182 -128z" />
-    <glyph glyph-name="uniE020" unicode="fast_rewind" 
-d="M245 256l182 128v-256zM235 128l-182 128l182 128v-256z" />
-    <glyph glyph-name="uniE021" unicode="games" 
-d="M352 320h117v-128h-117l-64 64zM192 160l64 64l64 -64v-117h-128v117zM160 320l64 -64l-64 -64h-117v128h117zM320 352l-64 -64l-64 64v117h128v-117z" />
-    <glyph glyph-name="uniE023" unicode="hearing" 
-d="M245 320q0 22 16 37.5t38 15.5t37.5 -15.5t15.5 -37.5t-15.5 -37.5t-37.5 -15.5t-38 15.5t-16 37.5zM163 456q-56 -56 -56 -136t56 -136l-30 -30q-69 69 -69 166t69 166zM363 85q17 0 29.5 13t12.5 30h43q0 -35 -25 -60t-60 -25q-20 0 -35 7q-41 21 -59 76q-7 22 -36 44
-q-41 30 -61 67q-23 41 -23 83q0 63 43.5 106t106.5 43t106 -43t43 -106h-43q0 45 -30.5 76t-75.5 31t-76 -31t-31 -76q0 -32 17 -63q14 -27 50 -54q40 -30 51 -64q13 -38 36 -50q8 -4 17 -4z" />
-    <glyph glyph-name="uniE024" unicode="high_quality" 
-d="M309 224v64h43v-64h-43zM384 213v86q0 9 -6 15t-15 6h-64q-9 0 -15.5 -6t-6.5 -15v-86q0 -9 6.5 -15t15.5 -6h16v-32h32v32h16q9 0 15 6t6 15zM235 192v128h-32v-53h-43v53h-32v-128h32v43h43v-43h32zM405 427q17 0 30 -13t13 -30v-256q0 -17 -13 -30t-30 -13h-298
-q-18 0 -30.5 13t-12.5 30v256q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE028" unicode="loop" 
-d="M256 128v64l85 -85l-85 -86v64q-70 0 -120.5 50.5t-50.5 120.5q0 50 27 91l31 -31q-15 -27 -15 -60q0 -53 37.5 -90.5t90.5 -37.5zM256 427q70 0 120.5 -50.5t50.5 -120.5q0 -50 -27 -91l-31 31q15 27 15 60q0 53 -37.5 90.5t-90.5 37.5v-64l-85 85l85 86v-64z" />
-    <glyph glyph-name="uniE029" unicode="mic" 
-d="M369 277h36q0 -54 -37.5 -94.5t-90.5 -48.5v-70h-42v70q-53 8 -90.5 48.5t-37.5 94.5h36q0 -47 33.5 -77.5t79.5 -30.5t79.5 30.5t33.5 77.5zM256 213q-26 0 -45 19t-19 45v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -26 -19 -45t-45 -19z" />
-    <glyph glyph-name="uniE02A" unicode="mic_none" 
-d="M369 277h36q0 -54 -37.5 -94.5t-90.5 -48.5v-70h-42v70q-53 8 -90.5 48.5t-37.5 94.5h36q0 -47 33.5 -77.5t79.5 -30.5t79.5 30.5t33.5 77.5zM230 407v-132q0 -10 7.5 -17.5t18.5 -7.5q10 0 17.5 7t7.5 18l1 132q0 11 -8 18.5t-18 7.5t-18 -7.5t-8 -18.5zM256 213
-q-26 0 -45 19t-19 45v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -26 -19 -45t-45 -19z" />
-    <glyph glyph-name="uniE02B" unicode="mic_off" 
-d="M91 448l357 -357l-27 -27l-89 89q-22 -14 -55 -19v-70h-42v70q-53 8 -90.5 48.5t-37.5 94.5h36q0 -47 33.5 -77.5t79.5 -30.5q25 0 49 11l-35 35q-8 -2 -14 -2q-26 0 -45 19t-19 45v16l-128 128zM320 274l-128 127v4q0 26 19 45t45 19t45 -19t19 -45v-131zM405 277
-q0 -37 -19 -70l-26 27q9 20 9 43h36z" />
-    <glyph glyph-name="uniE02C" unicode="movie" 
-d="M384 427h85v-299q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h22l42 -86h64l-42 86h42l43 -86h64l-43 86h43l43 -86h64z" />
-    <glyph glyph-name="uniE02E" unicode="library_add" 
-d="M405 277v43h-85v85h-43v-85h-85v-43h85v-85h43v85h85zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42z" />
-    <glyph glyph-name="uniE02F" unicode="library_books" 
-d="M405 363v42h-213v-42h213zM320 192v43h-128v-43h128zM405 277v43h-213v-43h213zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5
-v299h42z" />
-    <glyph glyph-name="uniE030" unicode="library_music" 
-d="M85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42zM384 363v42h-85v-117q-14 11 -32 11q-22 0 -38 -16t-16 -38t16 -37.5t38 -15.5t37.5 15.5t15.5 37.5v118h64zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13
-t-13 30v256q0 17 13 29.5t30 12.5h256z" />
-    <glyph glyph-name="uniE031" unicode="new_releases" 
-d="M277 235v128h-42v-128h42zM277 149v43h-42v-43h42zM491 256l-52 -59l7 -79l-77 -17l-40 -68l-73 31l-73 -31l-40 67l-77 18l7 79l-52 59l52 60l-7 78l77 17l40 68l73 -31l73 31l40 -68l77 -17l-7 -79z" />
-    <glyph glyph-name="uniE033" unicode="not_interested" 
-d="M391 151q36 45 36 105q0 70 -50.5 120.5t-120.5 50.5q-60 0 -105 -36zM256 85q60 0 105 36l-240 240q-36 -45 -36 -105q0 -70 50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5
-z" />
-    <glyph glyph-name="uniE034" unicode="pause" 
-d="M299 405h85v-298h-85v298zM128 107v298h85v-298h-85z" />
-    <glyph glyph-name="uniE035" unicode="pause_circle_filled" 
-d="M320 171v170h-43v-170h43zM235 171v170h-43v-170h43zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE036" unicode="pause_circle_outline" 
-d="M277 171v170h43v-170h-43zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z
-M192 171v170h43v-170h-43z" />
-    <glyph glyph-name="uniE037" unicode="play_arrow" 
-d="M171 405l234 -149l-234 -149v298z" />
-    <glyph glyph-name="uniE038" unicode="play_circle_filled" 
-d="M213 160l128 96l-128 96v-192zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE039" unicode="play_circle_outline" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM213 160v192l128 -96z" />
-    <glyph glyph-name="uniE03B" unicode="playlist_add" 
-d="M43 171v42h170v-42h-170zM384 213h85v-42h-85v-86h-43v86h-85v42h85v86h43v-86zM299 384v-43h-256v43h256zM299 299v-43h-256v43h256z" />
-    <glyph glyph-name="uniE03C" unicode="queue" 
-d="M405 277v43h-85v85h-43v-85h-85v-43h85v-85h43v85h85zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42z" />
-    <glyph glyph-name="uniE03D" unicode="queue_music" 
-d="M363 384h106v-43h-64v-192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19q8 0 22 -4v175zM64 171v42h171v-42h-171zM320 299v-43h-256v43h256zM320 384v-43h-256v43h256z" />
-    <glyph glyph-name="uniE03E" unicode="radio" 
-d="M427 256v85h-342v-85h256v43h43v-43h43zM149 85q26 0 45 19t19 45t-19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19zM69 381l270 110l14 -36l-176 -71h250q18 0 30 -12.5t12 -30.5v-256q0 -17 -12 -29.5t-30 -12.5h-342q-18 0 -30 12.5t-12 29.5v256q0 30 26 40z" />
-    <glyph glyph-name="uniE03F" unicode="recent_actors" 
-d="M267 149v16q0 22 -33 35t-63 13t-63 -13t-33 -35v-16h192zM171 347q-19 0 -33.5 -14.5t-14.5 -33.5t14.5 -33.5t33.5 -14.5t33.5 14.5t14.5 33.5t-14.5 33.5t-33.5 14.5zM299 405q9 0 15 -6t6 -15v-256q0 -9 -6 -15t-15 -6h-256q-9 0 -15.5 6t-6.5 15v256q0 9 6.5 15
-t15.5 6h256zM363 107v298h42v-298h-42zM448 405h43v-298h-43v298z" />
-    <glyph glyph-name="uniE040" unicode="repeat" 
-d="M363 149v86h42v-128h-256v-64l-85 85l85 85v-64h214zM149 363v-86h-42v128h256v64l85 -85l-85 -85v64h-214z" />
-    <glyph glyph-name="uniE041" unicode="repeat_one" 
-d="M277 192h-32v85h-32v22l43 21h21v-128zM363 149v86h42v-128h-256v-64l-85 85l85 85v-64h214zM149 363v-86h-42v128h256v64l85 -85l-85 -85v64h-214z" />
-    <glyph glyph-name="uniE042" unicode="replay" 
-d="M256 405q71 0 121 -50t50 -120q0 -71 -50.5 -121t-120.5 -50t-120.5 50t-50.5 121h43q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5v-86l-107 107l107 107v-86z" />
-    <glyph glyph-name="uniE043" unicode="shuffle" 
-d="M316 226l67 -67l44 44v-118h-118l44 44l-67 67zM309 427h118v-118l-44 44l-268 -268l-30 30l268 268zM226 316l-30 -30l-111 111l30 30z" />
-    <glyph glyph-name="uniE044" unicode="skip_next" 
-d="M341 384h43v-256h-43v256zM128 128v256l181 -128z" />
-    <glyph glyph-name="uniE045" unicode="skip_previous" 
-d="M203 256l181 128v-256zM128 384h43v-256h-43v256z" />
-    <glyph glyph-name="uniE046" unicode="snooze" 
-d="M192 277v43h128v-38l-77 -90h77v-43h-128v39l77 89h-77zM256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56.5t56 -135.5t-56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5z
-M469 390l-27 -33l-98 83l27 32zM168 440l-98 -82l-27 32l98 82z" />
-    <glyph glyph-name="uniE047" unicode="stop" 
-d="M128 384h256v-256h-256v256z" />
-    <glyph glyph-name="uniE048" unicode="subtitles" 
-d="M427 213v43h-214v-43h214zM427 128v43h-86v-43h86zM299 128v43h-214v-43h214zM85 256v-43h86v43h-86zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE049" unicode="surround_sound" 
-d="M256 299q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM377 135q50 50 50 121t-50 121l-31 -31q38 -38 38 -90q0 -54 -37 -91zM256 171q35 0 60 25t25 60t-25 60t-60 25t-60 -25t-25 -60t25 -60t60 -25zM166 166q-38 38 -38 90q0 54 37 91l-30 30
-q-50 -50 -50 -121t50 -121zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE04A" unicode="video_collection" 
-d="M256 203l128 96l-128 96v-192zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42z" />
-    <glyph glyph-name="uniE04B" unicode="videocam" 
-d="M363 288l85 85v-234l-85 85v-75q0 -9 -6.5 -15t-15.5 -6h-256q-9 0 -15 6t-6 15v214q0 9 6 15t15 6h256q9 0 15.5 -6t6.5 -15v-75z" />
-    <glyph glyph-name="uniE04C" unicode="videocam_off" 
-d="M70 469l378 -378l-27 -27l-68 68q-6 -4 -12 -4h-256q-9 0 -15 6t-6 15v214q0 9 6 15t15 6h16l-58 58zM448 373v-228l-239 239h132q9 0 15.5 -6t6.5 -15v-75z" />
-    <glyph glyph-name="uniE04D" unicode="volume_down" 
-d="M107 320h85l107 107v-342l-107 107h-85v128zM395 256q0 -59 -54 -86v172q54 -27 54 -86z" />
-    <glyph glyph-name="uniE04E" unicode="volume_mute" 
-d="M149 320h86l106 107v-342l-106 107h-86v128z" />
-    <glyph glyph-name="uniE04F" unicode="volume_off" 
-d="M256 427v-90l-45 45zM91 448l357 -357l-27 -27l-44 44q-37 -29 -78 -39v44q25 7 48 25l-91 91v-144l-107 107h-85v128h101l-101 101zM405 256q0 51 -29.5 90t-76.5 53v44q65 -14 107 -66.5t42 -120.5q0 -48 -22 -89l-32 33q11 27 11 56zM352 256q0 -9 -1 -13l-52 52v47
-q53 -26 53 -86z" />
-    <glyph glyph-name="uniE050" unicode="volume_up" 
-d="M299 443q65 -14 107 -66.5t42 -120.5t-42 -120.5t-107 -66.5v44q47 14 76.5 53t29.5 90t-29.5 90t-76.5 53v44zM352 256q0 -60 -53 -86v172q53 -26 53 -86zM64 320h85l107 107v-342l-107 107h-85v128z" />
-    <glyph glyph-name="uniE051" unicode="web" 
-d="M427 128v192h-86v-192h86zM320 235v85h-235v-85h235zM320 128v85h-235v-85h235zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE052" unicode="hd" 
-d="M309 224v64h43v-64h-43zM277 320v-128h86q9 0 15 6t6 15v86q0 9 -6 15t-15 6h-86zM235 192v128h-32v-53h-43v53h-32v-128h32v43h43v-43h32zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE053" unicode="sort_by_alpha" 
-d="M336 168h130v-34h-182v27l126 183h-125v34h177v-27zM106 221h83l-42 111zM130 378h35l96 -244h-39l-20 52h-109l-20 -52h-39zM219 99h99l-50 -50zM319 413h-101l50 50z" />
-    <glyph glyph-name="uniE055" unicode="airplay" 
-d="M448 448q17 0 30 -13t13 -30v-256q0 -17 -13 -29.5t-30 -12.5h-85v42h85v256h-384v-256h85v-42h-85q-17 0 -30 12.5t-13 29.5v256q0 17 13 30t30 13h384zM128 43l128 128l128 -128h-256z" />
-    <glyph glyph-name="uniE056" unicode="forward_&#x31;&#x30;" 
-d="M282 188q0 -7 10 -7q5 0 7 2l4 5q2 4 2 6v43q-2 4 -2 6t-4.5 4.5t-6.5 2.5q-3 0 -6 -3l-4 -4q-3 -4 -3 -6v-43q3 -4 3 -6zM322 209q0 -13 -2 -17l-6 -13q-7 -6 -11 -6q-2 0 -6.5 -1t-6.5 -1q-9 0 -13 2q-2 1 -5 3t-5 3q-9 5 -9 30v15q0 13 2 17l7 13q6 6 10 6q2 0 6.5 1
-t6.5 1q9 0 13 -2q2 -1 5.5 -3t5.5 -3t6 -13q2 -6 2 -17v-15zM233 171h-20v70l-21 -6v15l38 12h3v-91zM85 235q0 70 50 120t121 50v86l107 -107l-107 -107v86q-52 0 -90 -37.5t-38 -90.5t38 -90.5t90 -37.5t90 37.5t38 90.5h43q0 -71 -50.5 -121t-120.5 -50t-120.5 50
-t-50.5 121z" />
-    <glyph glyph-name="uniE057" unicode="forward_&#x33;&#x30;" 
-d="M85 235q0 70 50 120t121 50v86l107 -107l-107 -107v86q-52 0 -90 -37.5t-38 -90.5t38 -90.5t90 -37.5t90 37.5t38 90.5h43q0 -71 -50.5 -121t-120.5 -50t-120.5 50t-50.5 121zM284 188q0 -7 10 -7q5 0 7 2l4 5q2 4 2 6v43q-2 4 -2 6t-4.5 4.5t-6.5 2.5q-3 0 -6 -3l-4 -4
-q-2 -4 -2 -6v-43q2 -4 2 -6zM326 209q0 -13 -2 -17l-6 -13q-7 -6 -11 -6q-2 0 -6.5 -1t-6.5 -1q-7 0 -23 8q-2 1 -6 13q-3 9 -3 17v15q0 11 3 17l6 13q7 6 11 6q2 0 6 1t6 1q9 0 13 -2q2 -1 5.5 -3t5.5 -3t6 -13q2 -6 2 -17v-15zM213 224q15 0 15 13v4q-2 2 -2 4t-4 2h-11
-q-2 -2 -4 -2t-2 -4v-4h-22q0 8 5.5 15.5t12.5 7.5q1 0 5 1t5 1q12 0 24 -6q8 -4 8 -19v-7q-2 -4 -2 -6q0 -4 -4 -4q-2 0 -7 -5q9 -5 11 -8q4 -8 4 -13q0 -9 -2 -11q-1 -1 -3 -4t-3 -4q-4 -4 -11 -4q-2 0 -6.5 -1t-6.5 -1q-8 0 -10 2q-1 1 -5 2t-6 2q-9 5 -9 21h18v-4
-q2 -2 2 -4t4 -2h11q2 2 4 2t2 4v11q-2 2 -2 4t-4 2h-13v15h8z" />
-    <glyph glyph-name="uniE058" unicode="forward_&#x35;" 
-d="M250 222q-7 -3 -7 -4l-2 -3h-13l5 47h51v-15h-37l-2 -19q2 0 2 2q0 1 1.5 1.5t1.5 1.5h4h4q8 0 11 -3q1 -1 4 -3t4 -3q9 -9 9 -23q0 -9 -2 -11q-1 -1 -3 -5t-4 -6q-8 -8 -23 -8q-9 0 -11 2q-1 1 -4.5 2t-5.5 2q-9 5 -9 19h17q0 -10 13 -10q4 0 6 2l5 4q2 4 2 6v13l-2 4
-l-5 5q-4 2 -6 2h-4zM85 235q0 70 50 120t121 50v86l107 -107l-107 -107v86q-52 0 -90 -37.5t-38 -90.5t38 -90.5t90 -37.5t90 37.5t38 90.5h43q0 -71 -50.5 -121t-120.5 -50t-120.5 50t-50.5 121z" />
-    <glyph glyph-name="uniE059" unicode="replay_&#x31;&#x30;" 
-d="M282 188q0 -7 10 -7q5 0 7 2l4 5q2 4 2 6v43q-2 4 -2 6t-4.5 4.5t-6.5 2.5q-3 0 -6 -3l-4 -4q-3 -4 -3 -6v-43q3 -4 3 -6zM324 209q0 -13 -2 -17l-6 -13q-7 -6 -11 -6q-2 0 -6.5 -1t-6.5 -1q-9 0 -13 2q-2 1 -5 3t-5 3q-9 5 -9 30v15q0 13 2 17l7 13q6 6 10 6q2 0 6.5 1
-t6.5 1q9 0 13 -2q2 -1 5.5 -3t5.5 -3t6 -13q2 -6 2 -17v-15zM233 171h-20v70l-21 -6v15l38 12h3v-91zM256 405q71 0 121 -50t50 -120q0 -71 -50.5 -121t-120.5 -50t-120.5 50t-50.5 121h43q0 -53 38 -90.5t90 -37.5t90 37.5t38 90.5t-38 90.5t-90 37.5v-86l-107 107l107 107
-v-86z" />
-    <glyph glyph-name="uniE05A" unicode="replay_&#x33;&#x30;" 
-d="M286 188q0 -7 11 -7q4 0 6 2l4 5q2 4 2 6v43q0 1 -1 3t-1 3q0 2 -4 4.5t-6 2.5q-4 0 -7 -3l-4 -4q-2 -4 -2 -6v-43q2 -4 2 -6zM326 209q0 -13 -2 -17l-6 -13q-7 -6 -11 -6q-2 0 -6.5 -1t-6.5 -1q-7 0 -23 8q-2 1 -6 13q-3 9 -3 17v15q0 11 3 17l6 13q7 6 11 6q2 0 6 1
-t6 1q9 0 13 -2q2 -1 5.5 -3t5.5 -3t6 -13q2 -6 2 -17v-15zM213 224q15 0 15 13v4q-2 2 -2 4t-4 2h-11q-2 -2 -4 -2t-2 -4v-4h-22q0 8 5.5 15.5t12.5 7.5q1 0 5 1t5 1q12 0 24 -6q8 -4 8 -19v-7q-2 -4 -2 -6q0 -4 -4 -4q-2 0 -7 -5q9 -5 11 -8q4 -8 4 -13q0 -9 -2 -11
-q-1 -1 -3 -4t-3 -4q-4 -4 -11 -4q-2 0 -6.5 -1t-6.5 -1q-8 0 -10 2q-1 1 -5 2t-6 2q-9 5 -9 21h18v-4q2 -2 2 -4t4 -2h11q2 2 4 2t2 4v11q-2 2 -2 4t-4 2h-13v15h8zM256 405q71 0 121 -50t50 -120q0 -71 -50.5 -121t-120.5 -50t-120.5 50t-50.5 121h43q0 -53 38 -90.5
-t90 -37.5t90 37.5t38 90.5t-38 90.5t-90 37.5v-86l-107 107l107 107v-86z" />
-    <glyph glyph-name="uniE05B" unicode="replay_&#x35;" 
-d="M252 222q-7 -3 -7 -4l-2 -3h-15l5 47h51v-15h-37l-2 -19q2 0 2 2q0 1 1.5 1.5t1.5 1.5h4h4q8 0 11 -3q1 -1 4 -3t4 -3q9 -9 9 -23q0 -9 -2 -11q-1 -1 -3 -5t-4 -6t-4.5 -3.5t-3.5 -2.5q-2 -2 -13 -2q-9 0 -11 2q-1 1 -4.5 2t-5.5 2q-9 5 -9 19h17q0 -10 13 -10q4 0 6 2
-l5 4q2 4 2 6v13l-2 4l-5 5q-4 2 -6 2h-4zM256 405q71 0 121 -50t50 -120q0 -71 -50.5 -121t-120.5 -50t-120.5 50t-50.5 121h43q0 -53 38 -90.5t90 -37.5t90 37.5t38 90.5t-38 90.5t-90 37.5v-86l-107 107l107 107v-86z" />
-    <glyph glyph-name="uniE05C" unicode="add_to_queue" 
-d="M341 299v-43h-64v-64h-42v64h-64v43h64v64h42v-64h64zM448 149v256h-384v-256h384zM448 448q17 0 30 -12.5t13 -30.5l-1 -256q0 -17 -12.5 -29.5t-29.5 -12.5h-107v-43h-170v43h-107q-18 0 -30.5 12.5t-12.5 29.5v256q0 18 12.5 30.5t30.5 12.5h384z" />
-    <glyph glyph-name="uniE05D" unicode="fiber_dvr" 
-d="M448 267v21q0 14 -9 23t-23 9h-75v-128h32v43h25l18 -43h32l-19 45q19 9 19 30zM269 192l38 128h-32l-22 -73l-21 73h-32l37 -128h32zM171 224v64q0 14 -9.5 23t-22.5 9h-75v-128h75q13 0 22.5 9t9.5 23zM448 448q18 0 30.5 -12.5t12.5 -30.5v-298q0 -17 -12.5 -30
-t-30.5 -13h-384q-18 0 -30.5 13t-12.5 30v298q0 18 12.5 30.5t30.5 12.5h384zM96 288h43v-64h-43v64zM373 288h43v-21h-43v21z" />
-    <glyph glyph-name="uniE05E" unicode="fiber_new" 
-d="M437 213v107h-26v-96h-24v75h-27v-75h-24v96h-27v-107q0 -9 6.5 -15t15.5 -6h85q9 0 15 6t6 15zM288 293v27h-85v-128h85v27h-53v23h53v27h-53v24h53zM181 192v128h-26v-75l-54 75h-26v-128h26v75l55 -75h25zM427 427q18 0 30 -12.5t12 -30.5v-256q0 -18 -12 -30.5
-t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v256q0 18 12 30.5t30 12.5h342z" />
-    <glyph glyph-name="uniE05F" unicode="playlist_play" 
-d="M363 235l106 -64l-106 -64v128zM43 192v43h277v-43h-277zM405 405v-42h-362v42h362zM405 320v-43h-362v43h362z" />
-    <glyph glyph-name="uniE060" unicode="art_track" 
-d="M224 192l-48 64l-37 -48l-27 32l-37 -48h149zM256 320v-128q0 -17 -13 -30t-30 -13h-128q-17 0 -29.5 13t-12.5 30v128q0 17 12.5 30t29.5 13h128q17 0 30 -13t13 -30zM299 149v43h170v-43h-170zM469 363v-43h-170v43h170zM469 235h-170v42h170v-42z" />
-    <glyph glyph-name="uniE061" unicode="fiber_manual_record" 
-d="M85 256q0 70 50.5 120.5t120.5 50.5t120.5 -50.5t50.5 -120.5t-50.5 -120.5t-120.5 -50.5t-120.5 50.5t-50.5 120.5z" />
-    <glyph glyph-name="uniE062" unicode="fiber_smart_record" 
-d="M363 421q56 -14 92 -60t36 -105t-36 -105t-92 -60v44q38 13 61.5 46t23.5 75t-23.5 75t-61.5 46v44zM21 256q0 70 50.5 120.5t120.5 50.5t120.5 -50.5t50.5 -120.5t-50.5 -120.5t-120.5 -50.5t-120.5 50.5t-50.5 120.5z" />
-    <glyph glyph-name="uniE063" unicode="music_video" 
-d="M171 192q0 26 19 45t45 19q7 0 21 -4v132h107v-43h-64v-150q0 -26 -19 -44.5t-45 -18.5t-45 19t-19 45zM448 107v298h-384v-298h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE064" unicode="subscriptions" 
-d="M341 171l-128 69v-139zM469 256v-171q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v171q0 17 12.5 30t29.5 13h342q17 0 29.5 -13t12.5 -30zM384 469v-42h-256v42h256zM427 341h-342v43h342v-43z" />
-    <glyph glyph-name="uniE065" unicode="playlist_add_check" 
-d="M459 267l32 -32l-149 -150l-97 96l32 32l65 -64zM43 171v42h170v-42h-170zM299 384v-43h-256v43h256zM299 299v-43h-256v43h256z" />
-    <glyph glyph-name="uniE066" unicode="queue_play_next" 
-d="M512 128l-96 -96l-32 32l64 64l-64 64l32 32zM277 299h64v-43h-64v-64h-42v64h-64v43h64v64h42v-64zM448 448q17 0 30 -12.5t13 -30.5v-170h-43v170h-384v-256h320v-42h-43v-43h-170v43h-107q-18 0 -30.5 12.5t-12.5 29.5v256q0 18 12.5 30.5t30.5 12.5h384z" />
-    <glyph glyph-name="uniE067" unicode="remove_from_queue" 
-d="M341 299v-43h-170v43h170zM448 149v256h-384v-256h384zM448 448q17 0 30 -12.5t13 -30.5l-1 -256q0 -17 -12.5 -29.5t-29.5 -12.5h-107v-43h-170v43h-107q-18 0 -30.5 12.5t-12.5 29.5v256q0 18 12.5 30.5t30.5 12.5h384z" />
-    <glyph glyph-name="uniE068" unicode="slow_motion_video" 
-d="M469 256q0 -82 -55 -143t-136 -69v43q63 8 106 56.5t43 112.5t-43 112.5t-106 56.5v43q81 -8 136 -69t55 -143zM121 91l30 30q37 -28 84 -34v-43q-63 6 -114 47zM87 235q6 -47 34 -83l-30 -31q-41 51 -47 114h43zM121 361q-28 -37 -34 -84h-43q6 63 47 114zM235 425
-q-47 -6 -84 -34l-30 30q51 41 114 47v-43zM278 303l63 -47q-63 -47 -128 -96z" />
-    <glyph glyph-name="uniE069" unicode="web_asset" 
-d="M405 128v213h-298v-213h298zM405 427q18 0 30.5 -13t12.5 -30v-256q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v256q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE06A" unicode="fiber_pin" 
-d="M427 192v128h-27v-75l-53 75h-27v-128h27v75l54 -75h26zM267 192v128h-32v-128h32zM192 267v21q0 14 -9 23t-23 9h-75v-128h32v43h43q14 0 23 9.5t9 22.5zM427 427q18 0 30 -12.5t12 -30.5v-256q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v256
-q0 18 12 30.5t30 12.5h342zM117 288h43v-21h-43v21z" />
-    <glyph glyph-name="uniE06B" unicode="branding_watermark" 
-d="M448 107v128h-192v-128h192zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE06C" unicode="call_to_action" 
-d="M448 107v64h-384v-64h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE06D" unicode="featured_play_list" 
-d="M256 363v42h-192v-42h192zM256 277v43h-192v-43h192zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE06E" unicode="featured_video" 
-d="M256 256v149h-192v-149h192zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE06F" unicode="note" 
-d="M320 395v-118h117zM469 299v-171q0 -17 -12.5 -29.5t-29.5 -12.5l-342 -1q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h256z" />
-    <glyph glyph-name="uniE070" unicode="video_call" 
-d="M299 235v42h-64v64h-43v-64h-64v-42h64v-64h43v64h64zM363 288l85 85v-234l-85 85v-75q0 -9 -6.5 -15t-15.5 -6h-256q-9 0 -15 6t-6 15v214q0 9 6 15t15 6h256q9 0 15.5 -6t6.5 -15v-75z" />
-    <glyph glyph-name="uniE071" unicode="video_label" 
-d="M448 171v234h-384v-234h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE0AF" unicode="business" 
-d="M384 192v-43h-43v43h43zM384 277v-42h-43v42h43zM427 107v213h-171v-43h43v-42h-43v-43h43v-43h-43v-42h171zM213 363v42h-42v-42h42zM213 277v43h-42v-43h42zM213 192v43h-42v-43h42zM213 107v42h-42v-42h42zM128 363v42h-43v-42h43zM128 277v43h-43v-43h43zM128 192v43
-h-43v-43h43zM128 107v42h-43v-42h43zM256 363h213v-299h-426v384h213v-85z" />
-    <glyph glyph-name="uniE0B0" unicode="call" 
-d="M141 282q48 -93 141 -141l47 47q6.66667 6.66667 14.2222 6.66667q3.77778 0 7.77778 -1.66667q36 -12 76 -12q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q1.23077 -4 1.23077 -7.6213
-q0 -8.14793 -6.23077 -14.3787z" />
-    <glyph glyph-name="uniE0B1" unicode="call_end" 
-d="M256 320q-52 0 -98 -15v-66q0 -15 -12 -20q-32 -15 -57 -39q-6 -6 -15 -6t-15 6l-53 53q-6 6 -6 15t6 15q105 100 250 100t250 -100q6 -6 6 -15t-6 -15l-53 -53q-6 -6 -15 -6t-15 6q-25 24 -57 39q-12 5 -12 19v66q-50 16 -98 16z" />
-    <glyph glyph-name="uniE0B2" unicode="call_made" 
-d="M192 405h213v-213h-42v141l-248 -248l-30 30l248 248h-141v42z" />
-    <glyph glyph-name="uniE0B3" unicode="call_merge" 
-d="M160 341l96 96l96 -96h-75v-136l-128 -128l-30 30l116 115v119h-75zM363 77l-73 72l30 30l73 -72z" />
-    <glyph glyph-name="uniE0B4" unicode="call_missed" 
-d="M418 363l30 -30l-192 -192l-149 149v-98h-43v171h171v-43h-98l119 -119z" />
-    <glyph glyph-name="uniE0B5" unicode="call_received" 
-d="M427 397l-248 -248h141v-42h-213v213h42v-141l248 248z" />
-    <glyph glyph-name="uniE0B6" unicode="call_split" 
-d="M213 427l-49 -49l113 -113v-180h-42v162l-101 101l-49 -49v128h128zM299 427h128v-128l-49 49l-62 -62l-30 30l62 62z" />
-    <glyph glyph-name="uniE0B7" unicode="chat" 
-d="M384 341v43h-256v-43h256zM299 213v43h-171v-43h171zM128 320v-43h256v43h-256zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE0B8" unicode="clear_all" 
-d="M149 363h299v-43h-299v43zM64 149v43h299v-43h-299zM107 235v42h298v-42h-298z" />
-    <glyph glyph-name="uniE0B9" unicode="comment" 
-d="M384 341v43h-256v-43h256zM384 277v43h-256v-43h256zM384 213v43h-256v-43h256zM469 427v-384l-85 85h-299q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 29.5t29.5 12.5h342q17 0 29.5 -12.5t12.5 -29.5z" />
-    <glyph glyph-name="uniE0BA" unicode="contacts" 
-d="M363 149v32q0 24 -36.5 39t-70.5 15t-70.5 -15t-36.5 -39v-32h214zM256 368q-20 0 -34 -14t-14 -34t14 -34t34 -14t34 14t14 34t-14 34t-34 14zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13
-h342zM85 0v43h342v-43h-342zM427 512v-43h-342v43h342z" />
-    <glyph glyph-name="uniE0BB" unicode="dialer_sip" 
-d="M427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q47 -92 141 -141l47 47q9 9 22 5q36 -12 76 -12zM427 405v22h-22v-22h22zM384 448h64v-64h-43v-43h-21v107z
-M320 405v-64h-64v22h43v21h-43v64h64v-21h-43v-22h43zM363 448v-107h-22v107h22z" />
-    <glyph glyph-name="uniE0BC" unicode="dialpad" 
-d="M256 491q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM256 363q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM384 363q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM384 235q17 0 30 -13t13 -30t-13 -30
-t-30 -13t-30 13t-13 30t13 30t30 13zM256 235q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM384 405q-17 0 -30 13t-13 30t13 30t30 13t30 -13t13 -30t-13 -30t-30 -13zM128 235q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM128 363
-q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM128 491q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM256 107q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13z" />
-    <glyph glyph-name="uniE0BE" unicode="email" 
-d="M427 341v43l-171 -107l-171 107v-43l171 -106zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE0BF" unicode="forum" 
-d="M363 256q0 -9 -6.5 -15t-15.5 -6h-213l-85 -86v299q0 9 6 15t15 6h277q9 0 15.5 -6t6.5 -15v-192zM448 384q9 0 15 -6t6 -15v-320l-85 85h-235q-9 0 -15 6t-6 15v43h277v192h43z" />
-    <glyph glyph-name="uniE0C3" unicode="import_export" 
-d="M341 149h64l-85 -85l-85 85h64v150h42v-150zM192 448l85 -85h-64v-150h-42v150h-64z" />
-    <glyph glyph-name="uniE0C4" unicode="invert_colors_off" 
-d="M256 403l-49 -48l-30 30l79 79l121 -121q38 -38 47 -91.5t-13 -100.5l-155 154v98zM256 94v103l-102 102q-26 -34 -26 -77q0 -52 38 -90t90 -38zM441 67l7 -8l-27 -27l-58 58q-47 -38 -107 -38q-71 0 -121 50q-46 47 -49.5 112.5t37.5 115.5l-59 59l27 27
-q299 -299 350 -349z" />
-    <glyph glyph-name="uniE0C6" unicode="live_help" 
-d="M321 293q20 20 20 48q0 35 -25 60.5t-60 25.5t-60 -25.5t-25 -60.5h42q0 17 13 30t30 13t30 -13t13 -30t-13 -30l-26 -27q-25 -27 -25 -60v-11h42q0 34 25 61zM277 128v43h-42v-43h42zM405 469q17 0 30 -12.5t13 -29.5v-299q0 -17 -13 -30t-30 -13h-85l-64 -64l-64 64
-h-85q-18 0 -30.5 13t-12.5 30v299q0 17 12.5 29.5t30.5 12.5h298z" />
-    <glyph glyph-name="uniE0C7" unicode="location_off" 
-d="M250 267q109 -108 177 -176l-27 -27l-72 71q-16 -24 -34 -47t-28 -34l-10 -11q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72q0 11 4 33l-68 68l27 27l178 -178zM256 373q-23 0 -39 -18l-69 68q44 46 108 46q62 0 105.5 -43.5t43.5 -105.5q0 -48 -36 -117l-77 78
-q17 15 17 39q0 22 -15.5 37.5t-37.5 15.5z" />
-    <glyph glyph-name="uniE0C8" unicode="location_on" 
-d="M256 267q22 0 37.5 15.5t15.5 37.5t-15.5 37.5t-37.5 15.5t-37.5 -15.5t-15.5 -37.5t15.5 -37.5t37.5 -15.5zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -31 -15.5 -71t-37.5 -75t-43.5 -65.5t-36.5 -48.5l-16 -17q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72
-q0 62 43.5 105.5t105.5 43.5z" />
-    <glyph glyph-name="uniE0C9" unicode="message" 
-d="M384 341v43h-256v-43h256zM384 277v43h-256v-43h256zM384 213v43h-256v-43h256zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE0CA" unicode="chat_bubble" 
-d="M427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE0CB" unicode="chat_bubble_outline" 
-d="M427 171v256h-342v-299l43 43h299zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE0CC" unicode="no_sim" 
-d="M78 429l373 -372l-28 -28l-40 41q-12 -6 -20 -6h-214q-17 0 -29.5 13t-12.5 30v239l-56 56zM405 405v-249l-242 242l50 50h150q17 0 29.5 -13t12.5 -30z" />
-    <glyph glyph-name="uniE0CD" unicode="phone" 
-d="M141 282q48 -93 141 -141l47 47q10 10 22 5q36 -12 76 -12q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22z" />
-    <glyph glyph-name="uniE0CE" unicode="portable_wifi_off" 
-d="M70 459l21 -22l357 -357l-27 -27l-160 161h-1l-4 -1q-17 0 -30 13t-13 30l1 4l-34 34q-9 -18 -9 -38q0 -49 42 -74l-21 -37q-29 17 -46.5 46.5t-17.5 64.5q0 38 20 69l-30 31q-33 -46 -33 -100q0 -46 23 -85.5t62 -62.5l-21 -37q-49 28 -77.5 77.5t-28.5 107.5
-q0 74 44 131l-44 45zM256 427q-43 0 -80 -20l-31 31q50 31 111 31q88 0 150.5 -62.5t62.5 -150.5q0 -61 -31 -111l-32 31q21 39 21 80q0 70 -50.5 120.5t-120.5 50.5zM375 208l-35 35q1 4 1 13q0 35 -25 60t-60 25q-9 0 -13 -1l-35 35q22 9 48 9q53 0 90.5 -37.5t37.5 -90.5
-q0 -26 -9 -48z" />
-    <glyph glyph-name="uniE0CF" unicode="contact_phone" 
-d="M381 213q-8 21 -8 43t8 43h35l32 42l-42 43q-44 -33 -59 -85q-6 -21 -6 -43t6 -43q15 -52 59 -85l42 43l-32 42h-35zM299 128v21q0 29 -44 47.5t-84 18.5t-84 -18.5t-44 -47.5v-21h256zM171 384q-26 0 -45 -19t-19 -45t19 -45t45 -19t45 19t19 45t-19 45t-45 19zM469 448
-q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-426q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h426z" />
-    <glyph glyph-name="uniE0D0" unicode="contact_mail" 
-d="M469 256v128h-170v-128h170zM299 128v21q0 29 -44 47.5t-84 18.5t-84 -18.5t-44 -47.5v-21h256zM171 384q-26 0 -45 -19t-19 -45t19 -45t45 -19t45 19t19 45t-19 45t-45 19zM469 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-426q-17 0 -30 13t-13 30v298
-q0 17 13 30t30 13h426zM448 341l-64 -42l-64 42v22l64 -43l64 43v-22z" />
-    <glyph glyph-name="uniE0D1" unicode="ring_volume" 
-d="M137 303q-74 74 -76 75l30 31l76 -76zM277 469v-106h-42v106h42zM451 378l-76 -75l-30 30l76 76zM506 156q6 -6 6 -15t-6 -15l-53 -53q-6 -6 -15 -6t-15 6q-28 26 -57 40q-12 5 -12 19v66q-46 15 -98 15t-98 -15v-66q0 -15 -12 -20q-32 -15 -57 -39q-6 -6 -15 -6t-15 6
-l-53 53q-6 6 -6 15t6 15q105 100 250 100t250 -100z" />
-    <glyph glyph-name="uniE0D2" unicode="speaker_phone" 
-d="M320 85v171h-128v-171h128zM317 298q10 0 17 -7t7 -17v-207q0 -10 -7 -17t-17 -7h-122q-10 0 -17 7t-7 17v207q0 10 7 17.5t17 7.5zM256 491q96 0 165 -69l-30 -30q-56 56 -135 56t-135 -56l-30 30q69 69 165 69zM149 361q44 44 107 44t107 -44l-31 -30q-31 31 -76 31
-t-76 -31z" />
-    <glyph glyph-name="uniE0D3" unicode="stay_current_landscape" 
-d="M405 363h-298v-214h298v214zM22 363q0 17 12.5 29.5t29.5 12.5h384q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-384q-17 0 -30 12.5t-13 29.5z" />
-    <glyph glyph-name="uniE0D4" unicode="stay_current_portrait" 
-d="M363 107v298h-214v-298h214zM363 490q17 0 29.5 -12.5t12.5 -29.5v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE0D5" unicode="stay_primary_landscape" 
-d="M405 363h-298v-214h298v214zM22 363q0 17 12.5 29.5t29.5 12.5h384q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-384q-17 0 -30 12.5t-13 29.5z" />
-    <glyph glyph-name="uniE0D6" unicode="stay_primary_portrait" 
-d="M363 107v298h-214v-298h214zM363 490q17 0 29.5 -12.5t12.5 -29.5v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE0D7" unicode="swap_calls" 
-d="M384 427l85 -86h-64v-149q0 -35 -25 -60t-60 -25t-60 25t-25 60v149q0 17 -13 30t-30 13t-30 -13t-13 -30v-149h64l-85 -85l-85 85h64v149q0 35 25 60.5t60 25.5t60 -25.5t25 -60.5v-149q0 -17 13 -30t30 -13t30 13t13 30v149h-64z" />
-    <glyph glyph-name="uniE0D8" unicode="textsms" 
-d="M363 277v43h-43v-43h43zM277 277v43h-42v-43h42zM192 277v43h-43v-43h43zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE0D9" unicode="voicemail" 
-d="M395 192q31 0 52.5 22t21.5 53t-21.5 52.5t-52.5 21.5t-53 -21.5t-22 -52.5t22 -53t53 -22zM117 192q31 0 53 22t22 53t-22 52.5t-53 21.5t-52.5 -21.5t-21.5 -52.5t21.5 -53t52.5 -22zM395 384q49 0 83 -34t34 -83t-34 -83.5t-83 -34.5h-278q-49 0 -83 34.5t-34 83.5
-t34 83t83 34t83.5 -34t34.5 -83q0 -43 -27 -75h96q-27 32 -27 75q0 49 34.5 83t83.5 34z" />
-    <glyph glyph-name="uniE0DA" unicode="vpn_key" 
-d="M149 213q17 0 30 13t13 30t-13 30t-30 13t-29.5 -13t-12.5 -30t12.5 -30t29.5 -13zM270 299h221v-86h-43v-85h-85v85h-93q-13 -38 -46 -61.5t-75 -23.5q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q42 0 75 -23.5t46 -61.5z" />
-    <glyph glyph-name="uniE0DB" unicode="phonelink_erase" 
-d="M405 491q17 0 30 -13t13 -30v-384q0 -17 -13 -30t-30 -13h-213q-17 0 -30 13t-13 30v64h43v-43h213v342h-213v-43h-43v64q0 17 13 30t30 13h213zM277 337l-85 -85l85 -86l-21 -21l-85 85l-86 -85l-21 21l85 86l-85 85l21 21l86 -85l85 85z" />
-    <glyph glyph-name="uniE0DC" unicode="phonelink_lock" 
-d="M203 277v32q0 12 -9.5 20t-22.5 8t-22.5 -8t-9.5 -20v-32h64zM230 277q10 0 18 -8t8 -19v-75q0 -10 -8.5 -18t-19.5 -8h-117q-10 0 -18 8.5t-8 19.5v75q0 10 8 17.5t18 7.5v32q0 22 18.5 38t41.5 16t41 -16t18 -38v-32zM405 491q17 0 30 -13t13 -30v-384q0 -17 -13 -30
-t-30 -13h-213q-17 0 -30 13t-13 30v64h43v-43h213v342h-213v-43h-43v64q0 17 13 30t30 13h213z" />
-    <glyph glyph-name="uniE0DD" unicode="phonelink_ring" 
-d="M299 85v342h-214v-342h214zM299 491q17 0 29.5 -13t12.5 -30v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13h214zM384 303q20 -21 20 -47t-20 -45l-21 22q18 25 0 49zM429 348q40 -38 40 -91.5t-40 -90.5l-22 22q29 31 29 70.5
-t-29 67.5z" />
-    <glyph glyph-name="uniE0DE" unicode="phonelink_setup" 
-d="M405 491q17 0 30 -13t13 -30v-384q0 -17 -13 -30t-30 -13h-213q-17 0 -30 13t-13 30v64h43v-43h213v342h-213v-43h-43v64q0 17 13 30t30 13h213zM171 213q17 0 29.5 13t12.5 30t-12.5 30t-29.5 13t-30 -13t-13 -30t13 -30t30 -13zM252 245l23 -19q4 -4 2 -6l-21 -37
-q-2 -2 -6 -2l-28 11q-14 -9 -19 -11l-5 -27q-5 -5 -6 -5h-43q-2 0 -3.5 2t-0.5 3l-4 27q-5 2 -19 11l-30 -9q-2 -2 -7 3l-21 36q0 4 2 8l24 17v22l-24 17q-4 4 -2 6l21 37q2 2 7 2l27 -11q13 9 20 11l4 27q5 5 6 5h43q6 0 6 -5l5 -27q5 -2 19 -11l28 9q2 1 6 -3l21 -36
-q0 -4 -2 -6l-23 -17v-22z" />
-    <glyph glyph-name="uniE0DF" unicode="present_to_all" 
-d="M213 256h-42l85 85l85 -85h-42v-85h-86v85zM448 106v300h-384v-300h384zM448 448q18 0 30.5 -12.5t12.5 -30.5v-298q0 -18 -12.5 -30.5t-30.5 -12.5h-384q-18 0 -30.5 12.5t-12.5 30.5v298q0 18 12.5 30.5t30.5 12.5h384z" />
-    <glyph glyph-name="uniE0E0" unicode="import_contacts" 
-d="M448 117v246q-33 10 -75 10q-65 0 -117 -32v-245q52 32 117 32q39 0 75 -11zM373 416q76 0 118 -32v-311q0 -4 -3.5 -7.5t-7.5 -3.5q-3 0 -5 1q-41 22 -102 22q-65 0 -117 -32q-43 32 -117 32q-54 0 -102 -23q-1 0 -2.5 -0.5t-2.5 -0.5q-4 0 -7.5 3t-3.5 7v313
-q43 32 118 32q74 0 117 -32q43 32 117 32z" />
-    <glyph glyph-name="uniE0E1" unicode="mail_outline" 
-d="M256 277l171 107h-342zM427 128v213l-171 -106l-171 106v-213h342zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE0E2" unicode="screen_share" 
-d="M277 203l86 80l-86 80v-46q-105 -15 -128 -125q43 58 128 58v-47zM427 128h85v-43h-512v43h85q-18 0 -30 12.5t-12 30.5v213q0 18 12 30.5t30 12.5h342q17 0 29.5 -12.5t12.5 -30.5v-213q0 -17 -12.5 -30t-29.5 -13z" />
-    <glyph glyph-name="uniE0E3" unicode="stop_screen_share" 
-d="M149 192q29 40 78 52l-34 34q-32 -31 -44 -86zM51 475l421 -421l-27 -27l-58 58h-387v43h85q-18 0 -30 12.5t-12 29.5v214q0 19 14 31l-33 33zM469 170q0 -25 -22 -37l-118 118l34 32l-86 79v-45q-2 -1 -5.5 -1t-5.5 -1l-112 111h273q17 0 29.5 -12t12.5 -30v-214z
-M453 128h59v-43h-17z" />
-    <glyph glyph-name="uniE0E4" unicode="call_missed_outgoing" 
-d="M64 333l30 30l162 -162l119 119h-98v43h171v-171h-43v98l-149 -149z" />
-    <glyph glyph-name="uniE0E5" unicode="rss_feed" 
-d="M85 297q88 0 150 -62t62 -150h-61q0 62 -44.5 106.5t-106.5 44.5v61zM85 417q137 0 234.5 -97.5t97.5 -234.5h-60q0 113 -79.5 192.5t-192.5 79.5v60zM85 132q0 19 13.5 32.5t33.5 13.5t33 -13t13 -33t-13.5 -33.5t-32.5 -13.5q-20 0 -33.5 13.5t-13.5 33.5z" />
-    <glyph glyph-name="uniE145" unicode="add" 
-d="M405 235h-128v-128h-42v128h-128v42h128v128h42v-128h128v-42z" />
-    <glyph glyph-name="uniE146" unicode="add_box" 
-d="M363 235v42h-86v86h-42v-86h-86v-42h86v-86h42v86h86zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE147" unicode="add_circle" 
-d="M363 235v42h-86v86h-42v-86h-86v-42h86v-86h42v86h86zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE148" unicode="add_circle_outline" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM277 363v-86h86v-42h-86v-86h-42
-v86h-86v42h86v86h42z" />
-    <glyph glyph-name="uniE149" unicode="archive" 
-d="M109 405h294l-20 22h-256zM256 139l117 117h-74v43h-86v-43h-74zM438 400q10 -12 10 -27v-266q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v266q0 15 10 27l29 36q10 12 25 12h256q15 0 25 -12z" />
-    <glyph glyph-name="uniE14A" unicode="backspace" 
-d="M405 179l-76 77l76 77l-30 30l-76 -77l-77 77l-30 -30l77 -77l-77 -77l30 -30l77 77l76 -77zM469 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-320q-20 0 -34 19l-115 173l115 173q14 19 34 19h320z" />
-    <glyph glyph-name="uniE14B" unicode="block" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5q0 60 -36 105l-240 -240q45 -36 105 -36zM85 256q0 -60 36 -105l240 240q-45 36 -105 36q-70 0 -120.5 -50.5t-50.5 -120.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE14C" unicode="clear" 
-d="M405 375l-119 -119l119 -119l-30 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" />
-    <glyph glyph-name="uniE14D" unicode="content_copy" 
-d="M405 64v299h-234v-299h234zM405 405q17 0 30 -12.5t13 -29.5v-299q0 -17 -13 -30t-30 -13h-234q-17 0 -30 13t-13 30v299q0 17 13 29.5t30 12.5h234zM341 491v-43h-256v-299h-42v299q0 17 12.5 30t29.5 13h256z" />
-    <glyph glyph-name="uniE14E" unicode="content_cut" 
-d="M405 448h64v-21l-149 -150l-43 43zM256 245q11 0 11 11t-11 11t-11 -11t11 -11zM128 85q17 0 30 12.5t13 30.5t-13 30.5t-30 12.5t-30 -12.5t-13 -30.5t13 -30.5t30 -12.5zM128 341q17 0 30 12.5t13 30.5t-13 30.5t-30 12.5t-30 -12.5t-13 -30.5t13 -30.5t30 -12.5z
-M206 349l263 -264v-21h-64l-149 149l-50 -50q7 -15 7 -35q0 -35 -25 -60t-60 -25t-60 25t-25 60t25 60t60 25q20 0 35 -7l50 50l-50 50q-15 -7 -35 -7q-35 0 -60 25t-25 60t25 60t60 25t60 -25t25 -60q0 -20 -7 -35z" />
-    <glyph glyph-name="uniE14F" unicode="content_paste" 
-d="M405 85v342h-42v-64h-214v64h-42v-342h298zM256 469q-9 0 -15 -6t-6 -15t6 -15t15 -6t15 6t6 15t-6 15t-15 6zM405 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-298q-17 0 -30 12.5t-13 29.5v342q0 17 13 29.5t30 12.5h89q7 19 23 31t37 12t37 -12
-t23 -31h89z" />
-    <glyph glyph-name="uniE150" unicode="create" 
-d="M442 362l-39 -39l-80 80l39 39q6 6 15 6t15 -6l50 -50q6 -6 6 -15t-6 -15zM64 144l236 236l80 -80l-236 -236h-80v80z" />
-    <glyph glyph-name="uniE151" unicode="drafts" 
-d="M256 235l176 110l-176 103l-176 -103zM469 341v-213q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v213q0 25 20 37l193 113l193 -113q20 -12 20 -37z" />
-    <glyph glyph-name="uniE152" unicode="filter_list" 
-d="M128 235v42h256v-42h-256zM64 384h384v-43h-384v43zM213 128v43h86v-43h-86z" />
-    <glyph glyph-name="uniE153" unicode="flag" 
-d="M307 384h120v-213h-150l-8 42h-120v-149h-42v363h192z" />
-    <glyph glyph-name="uniE154" unicode="forward" 
-d="M256 341v86l171 -171l-171 -171v86h-171v170h171z" />
-    <glyph glyph-name="uniE155" unicode="gesture" 
-d="M296 116q14 0 28 18.5t18 56.5q-30 -8 -46 -27t-16 -32q0 -7 5 -11.5t11 -4.5zM98 365l-37 36q10 12 18 20q27 27 58 27q19 0 36.5 -15t17.5 -46q0 -30 -28 -70q-28 -39 -39 -75q-6 -17 -3.5 -29t10.5 -12q9 0 24 18q22 22 49 58q48 60 105 60q42 0 62.5 -27.5
-t23.5 -61.5h53v-53h-52q-6 -69 -37 -100t-64 -31q-28 0 -48 19.5t-20 46.5q0 33 30 69t85 46q-1 8 -1.5 11t-3 9.5t-6 9.5t-10.5 5.5t-17 2.5q-28 0 -87 -73q-17 -21 -23.5 -28.5t-18.5 -17.5t-23 -13q-35 -11 -60 13t-25 60q0 15 5.5 33t14.5 35t17 30.5t15.5 24.5t8.5 12
-q17 28 6 32q-7 3 -36 -26z" />
-    <glyph glyph-name="uniE156" unicode="inbox" 
-d="M405 192v213h-299v-213h86q0 -26 19 -45t45 -19t45 19t19 45h85zM405 448q17 0 30 -12.5t13 -30.5v-298q0 -17 -13 -30t-30 -13h-299q-18 0 -30 12.5t-12 30.5v298q0 18 12 30.5t30 12.5h299z" />
-    <glyph glyph-name="uniE157" unicode="link" 
-d="M363 363q44 0 75 -31.5t31 -75.5t-31 -75.5t-75 -31.5h-86v41h86q27 0 46.5 19.5t19.5 46.5t-19.5 46.5t-46.5 19.5h-86v41h86zM171 235v42h170v-42h-170zM83 256q0 -27 19.5 -46.5t46.5 -19.5h86v-41h-86q-44 0 -75 31.5t-31 75.5t31 75.5t75 31.5h86v-41h-86
-q-27 0 -46.5 -19.5t-19.5 -46.5z" />
-    <glyph glyph-name="uniE158" unicode="mail" 
-d="M427 341v43l-171 -107l-171 107v-43l171 -106zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE159" unicode="markunread" 
-d="M427 341v43l-171 -107l-171 107v-43l171 -106zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE15A" unicode="redo" 
-d="M393 286l76 77v-192h-192l78 77q-48 40 -110 40q-56 0 -100.5 -32.5t-61.5 -84.5l-50 16q22 68 80.5 111t131.5 43q85 0 148 -55z" />
-    <glyph glyph-name="uniE15B" unicode="remove" 
-d="M405 235h-298v42h298v-42z" />
-    <glyph glyph-name="uniE15C" unicode="remove_circle" 
-d="M363 235v42h-214v-42h214zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE15D" unicode="remove_circle_outline" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM149 277h214v-42h-214v42z" />
-    <glyph glyph-name="uniE15E" unicode="reply" 
-d="M213 320q104 -15 160.5 -79.5t74.5 -155.5q-77 109 -235 109v-87l-149 149l149 149v-85z" />
-    <glyph glyph-name="uniE15F" unicode="reply_all" 
-d="M277 320q104 -15 160.5 -79.5t74.5 -155.5q-77 109 -235 109v-87l-149 149l149 149v-85zM149 341l-85 -85l85 -85v-64l-149 149l149 149v-64z" />
-    <glyph glyph-name="uniE160" unicode="report" 
-d="M277 235v128h-42v-128h42zM256 143q11 0 19.5 8.5t8.5 19.5t-8.5 19t-19.5 8t-19.5 -8t-8.5 -19t8.5 -19.5t19.5 -8.5zM336 448l112 -112v-160l-112 -112h-160l-112 112v160l112 112h160z" />
-    <glyph glyph-name="uniE161" unicode="save" 
-d="M320 320v85h-213v-85h213zM256 107q26 0 45 19t19 45t-19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19zM363 448l85 -85v-256q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h256z" />
-    <glyph glyph-name="uniE162" unicode="select_all" 
-d="M192 320v-128h128v128h-128zM149 149v214h214v-214h-214zM320 405v43h43v-43h-43zM320 64v43h43v-43h-43zM405 149v43h43v-43h-43zM405 320v43h43v-43h-43zM405 64v43h43q0 -17 -13 -30t-30 -13zM405 235v42h43v-42h-43zM235 64v43h42v-43h-42zM192 448v-43h-43v43h43z
-M64 149v43h43v-43h-43zM107 64q-17 0 -30 13t-13 30h43v-43zM405 448q17 0 30 -13t13 -30h-43v43zM277 448v-43h-42v43h42zM64 320v43h43v-43h-43zM149 64v43h43v-43h-43zM64 235v42h43v-42h-43zM64 405q0 17 13 30t30 13v-43h-43z" />
-    <glyph glyph-name="uniE163" unicode="send" 
-d="M43 64v149l320 43l-320 43v149l448 -192z" />
-    <glyph glyph-name="uniE164" unicode="sort" 
-d="M64 235v42h256v-42h-256zM64 384h384v-43h-384v43zM64 128v43h128v-43h-128z" />
-    <glyph glyph-name="uniE165" unicode="text_format" 
-d="M256 384l-40 -107h80zM203 239l-20 -47h-44l101 235h32l101 -235h-44l-20 47h-106zM107 149h298v-42h-298v42z" />
-    <glyph glyph-name="uniE166" unicode="undo" 
-d="M267 341q73 0 131 -43t81 -111l-50 -16q-17 52 -61.5 84.5t-100.5 32.5q-62 0 -110 -40l78 -77h-192v192l76 -77q63 55 148 55z" />
-    <glyph glyph-name="uniE167" unicode="font_download" 
-d="M340 117h45l-109 278h-40l-109 -278h45l24 64h120zM427 469q17 0 29.5 -12.5t12.5 -29.5v-342q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v342q0 17 12.5 29.5t29.5 12.5h342zM212 224l44 118l44 -118h-88z" />
-    <glyph glyph-name="uniE168" unicode="move_to_inbox" 
-d="M341 299l-85 -86l-85 86h42v64h86v-64h42zM405 192v213h-299v-213h86q0 -26 19 -45t45 -19t45 19t19 45h85zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-299q-18 0 -30 12.5t-12 30.5v298q0 18 12 30.5t30 12.5h299z" />
-    <glyph glyph-name="uniE169" unicode="unarchive" 
-d="M109 405h294l-20 22h-256zM256 309l-117 -117h74v-43h86v43h74zM438 401q10 -12 10 -28v-266q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v266q0 16 10 28l29 35q10 12 25 12h256q15 0 25 -12z" />
-    <glyph glyph-name="uniE16A" unicode="next_week" 
-d="M235 117l85 86l-85 85l-22 -21l64 -64l-64 -64zM213 405v-42h86v42h-86zM299 448q17 0 29.5 -12.5t12.5 -30.5v-42h86q17 0 29.5 -13t12.5 -30v-235q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v235q0 17 12.5 30t29.5 13h86v42q0 17 12.5 30
-t29.5 13h86z" />
-    <glyph glyph-name="uniE16B" unicode="weekend" 
-d="M384 405q17 0 30 -12.5t13 -29.5v-46q-19 -7 -31 -23t-12 -37v-44h-256v44q0 21 -12 37t-31 23v46q0 17 13 29.5t30 12.5h256zM448 299q17 0 30 -13t13 -30v-107q0 -17 -13 -29.5t-30 -12.5h-384q-17 0 -30 12.5t-13 29.5v107q0 17 13 30t30 13t30 -13t13 -30v-64h298v64
-q0 17 13 30t30 13z" />
-    <glyph glyph-name="uniE16C" unicode="delete_sweep" 
-d="M299 405v-42h-256v42h64l21 22h85l22 -22h64zM64 128v213h213v-213q0 -17 -12.5 -30t-29.5 -13h-128q-17 0 -30 13t-13 30zM320 256h128v-43h-128v43zM320 341h149v-42h-149v42zM320 171h85v-43h-85v43z" />
-    <glyph glyph-name="uniE16D" unicode="low_priority" 
-d="M43 267q0 57 40.5 97.5t97.5 40.5h75v-42h-75q-40 0 -68 -28t-28 -68t28 -68t68 -28h11v42l64 -64l-64 -64v43h-11q-57 0 -97.5 41t-40.5 98zM299 171h170v-43h-170v43zM299 288h170v-43h-170v43zM299 405h170v-42h-170v42z" />
-    <glyph glyph-name="uniE190" unicode="access_alarm" 
-d="M256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56.5t56 -135.5t-56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5zM267 341v-112l85 -50l-16 -26l-101 60v128h32zM168 440
-l-98 -82l-27 32l98 82zM469 390l-27 -33l-98 83l27 32z" />
-    <glyph glyph-name="uniE191" unicode="access_alarms" 
-d="M256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136t56 136t136 56zM267 341v-113l85 -51l-17 -26l-100 62v128h32zM169 439l-99 -81l-27 32
-l98 81zM469 390l-27 -32l-99 84l28 32z" />
-    <glyph glyph-name="uniE192" unicode="access_time" 
-d="M267 363v-112l96 -57l-16 -27l-112 68v128h32zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE193" unicode="add_alarm" 
-d="M277 320v-64h64v-43h-64v-64h-42v64h-64v43h64v64h42zM256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56.5t56 -135.5t-56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5z
-M469 390l-27 -33l-98 83l27 32zM168 440l-98 -82l-27 32l98 82z" />
-    <glyph glyph-name="uniE194" unicode="airplanemode_inactive" 
-d="M64 400l27 27l336 -336l-27 -27l-123 122v-79l43 -32v-32l-75 21l-74 -21v32l42 32v117l-170 -53v42l127 80zM277 320l171 -107v-42l-68 21l-167 167v78q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-117z" />
-    <glyph glyph-name="uniE195" unicode="airplanemode_active" 
-d="M217 320zM448 171l-171 53v-117l43 -32v-32l-75 21l-74 -21v32l42 32v117l-170 -53v42l170 107v117q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-117l171 -107v-42z" />
-    <glyph glyph-name="uniE19C" unicode="battery_alert" 
-d="M277 213v107h-42v-107h42zM277 128v43h-42v-43h42zM334 427q12 0 20.5 -8.5t8.5 -20.5v-327q0 -12 -8.5 -20t-20.5 -8h-156q-12 0 -20.5 8t-8.5 20v327q0 12 8.5 20.5t20.5 8.5h35v42h86v-42h35z" />
-    <glyph glyph-name="uniE1A3" unicode="battery_charging_full" 
-d="M235 85l85 160h-43v118l-85 -160h43v-118zM334 427q12 0 20.5 -8.5t8.5 -20.5v-327q0 -12 -8.5 -20t-20.5 -8h-156q-12 0 -20.5 8t-8.5 20v327q0 12 8.5 20.5t20.5 8.5h35v42h86v-42h35z" />
-    <glyph glyph-name="uniE1A4" unicode="battery_full" 
-d="M334 427q12 0 20.5 -8.5t8.5 -20.5v-327q0 -12 -8.5 -20t-20.5 -8h-156q-12 0 -20.5 8t-8.5 20v327q0 12 8.5 20.5t20.5 8.5h35v42h86v-42h35z" />
-    <glyph glyph-name="uniE1A5" unicode="battery_std" 
-d="M334 427q12 0 20.5 -8.5t8.5 -20.5v-327q0 -12 -8.5 -20t-20.5 -8h-156q-12 0 -20.5 8t-8.5 20v327q0 12 8.5 20.5t20.5 8.5h35v42h86v-42h35z" />
-    <glyph glyph-name="uniE1A6" unicode="battery_unknown" 
-d="M305 241q15 15 15 36q0 26 -19 45t-45 19t-45 -19t-19 -45h32q0 13 9 22.5t23 9.5t23 -9.5t9 -22.5t-9 -22l-20 -20q-20 -20 -20 -43h34q0 16 18 34zM276 129v41h-40v-41h40zM334 427q12 0 20.5 -8.5t8.5 -20.5v-327q0 -12 -8.5 -20t-20.5 -8h-156q-12 0 -20.5 8t-8.5 20
-v327q0 12 8.5 20.5t20.5 8.5h35v42h86v-42h35z" />
-    <glyph glyph-name="uniE1A7" unicode="bluetooth" 
-d="M317 164l-40 41v-81zM277 388v-81l40 41zM378 348l-92 -92l92 -92l-122 -121h-21v162l-98 -98l-30 30l119 119l-119 119l30 30l98 -98v162h21z" />
-    <glyph glyph-name="uniE1A8" unicode="bluetooth_connected" 
-d="M405 299l43 -43l-43 -43l-42 43zM317 164l-40 41v-81zM277 388v-81l40 41zM378 348l-92 -92l92 -92l-122 -121h-21v162l-98 -98l-30 30l119 119l-119 119l30 30l98 -98v162h21zM149 256l-42 -43l-43 43l43 43z" />
-    <glyph glyph-name="uniE1A9" unicode="bluetooth_disabled" 
-d="M277 124l40 40l-40 41v-81zM115 427l312 -312l-30 -30l-49 49l-92 -91h-21v162l-98 -98l-30 30l119 119l-141 141zM277 388v-69l-42 43v107h21l122 -121l-65 -65l-30 30l34 35z" />
-    <glyph glyph-name="uniE1AA" unicode="bluetooth_searching" 
-d="M275 164l-40 41v-81zM235 388v-81l40 41zM335 348l-92 -92l92 -92l-122 -121h-21v162l-98 -98l-30 30l119 119l-119 119l30 30l98 -98v162h21zM417 369q31 -50 31 -111t-33 -113l-25 25q21 42 21 86t-21 86zM304 256l49 49q10 -25 10 -49q0 -25 -10 -50z" />
-    <glyph glyph-name="uniE1AB" unicode="brightness_auto" 
-d="M305 171h41l-69 192h-42l-69 -192h41l15 42h68zM427 327l70 -71l-70 -71v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100l71 70l71 -70h100v-100zM231 242l25 78l25 -78h-50z" />
-    <glyph glyph-name="uniE1AC" unicode="brightness_high" 
-d="M256 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60 25t-25 60t25 60t60 25zM256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5zM427 327l70 -71l-70 -71v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100
-l71 70l71 -70h100v-100z" />
-    <glyph glyph-name="uniE1AD" unicode="brightness_low" 
-d="M256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5zM427 185v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100l71 70l71 -70h100v-100l70 -71z" />
-    <glyph glyph-name="uniE1AE" unicode="brightness_medium" 
-d="M256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5v-256zM427 185v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100l71 70l71 -70h100v-100l70 -71z" />
-    <glyph glyph-name="uniE1AF" unicode="data_usage" 
-d="M256 107q72 0 116 56l56 -33q-64 -87 -172 -87q-88 0 -150.5 62.5t-62.5 150.5q0 83 55.5 143.5t136.5 68.5v-64q-54 -8 -91 -50t-37 -98q0 -62 43.5 -105.5t105.5 -43.5zM277 468q81 -8 136.5 -68.5t55.5 -143.5q0 -48 -18 -87l-56 33q10 28 10 54q0 56 -37 98t-91 50
-v64z" />
-    <glyph glyph-name="uniE1B0" unicode="developer_mode" 
-d="M363 107v42h42v-85q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v85h42v-42h214zM213 188l-30 -30l-98 98l98 98l30 -30l-67 -68zM329 158l-30 30l67 68l-67 68l30 30l98 -98zM149 405v-42h-42v85q0 17 12.5 30t29.5 13l214 -1q17 0 29.5 -12.5t12.5 -29.5
-v-85h-42v42h-214z" />
-    <glyph glyph-name="uniE1B1" unicode="devices" 
-d="M469 149v150h-85v-150h85zM491 341q9 0 15 -6t6 -15v-213q0 -9 -6 -15.5t-15 -6.5h-128q-9 0 -15.5 6.5t-6.5 15.5v213q0 9 6.5 15t15.5 6h128zM85 384v-235h214v-64h-299v64h43v235q0 17 12.5 30t29.5 13h384v-43h-384z" />
-    <glyph glyph-name="uniE1B2" unicode="dvr" 
-d="M149 256v-43h-42v43h42zM149 341v-42h-42v42h42zM405 256v-43h-234v43h234zM405 341v-42h-234v42h234zM448 149v256h-384v-256h384zM448 448q17 0 30 -13t13 -30l-1 -256q0 -17 -12.5 -29.5t-29.5 -12.5h-107v-43h-170v43h-107q-17 0 -30 12.5t-13 29.5v256q0 17 13 30
-t30 13h384z" />
-    <glyph glyph-name="uniE1B3" unicode="gps_fixed" 
-d="M256 107q62 0 105.5 43.5t43.5 105.5t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -105.5t105.5 -43.5zM447 277h44v-42h-44q-7 -67 -55 -115t-115 -55v-44h-42v44q-67 7 -115 55t-55 115h-44v42h44q7 67 55 115t115 55v44h42v-44q67 -7 115 -55t55 -115z
-M256 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60 25t-25 60t25 60t60 25z" />
-    <glyph glyph-name="uniE1B4" unicode="gps_not_fixed" 
-d="M256 107q62 0 105.5 43.5t43.5 105.5t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -105.5t105.5 -43.5zM447 277h44v-42h-44q-7 -67 -55 -115t-115 -55v-44h-42v44q-67 7 -115 55t-55 115h-44v42h44q7 67 55 115t115 55v44h42v-44q67 -7 115 -55t55 -115z
-" />
-    <glyph glyph-name="uniE1B5" unicode="gps_off" 
-d="M347 138l-209 209q-31 -41 -31 -91q0 -62 43.5 -105.5t105.5 -43.5q50 0 91 31zM64 421l27 27l357 -357l-27 -27l-44 44q-45 -37 -100 -43v-44h-42v44q-67 7 -115 55t-55 115h-44v42h44q6 55 43 100zM447 277h44v-42h-44q-5 -39 -21 -68l-32 32q11 27 11 57
-q0 62 -43.5 105.5t-105.5 43.5q-30 0 -57 -11l-32 32q31 16 68 21v44h42v-44q67 -7 115 -55t55 -115z" />
-    <glyph glyph-name="uniE1B6" unicode="location_disabled" 
-d="M347 138l-209 209q-31 -41 -31 -91q0 -62 43.5 -105.5t105.5 -43.5q50 0 91 31zM64 421l27 27l357 -357l-27 -27l-44 44q-45 -37 -100 -43v-44h-42v44q-67 7 -115 55t-55 115h-44v42h44q6 55 43 100zM447 277h44v-42h-44q-5 -39 -21 -68l-32 32q11 27 11 57
-q0 62 -43.5 105.5t-105.5 43.5q-30 0 -57 -11l-32 32q31 16 68 21v44h42v-44q67 -7 115 -55t55 -115z" />
-    <glyph glyph-name="uniE1B7" unicode="location_searching" 
-d="M256 107q62 0 105.5 43.5t43.5 105.5t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -105.5t105.5 -43.5zM447 277h44v-42h-44q-7 -67 -55 -115t-115 -55v-44h-42v44q-67 7 -115 55t-55 115h-44v42h44q7 67 55 115t115 55v44h42v-44q67 -7 115 -55t55 -115z
-" />
-    <glyph glyph-name="uniE1B8" unicode="graphic_eq" 
-d="M405 299h43v-86h-43v86zM320 128v256h43v-256h-43zM64 213v86h43v-86h-43zM235 43v426h42v-426h-42zM149 128v256h43v-256h-43z" />
-    <glyph glyph-name="uniE1B9" unicode="network_cell" 
-d="M469 43h-426l426 426v-426z" />
-    <glyph glyph-name="uniE1BA" unicode="network_wifi" 
-d="M436 279l1 -1l-181 -224l-181 224l1 1l-68 84q121 85 248 85t248 -85z" />
-    <glyph glyph-name="uniE1BB" unicode="nfc" 
-d="M384 384v-256h-256v256h85v-43h-42v-170h170v170h-64v-48q22 -12 22 -37q0 -17 -13 -30t-30 -13t-30 13t-13 30q0 25 22 37v48q0 17 12.5 30t29.5 13h107zM427 85v342h-342v-342h342zM427 469q17 0 29.5 -12.5t12.5 -29.5v-342q0 -17 -12.5 -29.5t-29.5 -12.5h-342
-q-17 0 -29.5 12.5t-12.5 29.5v342q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE1BC" unicode="now_wallpaper" 
-d="M85 235v-150h150v-42h-150q-17 0 -29.5 12.5t-12.5 29.5v150h42zM427 85v150h42v-150q0 -17 -12.5 -29.5t-29.5 -12.5h-150v42h150zM427 469q17 0 29.5 -12.5t12.5 -29.5v-150h-42v150h-150v42h150zM363 331q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5
-t22.5 9.5t22.5 -9.5t9.5 -22.5zM213 235l64 -79l43 57l64 -85h-256zM85 427v-150h-42v150q0 17 12.5 29.5t29.5 12.5h150v-42h-150z" />
-    <glyph glyph-name="uniE1BD" unicode="now_widgets" 
-d="M355 476l121 -121l-121 -120h93v-171h-171v171h78l-120 120v-78h-171v171h171v-93zM64 64v171h171v-171h-171z" />
-    <glyph glyph-name="uniE1BE" unicode="screen_lock_landscape" 
-d="M230 299v-22h52v22q0 10 -7.5 17.5t-18.5 7.5t-18.5 -7.5t-7.5 -17.5zM213 171q-9 0 -15 6t-6 15v64q0 9 6 15t15 6v22q0 17 12.5 29.5t30.5 12.5t30.5 -12t12.5 -30v-22q9 0 15 -6t6 -15v-64q0 -9 -6 -15t-15 -6h-86zM405 149v214h-298v-214h298zM448 405q17 0 30 -12.5
-t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-384q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h384z" />
-    <glyph glyph-name="uniE1BF" unicode="screen_lock_portrait" 
-d="M363 107v298h-214v-298h214zM363 491q17 0 29.5 -13t12.5 -30v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13h214zM230 299v-22h52v22q0 10 -7.5 17.5t-18.5 7.5t-18.5 -7.5t-7.5 -17.5zM213 171q-9 0 -15 6t-6 15v64q0 9 6 15
-t15 6v22q0 17 12.5 29.5t30.5 12.5t30.5 -12t12.5 -30v-22q9 0 15 -6t6 -15v-64q0 -9 -6 -15t-15 -6h-86z" />
-    <glyph glyph-name="uniE1C0" unicode="screen_lock_rotation" 
-d="M358 459v-11h73v11q0 15 -10.5 25.5t-25.5 10.5t-26 -10.5t-11 -25.5zM341 320q-9 0 -15 6t-6 15v86q0 9 6 15t15 6v11q0 22 16 37.5t38 15.5t37.5 -15.5t15.5 -37.5v-11q9 0 15 -6t6 -15v-86q0 -9 -6 -15t-15 -6h-107zM181 75l28 28l81 -81l-14 -1q-100 0 -173.5 68
-t-81.5 167h32q6 -59 40.5 -107.5t87.5 -73.5zM496 240q10 -9 10 -22.5t-10 -23.5l-136 -135q-9 -10 -22 -10t-23 10l-256 256q-10 9 -10 22t10 23l135 136q9 10 22.5 10t23.5 -10l52 -52l-30 -30l-45 44l-121 -120l242 -242l120 121l-47 47l30 30z" />
-    <glyph glyph-name="uniE1C1" unicode="screen_rotation" 
-d="M160 54l29 28l81 -81l-14 -1q-100 0 -173.5 68t-81.5 167h32q6 -60 40 -108t87 -73zM316 60l136 136l-256 256l-136 -136zM218 475l257 -257q10 -9 10 -22t-10 -23l-136 -136q-9 -10 -22 -10t-23 10l-257 257q-10 9 -10 22t10 23l136 136q9 10 22 10t23 -10zM352 458
-l-29 -28l-81 81l14 1q100 0 173.5 -68t81.5 -167h-32q-6 60 -40 108t-87 73z" />
-    <glyph glyph-name="uniE1C2" unicode="sd_storage" 
-d="M384 341v86h-43v-86h43zM320 341v86h-43v-86h43zM256 341v86h-43v-86h43zM384 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5l1 256l127 128h171z" />
-    <glyph glyph-name="uniE1C3" unicode="settings_system_daydream" 
-d="M448 106v300h-384v-300h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384zM192 171q-26 0 -45 19t-19 45q0 25 16.5 43t40.5 20h4q21 43 67 43q28 0 49 -18.5t25 -45.5h1q22 0 37.5 -15.5t15.5 -37.5
-t-15.5 -37.5t-37.5 -15.5h-139z" />
-    <glyph glyph-name="uniE1C8" unicode="signal_cellular_&#x34;_bar" 
-d="M43 43l426 426v-426h-426z" />
-    <glyph glyph-name="uniE1CD" unicode="signal_cellular_connected_no_internet_&#x34;_bar" 
-d="M43 43l426 426v-128h-85v-298h-341zM427 43v42h42v-42h-42zM427 128v171h42v-171h-42z" />
-    <glyph glyph-name="uniE1CE" unicode="signal_cellular_no_sim" 
-d="M78 429l373 -372l-28 -28l-40 41q-12 -6 -20 -6h-214q-17 0 -29.5 13t-12.5 30v239l-56 56zM405 405v-249l-242 242l50 50h150q17 0 29.5 -13t12.5 -30z" />
-    <glyph glyph-name="uniE1CF" unicode="signal_cellular_null" 
-d="M469 469v-426h-426zM427 366l-281 -281h281v281z" />
-    <glyph glyph-name="uniE1D0" unicode="signal_cellular_off" 
-d="M102 416l367 -368l-27 -27l-42 43h-379l189 189l-135 136zM448 491v-367l-183 183z" />
-    <glyph glyph-name="uniE1D8" unicode="signal_wifi_&#x34;_bar" 
-d="M256 54l-248 309q121 85 248 85t248 -85z" />
-    <glyph glyph-name="uniE1D9" unicode="signal_wifi_&#x34;_bar_lock" 
-d="M331 203v-56l-75 -94l-247 310l6 5q6 4 12.5 8.5t17.5 11.5t23.5 13t28.5 13.5t34 13t37.5 10.5t42 7.5t45.5 2.5t45.5 -2.5t42 -7.5t37.5 -10.5t34 -13t28.5 -13.5t23.5 -13t17.5 -11.5t12.5 -8.5l6 -5l-44 -56q-6 2 -22 2q-45 0 -75.5 -30.5t-30.5 -75.5zM469 171v32
-q0 13 -9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5v-32h64zM491 171q8 0 14.5 -7t6.5 -15v-85q0 -8 -6.5 -14.5t-14.5 -6.5h-107q-8 0 -14.5 6.5t-6.5 14.5v85q0 8 6.5 15t14.5 7v32q0 23 15 38t38 15t38.5 -15.5t15.5 -37.5v-32z" />
-    <glyph glyph-name="uniE1DA" unicode="signal_wifi_off" 
-d="M70 481q12 -12 153.5 -153t213.5 -215l-27 -27l-71 71l-83 -103l-248 309q33 27 78 47l-43 44zM504 363l-116 -145l-221 220q45 10 89 10q127 0 248 -85z" />
-    <glyph glyph-name="uniE1DB" unicode="storage" 
-d="M85 277v-42h43v42h-43zM43 213v86h426v-86h-426zM128 363v42h-43v-42h43zM43 427h426v-86h-426v86zM85 149v-42h43v42h-43zM43 85v86h426v-86h-426z" />
-    <glyph glyph-name="uniE1E0" unicode="usb" 
-d="M320 363h85v-86h-21v-42q0 -18 -12.5 -30.5t-30.5 -12.5h-64v-65q26 -14 26 -42q0 -19 -13.5 -33t-33.5 -14t-33.5 14t-13.5 33q0 28 26 42v65h-64q-18 0 -30.5 12.5t-12.5 30.5v44q-26 14 -26 41q0 20 14 33.5t33 13.5t33 -13.5t14 -33.5q0 -28 -25 -41v-44h64v170h-43
-l64 86l64 -86h-43v-170h64v42h-21v86z" />
-    <glyph glyph-name="uniE1E1" unicode="wifi_lock" 
-d="M469 171v32q0 13 -9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5v-32h64zM491 171q9 0 15 -6.5t6 -15.5v-85q0 -9 -6 -15t-15 -6h-107q-9 0 -15 6t-6 15v85q0 9 6 15.5t15 6.5v32q0 22 15.5 37.5t37.5 15.5t38 -15.5t16 -37.5v-32zM437 309q-44 0 -75 -31t-31 -75v-61
-l-75 -99l-256 341q112 85 256 85t256 -85l-57 -76q-6 1 -18 1z" />
-    <glyph glyph-name="uniE1E2" unicode="wifi_tethering" 
-d="M256 448q88 0 150.5 -62t62.5 -151q0 -58 -28.5 -107.5t-77.5 -77.5l-22 37q39 23 62.5 62.5t23.5 85.5q0 70 -50 120t-121 50t-121 -50t-50 -120q0 -47 23 -86t62 -62l-21 -37q-49 28 -77.5 77.5t-28.5 107.5q0 89 62.5 151t150.5 62zM384 235q0 -35 -17.5 -64.5
-t-46.5 -46.5l-21 37q42 25 42 74q0 35 -25 60t-60 25t-60 -25t-25 -60q0 -49 42 -74l-21 -37q-29 17 -46.5 46.5t-17.5 64.5q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM256 277q17 0 30 -12.5t13 -29.5t-13 -30t-30 -13t-30 13t-13 30t13 29.5t30 12.5z" />
-    <glyph glyph-name="uniE226" unicode="attach_file" 
-d="M352 384h32v-245q0 -49 -34 -83.5t-83 -34.5t-83.5 34.5t-34.5 83.5v266q0 35 25.5 60.5t60.5 25.5t60 -25.5t25 -60.5v-224q0 -22 -15.5 -37.5t-37.5 -15.5t-38 15.5t-16 37.5v203h32v-203q0 -9 6.5 -15t15.5 -6t15 6t6 15v224q0 22 -15.5 38t-37.5 16t-38 -16t-16 -38
-v-266q0 -35 25.5 -60.5t60.5 -25.5t60 25.5t25 60.5v245z" />
-    <glyph glyph-name="uniE227" unicode="attach_money" 
-d="M252 279q22 -6 36.5 -12t30.5 -16.5t24.5 -26.5t8.5 -38q0 -31 -20.5 -50.5t-54.5 -25.5v-46h-64v46q-33 7 -54.5 28t-23.5 54h47q4 -45 63 -45q31 0 44.5 11.5t13.5 26.5q0 36 -64 52q-100 23 -100 88q0 29 21 49.5t53 27.5v46h64v-47q33 -8 50.5 -30t18.5 -51h-47
-q-2 45 -54 45q-26 0 -41.5 -11t-15.5 -29q0 -29 64 -46z" />
-    <glyph glyph-name="uniE228" unicode="border_all" 
-d="M405 277v128h-128v-128h128zM405 107v128h-128v-128h128zM235 277v128h-128v-128h128zM235 107v128h-128v-128h128zM64 448h384v-384h-384v384z" />
-    <glyph glyph-name="uniE229" unicode="border_bottom" 
-d="M107 192v-43h-43v43h43zM64 64v43h384v-43h-384zM107 277v-42h-43v42h43zM405 320v43h43v-43h-43zM405 448h43v-43h-43v43zM107 363v-43h-43v43h43zM405 149v43h43v-43h-43zM405 235v42h43v-42h-43zM363 448v-43h-43v43h43zM277 448v-43h-42v43h42zM363 277v-42h-43v42
-h43zM277 363v-43h-42v43h42zM107 448v-43h-43v43h43zM277 277v-42h-42v42h42zM192 448v-43h-43v43h43zM277 192v-43h-42v43h42zM192 277v-42h-43v42h43z" />
-    <glyph glyph-name="uniE22A" unicode="border_clear" 
-d="M320 405v43h43v-43h-43zM320 235v42h43v-42h-43zM320 64v43h43v-43h-43zM235 405v43h42v-43h-42zM405 448h43v-43h-43v43zM235 320v43h42v-43h-42zM405 320v43h43v-43h-43zM405 64v43h43v-43h-43zM405 235v42h43v-42h-43zM405 149v43h43v-43h-43zM235 235v42h42v-42h-42z
-M64 405v43h43v-43h-43zM64 320v43h43v-43h-43zM64 235v42h43v-42h-43zM64 149v43h43v-43h-43zM64 64v43h43v-43h-43zM235 64v43h42v-43h-42zM235 149v43h42v-43h-42zM149 64v43h43v-43h-43zM149 235v42h43v-42h-43zM149 405v43h43v-43h-43z" />
-    <glyph glyph-name="uniE22B" unicode="border_color" 
-d="M0 85h512v-85h-512v85zM442 426l-42 -42l-80 80l42 42q6 6 15 6t15 -6l50 -50q6 -6 6 -15t-6 -15zM379 363l-214 -214h-80v80l214 214z" />
-    <glyph glyph-name="uniE22C" unicode="border_horizontal" 
-d="M405 64v43h43v-43h-43zM320 64v43h43v-43h-43zM235 149v43h42v-43h-42zM405 320v43h43v-43h-43zM405 448h43v-43h-43v43zM64 235v42h384v-42h-384zM235 64v43h42v-43h-42zM405 149v43h43v-43h-43zM277 448v-43h-42v43h42zM277 363v-43h-42v43h42zM363 448v-43h-43v43h43z
-M192 448v-43h-43v43h43zM107 448v-43h-43v43h43zM149 64v43h43v-43h-43zM64 149v43h43v-43h-43zM107 363v-43h-43v43h43zM64 64v43h43v-43h-43z" />
-    <glyph glyph-name="uniE22D" unicode="border_inner" 
-d="M405 149v43h43v-43h-43zM405 64v43h43v-43h-43zM277 448v-171h171v-42h-171v-171h-42v171h-171v42h171v171h42zM320 64v43h43v-43h-43zM405 448h43v-43h-43v43zM405 320v43h43v-43h-43zM363 448v-43h-43v43h43zM107 448v-43h-43v43h43zM192 448v-43h-43v43h43zM64 149v43
-h43v-43h-43zM107 363v-43h-43v43h43zM149 64v43h43v-43h-43zM64 64v43h43v-43h-43z" />
-    <glyph glyph-name="uniE22E" unicode="border_left" 
-d="M320 405v43h43v-43h-43zM320 235v42h43v-42h-43zM405 64v43h43v-43h-43zM405 235v42h43v-42h-43zM405 448h43v-43h-43v43zM405 149v43h43v-43h-43zM320 64v43h43v-43h-43zM405 320v43h43v-43h-43zM64 64v384h43v-384h-43zM149 235v42h43v-42h-43zM149 405v43h43v-43h-43z
-M149 64v43h43v-43h-43zM235 235v42h42v-42h-42zM235 320v43h42v-43h-42zM235 405v43h42v-43h-42zM235 149v43h42v-43h-42zM235 64v43h42v-43h-42z" />
-    <glyph glyph-name="uniE22F" unicode="border_outer" 
-d="M192 277v-42h-43v42h43zM277 192v-43h-42v43h42zM405 107v298h-298v-298h298zM64 448h384v-384h-384v384zM363 277v-42h-43v42h43zM277 277v-42h-42v42h42zM277 363v-43h-42v43h42z" />
-    <glyph glyph-name="uniE230" unicode="border_right" 
-d="M235 320v43h42v-43h-42zM235 405v43h42v-43h-42zM235 235v42h42v-42h-42zM320 405v43h43v-43h-43zM320 64v43h43v-43h-43zM405 448h43v-384h-43v384zM320 235v42h43v-42h-43zM235 149v43h42v-43h-42zM64 320v43h43v-43h-43zM64 149v43h43v-43h-43zM64 235v42h43v-42h-43z
-M235 64v43h42v-43h-42zM64 64v43h43v-43h-43zM149 235v42h43v-42h-43zM149 405v43h43v-43h-43zM64 405v43h43v-43h-43zM149 64v43h43v-43h-43z" />
-    <glyph glyph-name="uniE231" unicode="border_style" 
-d="M405 320v43h43v-43h-43zM64 448h384v-43h-341v-341h-43v384zM405 235v42h43v-42h-43zM405 149v43h43v-43h-43zM235 64v43h42v-43h-42zM149 64v43h43v-43h-43zM405 64v43h43v-43h-43zM320 64v43h43v-43h-43z" />
-    <glyph glyph-name="uniE232" unicode="border_top" 
-d="M320 235v42h43v-42h-43zM405 64v43h43v-43h-43zM235 320v43h42v-43h-42zM320 64v43h43v-43h-43zM405 149v43h43v-43h-43zM64 448h384v-43h-384v43zM405 235v42h43v-42h-43zM405 320v43h43v-43h-43zM235 149v43h42v-43h-42zM64 320v43h43v-43h-43zM64 235v42h43v-42h-43z
-M64 64v43h43v-43h-43zM64 149v43h43v-43h-43zM235 64v43h42v-43h-42zM235 235v42h42v-42h-42zM149 235v42h43v-42h-43zM149 64v43h43v-43h-43z" />
-    <glyph glyph-name="uniE233" unicode="border_vertical" 
-d="M320 235v42h43v-42h-43zM320 64v43h43v-43h-43zM320 405v43h43v-43h-43zM405 320v43h43v-43h-43zM405 448h43v-43h-43v43zM405 235v42h43v-42h-43zM405 64v43h43v-43h-43zM235 64v384h42v-384h-42zM405 149v43h43v-43h-43zM149 405v43h43v-43h-43zM64 149v43h43v-43h-43z
-M64 64v43h43v-43h-43zM64 235v42h43v-42h-43zM149 235v42h43v-42h-43zM149 64v43h43v-43h-43zM64 405v43h43v-43h-43zM64 320v43h43v-43h-43z" />
-    <glyph glyph-name="uniE234" unicode="format_align_center" 
-d="M64 448h384v-43h-384v43zM149 363h214v-43h-214v43zM64 235v42h384v-42h-384zM64 64v43h384v-43h-384zM149 192h214v-43h-214v43z" />
-    <glyph glyph-name="uniE235" unicode="format_align_justify" 
-d="M64 448h384v-43h-384v43zM64 320v43h384v-43h-384zM64 235v42h384v-42h-384zM64 149v43h384v-43h-384zM64 64v43h384v-43h-384z" />
-    <glyph glyph-name="uniE236" unicode="format_align_left" 
-d="M64 448h384v-43h-384v43zM64 64v43h384v-43h-384zM64 235v42h384v-42h-384zM320 363v-43h-256v43h256zM320 192v-43h-256v43h256z" />
-    <glyph glyph-name="uniE237" unicode="format_align_right" 
-d="M64 448h384v-43h-384v43zM192 320v43h256v-43h-256zM64 235v42h384v-42h-384zM192 149v43h256v-43h-256zM64 64v43h384v-43h-384z" />
-    <glyph glyph-name="uniE238" unicode="format_bold" 
-d="M288 181q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5h-75v-64h75zM213 373v-64h64q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5h-64zM333 282q46 -21 46 -73q0 -34 -22.5 -57.5t-56.5 -23.5h-151v299h134q36 0 60.5 -25t24.5 -61t-35 -59z" />
-    <glyph glyph-name="uniE239" unicode="format_clear" 
-d="M128 405h299v-64h-124l-34 -80l-45 44l15 36h-51l-60 60v4zM70 405l6 -5l308 -309l-27 -27l-121 121l-33 -78h-64l52 123l-148 148z" />
-    <glyph glyph-name="uniE23A" unicode="format_color_fill" 
-d="M0 85h512v-85h-512v85zM405 267q43 -47 43 -75q0 -17 -13 -30t-30 -13t-29.5 13t-12.5 30q0 12 10.5 31t20.5 31zM111 299h205l-103 102zM353 321q10 -10 10 -23t-10 -22l-117 -117q-10 -10 -23 -10q-12 0 -22 10l-118 117q-10 9 -10 22t10 23l110 110l-51 51l31 30z" />
-    <glyph glyph-name="uniE23B" unicode="format_color_reset" 
-d="M112 400l312 -312l-27 -27l-57 56q-37 -32 -84 -32q-53 0 -90.5 37.5t-37.5 90.5q0 34 28 88l-71 71zM384 213q0 -15 -3 -28l-183 184l58 75q14 -16 35.5 -43t57 -88.5t35.5 -99.5z" />
-    <glyph glyph-name="uniE23C" unicode="format_color_text" 
-d="M205 256h102l-51 135zM235 448h42l117 -299h-48l-23 64h-134l-24 -64h-48zM0 85h512v-85h-512v85z" />
-    <glyph glyph-name="uniE23D" unicode="format_indent_decrease" 
-d="M235 235v42h213v-42h-213zM235 320v43h213v-43h-213zM64 448h384v-43h-384v43zM64 64v43h384v-43h-384zM64 256l85 85v-170zM235 149v43h213v-43h-213z" />
-    <glyph glyph-name="uniE23E" unicode="format_indent_increase" 
-d="M235 235v42h213v-42h-213zM235 320v43h213v-43h-213zM64 448h384v-43h-384v43zM235 149v43h213v-43h-213zM64 341l85 -85l-85 -85v170zM64 64v43h384v-43h-384z" />
-    <glyph glyph-name="uniE23F" unicode="format_italic" 
-d="M213 427h171v-64h-60l-72 -171h47v-64h-171v64h60l72 171h-47v64z" />
-    <glyph glyph-name="uniE240" unicode="format_line_spacing" 
-d="M213 235v42h256v-42h-256zM213 107v42h256v-42h-256zM213 405h256v-42h-256v42zM128 363v-214h53l-74 -74l-75 74h53v214h-53l75 74l74 -74h-53z" />
-    <glyph glyph-name="uniE241" unicode="format_list_bulleted" 
-d="M149 405h299v-42h-299v42zM149 235v42h299v-42h-299zM149 107v42h299v-42h-299zM85 160q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM85 416q13 0 22.5 -9t9.5 -23t-9.5 -23t-22.5 -9t-22.5 9t-9.5 23t9.5 23t22.5 9z
-M85 288q13 0 22.5 -9t9.5 -23t-9.5 -23t-22.5 -9t-22.5 9t-9.5 23t9.5 23t22.5 9z" />
-    <glyph glyph-name="uniE242" unicode="format_list_numbered" 
-d="M149 235v42h299v-42h-299zM149 107v42h299v-42h-299zM149 405h299v-42h-299v42zM43 277v22h64v-20l-39 -44h39v-22h-64v20l38 44h-38zM64 341v64h-21v22h42v-86h-21zM43 149v22h64v-86h-64v22h42v10h-21v22h21v10h-42z" />
-    <glyph glyph-name="uniE243" unicode="format_paint" 
-d="M384 427h64v-171h-171v-192q0 -9 -6 -15t-15 -6h-43q-9 0 -15 6t-6 15v235h213v85h-21v-21q0 -9 -6 -15.5t-15 -6.5h-256q-9 0 -15.5 6.5t-6.5 15.5v85q0 9 6.5 15t15.5 6h256q9 0 15 -6t6 -15v-21z" />
-    <glyph glyph-name="uniE244" unicode="format_quote" 
-d="M299 149l42 86h-64v128h128v-128l-42 -86h-64zM128 149l43 86h-64v128h128v-128l-43 -86h-64z" />
-    <glyph glyph-name="uniE245" unicode="format_size" 
-d="M64 256v64h192v-64h-64v-149h-64v149h-64zM192 427h277v-64h-106v-256h-64v256h-107v64z" />
-    <glyph glyph-name="uniE246" unicode="format_strikethrough" 
-d="M64 213v43h384v-43h-384zM107 427h298v-64h-106v-64h-86v64h-106v64zM213 107v64h86v-64h-86z" />
-    <glyph glyph-name="uniE247" unicode="format_textdirection_l_to_r" 
-d="M448 128l-85 -85v64h-256v42h256v64zM192 299q-35 0 -60 25t-25 60t25 60t60 25h171v-42h-43v-235h-43v235h-42v-235h-43v107z" />
-    <glyph glyph-name="uniE248" unicode="format_textdirection_r_to_l" 
-d="M171 149h256v-42h-256v-64l-86 85l86 85v-64zM213 299q-35 0 -60 25t-25 60t25 60t60 25h171v-42h-43v-235h-42v235h-43v-235h-43v107z" />
-    <glyph glyph-name="uniE249" unicode="format_underlined" 
-d="M107 107h298v-43h-298v43zM256 149q-53 0 -90.5 37.5t-37.5 90.5v171h53v-171q0 -31 22 -52.5t53 -21.5t53 21.5t22 52.5v171h53v-171q0 -53 -37.5 -90.5t-90.5 -37.5z" />
-    <glyph glyph-name="uniE24A" unicode="functions" 
-d="M384 427v-64h-149l106 -107l-106 -107h149v-64h-256v43l139 128l-139 128v43h256z" />
-    <glyph glyph-name="uniE24B" unicode="insert_chart" 
-d="M363 149v86h-43v-86h43zM277 149v214h-42v-214h42zM192 149v150h-43v-150h43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE24C" unicode="insert_comment" 
-d="M384 341v43h-256v-43h256zM384 277v43h-256v-43h256zM384 213v43h-256v-43h256zM427 469q17 0 29.5 -12.5t12.5 -29.5v-384l-85 85h-299q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE24D" unicode="insert_drive_file" 
-d="M277 320h118l-118 117v-117zM128 469h171l128 -128v-256q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5l1 342q0 17 12.5 29.5t29.5 12.5z" />
-    <glyph glyph-name="uniE24E" unicode="insert_emoticon" 
-d="M256 139q-37 0 -66.5 20.5t-42.5 53.5h218q-13 -33 -42.5 -53.5t-66.5 -20.5zM181 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM331 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5
-t-22.5 -9.5zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE24F" unicode="insert_invitation" 
-d="M405 107v234h-298v-234h298zM341 491h43v-43h21q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43v-43h170v43zM363 256v-107h-107v107h107z" />
-    <glyph glyph-name="uniE250" unicode="insert_link" 
-d="M363 363q44 0 75 -31.5t31 -75.5t-31 -75.5t-75 -31.5h-86v41h86q27 0 46.5 19.5t19.5 46.5t-19.5 46.5t-46.5 19.5h-86v41h86zM171 235v42h170v-42h-170zM83 256q0 -27 19.5 -46.5t46.5 -19.5h86v-41h-86q-44 0 -75 31.5t-31 75.5t31 75.5t75 31.5h86v-41h-86
-q-27 0 -46.5 -19.5t-19.5 -46.5z" />
-    <glyph glyph-name="uniE251" unicode="insert_photo" 
-d="M181 224l-74 -96h298l-96 128l-74 -96zM448 107q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298q17 0 30 -13t13 -30v-298z" />
-    <glyph glyph-name="uniE252" unicode="merge_type" 
-d="M160 341l96 96l96 -96h-75v-136l-128 -128l-30 30l116 115v119h-75zM363 77l-73 72l30 30l73 -72z" />
-    <glyph glyph-name="uniE253" unicode="mode_comment" 
-d="M469 427v-384l-85 85h-299q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 29.5t29.5 12.5h342q17 0 29.5 -12.5t12.5 -29.5z" />
-    <glyph glyph-name="uniE254" unicode="mode_edit" 
-d="M442 362l-39 -39l-80 80l39 39q6 6 15 6t15 -6l50 -50q6 -6 6 -15t-6 -15zM64 144l236 236l80 -80l-236 -236h-80v80z" />
-    <glyph glyph-name="uniE255" unicode="publish" 
-d="M107 213l149 150l149 -150h-85v-128h-128v128h-85zM107 427h298v-43h-298v43z" />
-    <glyph glyph-name="uniE256" unicode="space_bar" 
-d="M384 320h43v-128h-342v128h43v-85h256v85z" />
-    <glyph glyph-name="uniE257" unicode="strikethrough_s" 
-d="M200 232q0 -54 62 -54q49 0 49 36q0 16 -6.5 23t-23.5 15q-1 0 -3.5 1t-4.5 2t-4 1h-205v43h384v-43h-83q0 -1 1.5 -3.5t2.5 -3.5q7 -17 7 -35q0 -61 -67 -80q-21 -6 -46 -6q-16 0 -31 3q-36 7 -56 22q-39 29 -39 79h63zM311 352q0 45 -51 45q-36 0 -47 -22q-3 -6 -3 -14
-q0 -15 16 -26q16 -10 30 -15h-98q0 1 -2 2.5t-2 2.5q-8 13 -8 36q0 37 32 63q34 24 83 24q53 0 83 -27q31 -28 31 -69h-64z" />
-    <glyph glyph-name="uniE258" unicode="vertical_align_bottom" 
-d="M85 107h342v-43h-342v43zM341 235l-85 -86l-85 86h64v213h42v-213h64z" />
-    <glyph glyph-name="uniE259" unicode="vertical_align_center" 
-d="M85 277h342v-42h-342v42zM341 405l-85 -85l-85 85h64v86h42v-86h64zM171 107l85 85l85 -85h-64v-86h-42v86h-64z" />
-    <glyph glyph-name="uniE25A" unicode="vertical_align_top" 
-d="M85 448h342v-43h-342v43zM171 277l85 86l85 -86h-64v-213h-42v213h-64z" />
-    <glyph glyph-name="uniE25B" unicode="wrap_text" 
-d="M363 277q35 0 60 -25t25 -60t-25 -60t-60 -25h-43v-43l-64 64l64 64v-43h48q17 0 30 13t13 30t-13 30t-30 13h-283v42h278zM427 405v-42h-342v42h342zM85 107v42h128v-42h-128z" />
-    <glyph glyph-name="uniE25C" unicode="money_off" 
-d="M114 425l311 -312l-27 -27l-47 48q-19 -17 -52 -24v-46h-64v46q-33 7 -55 28t-24 54h47q4 -45 64 -45q37 0 51 20l-75 74q-83 25 -83 84l-73 73zM267 365q-19 0 -33 -6l-31 31q14 7 32 12v46h64v-47q32 -8 49.5 -30t18.5 -51h-47q-2 45 -53 45z" />
-    <glyph glyph-name="uniE25D" unicode="drag_handle" 
-d="M85 192v43h342v-43h-342zM427 320v-43h-342v43h342z" />
-    <glyph glyph-name="uniE25E" unicode="format_shapes" 
-d="M228 240h56l-28 82zM293 213h-75l-15 -42h-35l73 192h30l72 -192h-34zM405 405h43v43h-43v-43zM448 64v43h-43v-43h43zM363 107v42h42v214h-42v42h-214v-42h-42v-214h42v-42h214zM107 64v43h-43v-43h43zM64 448v-43h43v43h-43zM491 363h-43v-214h43v-128h-128v43h-214
-v-43h-128v128h43v214h-43v128h128v-43h214v43h128v-128z" />
-    <glyph glyph-name="uniE25F" unicode="highlight" 
-d="M362 372l45 45l30 -30l-45 -46zM75 387l30 30l45 -45l-30 -31zM235 469h42v-64h-42v64zM128 213v107h256v-107l-64 -64v-106h-128v106z" />
-    <glyph glyph-name="uniE260" unicode="linear_scale" 
-d="M416 309q22 0 37.5 -15.5t15.5 -37.5t-15.5 -37.5t-37.5 -15.5q-36 0 -49 32h-62q-13 -32 -49 -32t-49 32h-62q-13 -32 -49 -32q-22 0 -37.5 15.5t-15.5 37.5t15.5 37.5t37.5 15.5q36 0 49 -32h62q13 32 49 32t49 -32h62q13 32 49 32z" />
-    <glyph glyph-name="uniE261" unicode="short_text" 
-d="M85 235h214v-43h-214v43zM85 320h342v-43h-342v43z" />
-    <glyph glyph-name="uniE262" unicode="text_fields" 
-d="M459 320v-64h-64v-149h-64v149h-64v64h192zM53 427h278v-64h-107v-256h-64v256h-107v64z" />
-    <glyph glyph-name="uniE263" unicode="monetization_on" 
-d="M286 126q67 13 67 67q0 61 -90 84q-56 14 -56 41q0 15 13.5 25t37.5 10q45 0 47 -40h42q-2 57 -61 72v42h-57v-42q-29 -6 -47.5 -23.5t-18.5 -44.5q0 -56 89 -78q57 -13 57 -46q0 -13 -11.5 -23.5t-39.5 -10.5q-53 0 -57 40h-42q3 -57 70 -72v-42h57v41zM256 469
-q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE264" unicode="title" 
-d="M107 427h298v-64h-117v-256h-64v256h-117v64z" />
-    <glyph glyph-name="uniE2BC" unicode="attachment" 
-d="M43 245q0 49 34 83.5t83 34.5h224q35 0 60 -25.5t25 -60.5t-25 -60t-60 -25h-181q-22 0 -38 15.5t-16 37.5t16 38t38 16h160v-43h-162q-9 0 -9 -10.5t9 -10.5h183q17 0 30 12.5t13 29.5t-13 30t-30 13h-224q-31 0 -53 -22t-22 -53t22 -52.5t53 -21.5h203v-43h-203
-q-49 0 -83 34t-34 83z" />
-    <glyph glyph-name="uniE2BD" unicode="cloud" 
-d="M413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE2BE" unicode="cloud_circle" 
-d="M352 171q22 0 37.5 15.5t15.5 37.5t-15.5 37.5t-37.5 15.5h-11q0 35 -25 60.5t-60 25.5q-30 0 -52.5 -18.5t-29.5 -46.5l-3 1q-26 0 -45 -19t-19 -45t19 -45t45 -19h181zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5
-t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE2BF" unicode="cloud_done" 
-d="M213 149l141 141l-30 30l-111 -110l-44 44l-30 -30zM413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE2C0" unicode="cloud_download" 
-d="M363 235h-64v85h-86v-85h-64l107 -107zM413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE2C1" unicode="cloud_off" 
-d="M165 299h-37q-35 0 -60 -25.5t-25 -60.5t25 -60t60 -25h208zM64 400l27 27l357 -357l-27 -27l-43 42h-250q-53 0 -90.5 37.5t-37.5 90.5q0 52 36 89t87 39zM413 298q41 -3 70 -33.5t29 -72.5q0 -55 -45 -87l-31 31q33 18 33 56q0 26 -19 45t-45 19h-32v11q0 49 -34 83
-t-83 34q-31 0 -54 -13l-32 31q39 25 86 25q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE2C2" unicode="cloud_queue" 
-d="M405 128q26 0 45 19t19 45t-19 45t-45 19h-32v11q0 49 -34 83t-83 34q-40 0 -71 -24t-42 -61h-15q-35 0 -60 -25.5t-25 -60.5t25 -60t60 -25h277zM413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5
-t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE2C3" unicode="cloud_upload" 
-d="M299 235h64l-107 106l-107 -106h64v-86h86v86zM413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE2C4" unicode="file_download" 
-d="M107 128h298v-43h-298v43zM405 320l-149 -149l-149 149h85v128h128v-128h85z" />
-    <glyph glyph-name="uniE2C6" unicode="file_upload" 
-d="M107 128h298v-43h-298v43zM192 171v128h-85l149 149l149 -149h-85v-128h-128z" />
-    <glyph glyph-name="uniE2C7" unicode="folder" 
-d="M213 427l43 -43h171q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h128z" />
-    <glyph glyph-name="uniE2C8" unicode="folder_open" 
-d="M427 128v213h-342v-213h342zM427 384q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h128l43 -43h171z" />
-    <glyph glyph-name="uniE2C9" unicode="folder_shared" 
-d="M405 149v22q0 19 -29.5 30.5t-55.5 11.5t-55.5 -11.5t-29.5 -30.5v-22h170zM320 320q-17 0 -30 -13t-13 -30t13 -29.5t30 -12.5t30 12.5t13 29.5t-13 30t-30 13zM427 384q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256
-q0 17 12.5 30t29.5 13h128l43 -43h171z" />
-    <glyph glyph-name="uniE2CC" unicode="create_new_folder" 
-d="M405 213v43h-64v64h-42v-64h-64v-43h64v-64h42v64h64zM427 384q18 0 30 -12.5t12 -30.5v-213q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v256q0 18 12 30.5t30 12.5h128l43 -43h171z" />
-    <glyph glyph-name="uniE307" unicode="cast" 
-d="M21 299q97 0 166 -69t69 -166h-43q0 80 -56.5 136t-135.5 56v43zM21 213q62 0 106 -43.5t44 -105.5h-43q0 44 -31.5 75.5t-75.5 31.5v42zM21 128q26 0 45 -19t19 -45h-64v64zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-149v43h149v298h-384v-64h-43v64
-q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE308" unicode="cast_connected" 
-d="M448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-149v43h149v298h-384v-64h-43v64q0 17 13 30t30 13h384zM21 299q97 0 166 -69t69 -166h-43q0 80 -56.5 136t-135.5 56v43zM405 363v-214h-120q-20 63 -67.5 111t-110.5 68v35h298zM21 213q62 0 106 -43.5
-t44 -105.5h-43q0 44 -31.5 75.5t-75.5 31.5v42zM21 128q26 0 45 -19t19 -45h-64v64z" />
-    <glyph glyph-name="uniE30A" unicode="computer" 
-d="M85 384v-213h342v213h-342zM427 128h85v-43h-512v43h85q-17 0 -29.5 13t-12.5 30v213q0 17 12.5 30t29.5 13h342q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13z" />
-    <glyph glyph-name="uniE30B" unicode="desktop_mac" 
-d="M448 213v214h-384v-214h384zM448 469q17 0 30 -12.5t13 -29.5v-256q0 -17 -13 -30t-30 -13h-149l42 -64v-21h-170v21l42 64h-149q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h384z" />
-    <glyph glyph-name="uniE30C" unicode="desktop_windows" 
-d="M448 171v256h-384v-256h384zM448 469q17 0 30 -12.5t13 -29.5v-256q0 -17 -13 -30t-30 -13h-149v-43h42v-42h-170v42h42v43h-149q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h384z" />
-    <glyph glyph-name="uniE30D" unicode="developer_board" 
-d="M256 277h85v-128h-85v128zM128 363h107v-107h-107v107zM256 363h85v-64h-85v64zM128 235h107v-86h-107v86zM384 107v298h-299v-298h299zM469 320h-42v-43h42v-42h-42v-43h42v-43h-42v-42q0 -17 -13 -30t-30 -13h-299q-17 0 -29.5 13t-12.5 30v298q0 17 12.5 30t29.5 13
-h299q17 0 30 -13t13 -30v-42h42v-43z" />
-    <glyph glyph-name="uniE30E" unicode="dock" 
-d="M341 192v213h-170v-213h170zM341 490q17 0 30 -12.5t13 -29.5v-299q0 -17 -13 -29.5t-30 -12.5h-170q-17 0 -30 12.5t-13 29.5v299q0 17 13 30t30 13zM171 21v43h170v-43h-170z" />
-    <glyph glyph-name="uniE30F" unicode="gamepad" 
-d="M352 320h117v-128h-117l-64 64zM192 160l64 64l64 -64v-117h-128v117zM160 320l64 -64l-64 -64h-117v128h117zM320 352l-64 -64l-64 64v117h128v-117z" />
-    <glyph glyph-name="uniE310" unicode="headset" 
-d="M256 491q80 0 136 -56.5t56 -135.5v-150q0 -26 -19 -45t-45 -19h-64v171h85v43q0 62 -43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5v-43h85v-171h-64q-26 0 -45 19t-19 45v150q0 79 56 135.5t136 56.5z" />
-    <glyph glyph-name="uniE311" unicode="headset_mic" 
-d="M256 491q80 0 136 -56.5t56 -135.5v-214q0 -26 -19 -45t-45 -19h-128v43h149v21h-85v171h85v43q0 62 -43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5v-43h85v-171h-64q-26 0 -45 19t-19 45v150q0 79 56 135.5t136 56.5z" />
-    <glyph glyph-name="uniE312" unicode="keyboard" 
-d="M405 299v42h-42v-42h42zM405 235v42h-42v-42h42zM341 299v42h-42v-42h42zM341 235v42h-42v-42h42zM341 149v43h-170v-43h170zM149 299v42h-42v-42h42zM149 235v42h-42v-42h42zM171 277v-42h42v42h-42zM171 341v-42h42v42h-42zM235 277v-42h42v42h-42zM235 341v-42h42v42
-h-42zM427 405q17 0 29.5 -12.5t12.5 -29.5v-214q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v214q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE313" unicode="keyboard_arrow_down" 
-d="M158 345l98 -98l98 98l30 -30l-128 -128l-128 128z" />
-    <glyph glyph-name="uniE314" unicode="keyboard_arrow_left" 
-d="M329 169l-30 -30l-128 128l128 128l30 -30l-98 -98z" />
-    <glyph glyph-name="uniE315" unicode="keyboard_arrow_right" 
-d="M183 163l98 98l-98 98l30 30l128 -128l-128 -128z" />
-    <glyph glyph-name="uniE316" unicode="keyboard_arrow_up" 
-d="M158 183l-30 30l128 128l128 -128l-30 -30l-98 98z" />
-    <glyph glyph-name="uniE317" unicode="keyboard_backspace" 
-d="M448 277v-42h-302l76 -77l-30 -30l-128 128l128 128l30 -30l-76 -77h302z" />
-    <glyph glyph-name="uniE318" unicode="keyboard_capslock" 
-d="M128 128v43h256v-43h-256zM256 333l-98 -98l-30 30l128 128l128 -128l-30 -30z" />
-    <glyph glyph-name="uniE31A" unicode="keyboard_hide" 
-d="M256 21l-85 86h170zM405 341v43h-42v-43h42zM405 277v43h-42v-43h42zM341 341v43h-42v-43h42zM341 277v43h-42v-43h42zM341 192v43h-170v-43h170zM149 341v43h-42v-43h42zM149 277v43h-42v-43h42zM171 320v-43h42v43h-42zM171 384v-43h42v43h-42zM235 320v-43h42v43h-42z
-M235 384v-43h42v43h-42zM427 448q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v213q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE31B" unicode="keyboard_return" 
-d="M405 363h43v-128h-324l77 -77l-30 -30l-128 128l128 128l30 -30l-77 -77h281v86z" />
-    <glyph glyph-name="uniE31C" unicode="keyboard_tab" 
-d="M427 384h42v-256h-42v256zM247 354l30 30l128 -128l-128 -128l-30 30l77 77h-303v42h303z" />
-    <glyph glyph-name="uniE31D" unicode="keyboard_voice" 
-d="M369 256h36q0 -54 -37.5 -94.5t-90.5 -48.5v-70h-42v70q-53 8 -90.5 48.5t-37.5 94.5h36q0 -47 33.5 -78t79.5 -31t79.5 31t33.5 78zM256 192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -26 -19 -45t-45 -19z" />
-    <glyph glyph-name="uniE31E" unicode="laptop" 
-d="M85 384v-213h342v213h-342zM427 128h85v-43h-512v43h85q-17 0 -29.5 13t-12.5 30v213q0 17 12.5 30t29.5 13h342q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13z" />
-    <glyph glyph-name="uniE31F" unicode="laptop_chromebook" 
-d="M427 192v213h-342v-213h342zM299 128v21h-86v-21h86zM469 128h43v-43h-512v43h43v320h426v-320z" />
-    <glyph glyph-name="uniE320" unicode="laptop_mac" 
-d="M256 107q9 0 15 6t6 15t-6 15t-15 6t-15 -6t-6 -15t6 -15t15 -6zM85 405v-234h342v234h-342zM427 128h85q0 -17 -13 -30t-30 -13h-426q-17 0 -30 13t-13 30h85q-17 0 -29.5 13t-12.5 30v234q0 17 12.5 30t29.5 13h342q17 0 29.5 -13t12.5 -30v-234q0 -17 -12.5 -30
-t-29.5 -13z" />
-    <glyph glyph-name="uniE321" unicode="laptop_windows" 
-d="M85 405v-213h342v213h-342zM427 128h85v-43h-512v43h85v21q-17 0 -29.5 13t-12.5 30v213q0 17 12.5 30t29.5 13h342q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13v-21z" />
-    <glyph glyph-name="uniE322" unicode="memory" 
-d="M363 149v214h-214v-214h214zM448 277h-43v-42h43v-43h-43v-43q0 -17 -12.5 -29.5t-29.5 -12.5h-43v-43h-43v43h-42v-43h-43v43h-43q-17 0 -29.5 12.5t-12.5 29.5v43h-43v43h43v42h-43v43h43v43q0 17 12.5 29.5t29.5 12.5h43v43h43v-43h42v43h43v-43h43q17 0 29.5 -12.5
-t12.5 -29.5v-43h43v-43zM277 235v42h-42v-42h42zM320 320v-128h-128v128h128z" />
-    <glyph glyph-name="uniE323" unicode="mouse" 
-d="M235 489v-169h-150q0 65 43.5 113t106.5 56zM85 192v85h342v-85q0 -70 -50.5 -120.5t-120.5 -50.5t-120.5 50.5t-50.5 120.5zM277 489q63 -8 106.5 -56t43.5 -113h-150v169z" />
-    <glyph glyph-name="uniE324" unicode="phone_android" 
-d="M368 128v299h-224v-299h224zM299 64v21h-86v-21h86zM341 491q26 0 45 -19t19 -45v-342q0 -26 -19 -45t-45 -19h-170q-26 0 -45 19t-19 45v342q0 26 19 45t45 19h170z" />
-    <glyph glyph-name="uniE325" unicode="phone_iphone" 
-d="M341 128v299h-192v-299h192zM245 43q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM331 491q22 0 37.5 -16t15.5 -38v-362q0 -22 -15.5 -38t-37.5 -16h-171q-22 0 -37.5 16t-15.5 38v362q0 22 15.5 38t37.5 16h171z" />
-    <glyph glyph-name="uniE326" unicode="phonelink" 
-d="M469 149v150h-85v-150h85zM491 341q9 0 15 -6t6 -15v-213q0 -9 -6 -15.5t-15 -6.5h-128q-9 0 -15.5 6.5t-6.5 15.5v213q0 9 6.5 15t15.5 6h128zM85 384v-235h214v-64h-299v64h43v235q0 17 12.5 30t29.5 13h384v-43h-384z" />
-    <glyph glyph-name="uniE327" unicode="phonelink_off" 
-d="M491 341q9 0 15 -6t6 -15v-213q0 -9 -6 -15.5t-15 -6.5h-4l-64 64h46v150h-85v-111l-43 43v89q0 9 6.5 15t15.5 6h128zM85 378v-229h229zM41 477q81 -81 230.5 -231t183.5 -184l-27 -27l-50 50h-378v64h43v235q0 15 10 27l-39 39zM469 384h-281l-43 43h324v-43z" />
-    <glyph glyph-name="uniE328" unicode="router" 
-d="M320 128v43h-43v-43h43zM245 128v43h-42v-43h42zM171 128v43h-43v-43h43zM405 235q17 0 30 -13t13 -30v-85q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v85q0 17 13 30t30 13h213v85h43v-85h42zM412 369l-17 -17q-21 21 -54 21q-32 0 -53 -21l-17 17q30 30 70 30
-q41 0 71 -30zM431 386q-41 36 -90 36q-48 0 -89 -36l-17 17q45 45 106 45q62 0 107 -45z" />
-    <glyph glyph-name="uniE329" unicode="scanner" 
-d="M405 149v43h-213v-43h213zM149 149v43h-42v-43h42zM422 284q11 -3 18.5 -14.5t7.5 -24.5v-117q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v85q0 17 13 30t30 13h268l-300 109l15 40z" />
-    <glyph glyph-name="uniE32A" unicode="security" 
-d="M256 491l192 -86v-128q0 -89 -55 -162.5t-137 -93.5q-82 20 -137 93.5t-55 162.5v128zM256 256v-191q59 19 100 71.5t49 119.5h-149zM256 256v188l-149 -66v-122h149z" />
-    <glyph glyph-name="uniE32B" unicode="sim_card" 
-d="M363 192v85h-43v-85h43zM277 235v42h-42v-42h42zM277 107v85h-42v-85h42zM192 192v85h-43v-85h43zM363 107v42h-43v-42h43zM192 107v42h-43v-42h43zM426 427l1 -342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v256l128 128h171q17 0 29.5 -12.5t12.5 -29.5
-z" />
-    <glyph glyph-name="uniE32C" unicode="smartphone" 
-d="M363 107v298h-214v-298h214zM363 490q17 0 29.5 -12.5t12.5 -29.5v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE32D" unicode="speaker" 
-d="M256 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM256 85q44 0 75.5 31.5t31.5 75.5t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75.5t75.5 -31.5zM256 427q-18 0 -30.5 -13t-12.5 -30t12.5 -30t30.5 -13q17 0 30 13t13 30t-13 30
-t-30 13zM363 469q17 0 29.5 -12.5t12.5 -29.5v-342q0 -17 -12.5 -29.5t-29.5 -12.5h-214q-17 0 -29.5 12.5t-12.5 29.5v342q0 17 12.5 29.5t29.5 12.5h214z" />
-    <glyph glyph-name="uniE32E" unicode="speaker_group" 
-d="M128 405v-341h213v-43h-213q-18 0 -30.5 13t-12.5 30v341h43zM245 245q0 22 16 38t38 16t37.5 -16t15.5 -38t-15.5 -37.5t-37.5 -15.5t-38 15.5t-16 37.5zM299 160q35 0 60 25t25 60t-25 60.5t-60 25.5t-60.5 -25.5t-25.5 -60.5t25.5 -60t60.5 -25zM299 448
-q-17 0 -30 -12.5t-13 -30.5t12.5 -30t30.5 -12q17 0 29.5 12t12.5 30t-12.5 30.5t-29.5 12.5zM388 491q16 0 27.5 -11.5t11.5 -27.5v-307q0 -16 -11.5 -27t-27.5 -11h-179q-16 0 -27 11t-11 27v307q0 16 11 27.5t27 11.5h179z" />
-    <glyph glyph-name="uniE32F" unicode="tablet" 
-d="M405 128v256h-298v-256h298zM448 427q17 0 30 -13t13 -30l-1 -256q0 -17 -12.5 -30t-29.5 -13h-384q-17 0 -30 13t-13 30v256q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE330" unicode="tablet_android" 
-d="M411 107v341h-310v-341h310zM299 43v21h-86v-21h86zM384 512q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h256z" />
-    <glyph glyph-name="uniE331" unicode="tablet_mac" 
-d="M405 107v341h-320v-341h320zM245 21q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM395 512q22 0 37.5 -15.5t15.5 -37.5v-406q0 -22 -15.5 -37.5t-37.5 -15.5h-299q-22 0 -37.5 15.5t-15.5 37.5v406q0 22 15.5 37.5
-t37.5 15.5h299z" />
-    <glyph glyph-name="uniE332" unicode="toys" 
-d="M256 256q0 -48 -34.5 -82.5t-82.5 -34.5t-83 34.5t-35 82.5h235zM256 256q-48 0 -82.5 34.5t-34.5 82.5t34.5 83t82.5 35v-235zM256 256q48 0 82.5 -34.5t34.5 -82.5t-34.5 -83t-82.5 -35v235zM256 256q0 48 34.5 82.5t82.5 34.5t83 -34.5t35 -82.5h-235z" />
-    <glyph glyph-name="uniE333" unicode="tv" 
-d="M448 149v256h-384v-256h384zM448 448q17 0 30 -13t13 -30l-1 -256q0 -17 -12.5 -29.5t-29.5 -12.5h-107v-43h-170v43h-107q-17 0 -30 12.5t-13 29.5v256q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE334" unicode="watch" 
-d="M128 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM427 256q0 -82 -65 -134l-21 -122h-170l-21 122q-65 50 -65 134t65 134l21 122h170l21 -122q65 -52 65 -134z" />
-    <glyph glyph-name="uniE335" unicode="device_hub" 
-d="M363 171h85v-107h-107v65l-85 90l-85 -90v-65h-107v107h85l86 85v68q-19 7 -31 23t-12 37q0 26 19 45t45 19t45 -19t19 -45q0 -21 -12 -37t-31 -23v-68z" />
-    <glyph glyph-name="uniE336" unicode="power_input" 
-d="M341 192v43h107v-43h-107zM192 192v43h107v-43h-107zM43 192v43h106v-43h-106zM43 320h405v-43h-405v43z" />
-    <glyph glyph-name="uniE337" unicode="devices_other" 
-d="M448 128v171h-85v-171h85zM469 341q8 0 15 -6.5t7 -14.5v-213q0 -8 -7 -15t-15 -7h-128q-8 0 -14.5 7t-6.5 15v213q0 8 6.5 14.5t14.5 6.5h128zM235 139q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM277 256v-38
-q22 -20 22 -47q0 -28 -22 -48v-38h-85v38q-21 19 -21 48q0 28 21 47v38h85zM64 384v-256h85v-43h-85q-17 0 -30 13t-13 30v256q0 17 13 30t30 13h384v-43h-384z" />
-    <glyph glyph-name="uniE338" unicode="videogame_asset" 
-d="M416 256q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9zM331 192q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM235 235v42h-64v64h-43v-64h-64v-42h64v-64h43v64h64zM448 384q17 0 30 -13t13 -30v-170q0 -17 -13 -30t-30 -13h-384
-q-17 0 -30 13t-13 30v170q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE39D" unicode="add_to_photos" 
-d="M405 277v43h-85v85h-43v-85h-85v-43h85v-85h43v85h85zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42z" />
-    <glyph glyph-name="uniE39E" unicode="adjust" 
-d="M320 256q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5
-t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE39F" unicode="assistant" 
-d="M296 237l88 40l-88 40l-40 88l-40 -88l-88 -40l88 -40l40 -88zM405 469q17 0 30 -12.5t13 -29.5v-299q0 -17 -13 -30t-30 -13h-85l-64 -64l-64 64h-85q-17 0 -30 13t-13 30v299q0 17 13 29.5t30 12.5h298z" />
-    <glyph glyph-name="uniE3A0" unicode="assistant_photo" 
-d="M307 384h120v-213h-150l-8 42h-120v-149h-42v363h192z" />
-    <glyph glyph-name="uniE3A1" unicode="audiotrack" 
-d="M256 448h149v-64h-85v-235h-1q-4 -36 -31 -60.5t-64 -24.5q-40 0 -68 28t-28 68t28 68t68 28q17 0 32 -6v198z" />
-    <glyph glyph-name="uniE3A2" unicode="blur_circular" 
-d="M299 235q9 0 15 -6.5t6 -15.5t-6 -15t-15 -6t-15.5 6t-6.5 15t6.5 15.5t15.5 6.5zM299 160q10 0 10 -11q0 -10 -10 -10q-11 0 -11 10q0 11 11 11zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5z
-M256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM363 309q10 0 10 -10q0 -11 -10 -11q-11 0 -11 11q0 10 11 10zM363 224q10 0 10 -11q0 -10 -10 -10q-11 0 -11 10q0 11 11 11zM299 352q-11 0 -11 11
-q0 10 11 10q10 0 10 -10q0 -11 -10 -11zM299 320q9 0 15 -6t6 -15t-6 -15.5t-15 -6.5t-15.5 6.5t-6.5 15.5t6.5 15t15.5 6zM213 352q-10 0 -10 11q0 10 10 10q11 0 11 -10q0 -11 -11 -11zM149 224q11 0 11 -11q0 -10 -11 -10q-10 0 -10 10q0 11 10 11zM213 160q11 0 11 -11
-q0 -10 -11 -10q-10 0 -10 10q0 11 10 11zM149 309q11 0 11 -10q0 -11 -11 -11q-10 0 -10 11q0 10 10 10zM213 235q9 0 15.5 -6.5t6.5 -15.5t-6.5 -15t-15.5 -6t-15 6t-6 15t6 15.5t15 6.5zM213 320q9 0 15.5 -6t6.5 -15t-6.5 -15.5t-15.5 -6.5t-15 6.5t-6 15.5t6 15t15 6z
-" />
-    <glyph glyph-name="uniE3A3" unicode="blur_linear" 
-d="M277 149q-9 0 -15 6.5t-6 15.5t6 15t15 6t15.5 -6t6.5 -15t-6.5 -15.5t-15.5 -6.5zM277 235q-9 0 -15 6t-6 15t6 15t15 6t15.5 -6t6.5 -15t-6.5 -15t-15.5 -6zM277 320q-9 0 -15 6t-6 15t6 15.5t15 6.5t15.5 -6.5t6.5 -15.5t-6.5 -15t-15.5 -6zM363 245q-11 0 -11 11
-t11 11q10 0 10 -11t-10 -11zM363 331q-11 0 -11 10q0 11 11 11q10 0 10 -11q0 -10 -10 -10zM64 448h384v-43h-384v43zM363 160q-11 0 -11 11q0 10 11 10q10 0 10 -10q0 -11 -10 -11zM192 149q-9 0 -15 6.5t-6 15.5t6 15t15 6t15 -6t6 -15t-6 -15.5t-15 -6.5zM107 224
-q-13 0 -22.5 9t-9.5 23t9.5 23t22.5 9t22.5 -9t9.5 -23t-9.5 -23t-22.5 -9zM107 309q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM64 64v43h384v-43h-384zM192 320q-9 0 -15 6t-6 15t6 15.5t15 6.5t15 -6.5t6 -15.5t-6 -15
-t-15 -6zM192 235q-9 0 -15 6t-6 15t6 15t15 6t15 -6t6 -15t-6 -15t-15 -6zM107 139q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5z" />
-    <glyph glyph-name="uniE3A4" unicode="blur_off" 
-d="M64 224q11 0 11 -11q0 -10 -11 -10t-11 10q0 11 11 11zM128 149q9 0 15 -6t6 -15t-6 -15t-15 -6t-15 6t-6 15t6 15t15 6zM213 75q11 0 11 -11t-11 -11q-10 0 -10 11t10 11zM64 309q11 0 11 -10q0 -11 -11 -11t-11 11q0 10 11 10zM128 235q9 0 15 -6.5t6 -15.5t-6 -15
-t-15 -6t-15 6t-6 15t6 15.5t15 6.5zM448 224q11 0 11 -11q0 -10 -11 -10t-11 10q0 11 11 11zM213 149q9 0 15.5 -6t6.5 -15t-6.5 -15t-15.5 -6t-15 6t-6 15t6 15t15 6zM53 400l27 27l347 -347l-28 -27l-80 81q1 -2 1 -6q0 -9 -6 -15t-15 -6t-15.5 6t-6.5 15t6.5 15t15.5 6
-q4 0 6 -1l-60 60q-2 -11 -11 -19t-21 -8q-13 0 -22.5 9.5t-9.5 22.5q0 12 8 21t19 11l-60 60q1 -2 1 -6q0 -9 -6 -15.5t-15 -6.5t-15 6.5t-6 15.5t6 15t15 6l6 -1zM299 75q10 0 10 -11t-10 -11q-11 0 -11 11t11 11zM384 363q-9 0 -15 6t-6 15t6 15t15 6t15 -6t6 -15t-6 -15
-t-15 -6zM384 277q-9 0 -15 6.5t-6 15.5t6 15t15 6t15 -6t6 -15t-6 -15.5t-15 -6.5zM384 192q-9 0 -15 6t-6 15t6 15.5t15 6.5t15 -6.5t6 -15.5t-6 -15t-15 -6zM213 363q-9 0 -15 6t-6 15t6 15t15 6t15.5 -6t6.5 -15t-6.5 -15t-15.5 -6zM448 288q-11 0 -11 11q0 10 11 10
-t11 -10q0 -11 -11 -11zM213 437q-10 0 -10 11t10 11q11 0 11 -11t-11 -11zM299 437q-11 0 -11 11t11 11q10 0 10 -11t-10 -11zM294 267q-10 1 -18 9t-9 18v5q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-5zM299 363q-9 0 -15.5 6t-6.5 15t6.5 15
-t15.5 6t15 -6t6 -15t-6 -15t-15 -6z" />
-    <glyph glyph-name="uniE3A5" unicode="blur_on" 
-d="M299 331q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM299 245q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM213 149q9 0 15.5 -6t6.5 -15t-6.5 -15t-15.5 -6t-15 6t-6 15t6 15
-t15 6zM213 331q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM299 75q10 0 10 -11t-10 -11q-11 0 -11 11t11 11zM299 149q9 0 15 -6t6 -15t-6 -15t-15 -6t-15.5 6t-6.5 15t6.5 15t15.5 6zM448 224q11 0 11 -11q0 -10 -11 -10
-t-11 10q0 11 11 11zM384 405q9 0 15 -6t6 -15t-6 -15t-15 -6t-15 6t-6 15t6 15t15 6zM384 320q9 0 15 -6t6 -15t-6 -15.5t-15 -6.5t-15 6.5t-6 15.5t6 15t15 6zM384 149q9 0 15 -6t6 -15t-6 -15t-15 -6t-15 6t-6 15t6 15t15 6zM384 235q9 0 15 -6.5t6 -15.5t-6 -15t-15 -6
-t-15 6t-6 15t6 15.5t15 6.5zM213 245q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM213 363q-9 0 -15 6t-6 15t6 15t15 6t15.5 -6t6.5 -15t-6.5 -15t-15.5 -6zM213 437q-10 0 -10 11t10 11q11 0 11 -11t-11 -11zM213 75
-q11 0 11 -11t-11 -11q-10 0 -10 11t10 11zM64 224q11 0 11 -11q0 -10 -11 -10t-11 10q0 11 11 11zM299 437q-11 0 -11 11t11 11q10 0 10 -11t-10 -11zM299 363q-9 0 -15.5 6t-6.5 15t6.5 15t15.5 6t15 -6t6 -15t-6 -15t-15 -6zM448 288q-11 0 -11 11q0 10 11 10t11 -10
-q0 -11 -11 -11zM128 405q9 0 15 -6t6 -15t-6 -15t-15 -6t-15 6t-6 15t6 15t15 6zM64 309q11 0 11 -10q0 -11 -11 -11t-11 11q0 10 11 10zM128 320q9 0 15 -6t6 -15t-6 -15.5t-15 -6.5t-15 6.5t-6 15.5t6 15t15 6zM128 149q9 0 15 -6t6 -15t-6 -15t-15 -6t-15 6t-6 15t6 15
-t15 6zM128 235q9 0 15 -6.5t6 -15.5t-6 -15t-15 -6t-15 6t-6 15t6 15.5t15 6.5z" />
-    <glyph glyph-name="uniE3A6" unicode="brightness_&#x31;" 
-d="M43 256q0 88 62.5 150.5t150.5 62.5t150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5z" />
-    <glyph glyph-name="uniE3A7" unicode="brightness_&#x32;" 
-d="M213 469q89 0 151.5 -62.5t62.5 -150.5t-62.5 -150.5t-151.5 -62.5q-58 0 -106 28q49 28 77.5 77.5t28.5 107.5t-28.5 107.5t-77.5 77.5q48 28 106 28z" />
-    <glyph glyph-name="uniE3A8" unicode="brightness_&#x33;" 
-d="M192 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5q-34 0 -64 9q66 20 107.5 76.5t41.5 127.5t-41.5 127.5t-107.5 76.5q30 9 64 9z" />
-    <glyph glyph-name="uniE3A9" unicode="brightness_&#x34;" 
-d="M256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5q-26 0 -53 -12q33 -15 53.5 -46.5t20.5 -69.5t-20.5 -69.5t-53.5 -46.5q27 -12 53 -12zM427 327l70 -71l-70 -71v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100l71 70l71 -70h100v-100z" />
-    <glyph glyph-name="uniE3AA" unicode="brightness_&#x35;" 
-d="M256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5zM427 185v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100l71 70l71 -70h100v-100l70 -71z" />
-    <glyph glyph-name="uniE3AB" unicode="brightness_&#x36;" 
-d="M256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5v-256zM427 185v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100l71 70l71 -70h100v-100l70 -71z" />
-    <glyph glyph-name="uniE3AC" unicode="brightness_&#x37;" 
-d="M256 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60 25t-25 60t25 60t60 25zM256 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5zM427 327l70 -71l-70 -71v-100h-100l-71 -70l-71 70h-100v100l-70 71l70 71v100h100
-l71 70l71 -70h100v-100z" />
-    <glyph glyph-name="uniE3AD" unicode="broken_image" 
-d="M384 268l64 -64v-97q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v140l64 -64l85 86l86 -86zM448 405v-140l-64 64l-85 -86l-86 86l-85 -86l-64 65v97q0 17 13 30t30 13h298q17 0 30 -13t13 -30z" />
-    <glyph glyph-name="uniE3AE" unicode="brush" 
-d="M442 413q6 -6 6 -15t-6 -15l-191 -191l-59 59l191 191q6 6 15 6t15 -6zM149 213q26 0 45 -19t19 -45q0 -35 -25 -60t-60 -25q-52 0 -85 43q15 0 28.5 11.5t13.5 30.5q0 26 19 45t45 19z" />
-    <glyph glyph-name="uniE3AF" unicode="camera" 
-d="M210 48q4 7 43 75t60 103l78 -135q-59 -48 -135 -48q-21 0 -46 5zM52 192h207l-79 -135q-46 17 -79.5 52.5t-48.5 82.5zM99 400l108 -187h-160q-4 19 -4 43q0 83 56 144zM465 299q4 -19 4 -43q0 -83 -56 -144l-102 176l-6 11h160zM460 320h-207l79 135q46 -17 79.5 -52.5
-t48.5 -82.5zM201 288l-2 -2l-78 135q59 48 135 48q21 0 46 -5z" />
-    <glyph glyph-name="uniE3B0" unicode="camera_alt" 
-d="M256 149q44 0 75.5 31.5t31.5 75.5t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75.5t75.5 -31.5zM192 469h128l39 -42h68q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h68zM188 256
-q0 28 20 48t48 20t48 -20t20 -48t-20 -48t-48 -20t-48 20t-20 48z" />
-    <glyph glyph-name="uniE3B1" unicode="camera_front" 
-d="M149 469v-224q0 24 36.5 39t70.5 15t70.5 -15t36.5 -39v224h-214zM363 512q17 0 29.5 -13t12.5 -30v-298q0 -17 -12.5 -30t-29.5 -13h-150l64 -64l-64 -64v43h-106v42h106v43h-64q-17 0 -29.5 13t-12.5 30v298q0 17 12.5 30t29.5 13h214zM256 341q-17 0 -29.5 13
-t-12.5 30t12.5 30t29.5 13t30 -13t13 -30t-13 -30t-30 -13zM299 85h106v-42h-106v42z" />
-    <glyph glyph-name="uniE3B2" unicode="camera_rear" 
-d="M256 384q17 0 29.5 13t12.5 30t-12.5 29.5t-29.5 12.5t-30 -12.5t-13 -29.5t12.5 -30t30.5 -13zM363 512q17 0 29.5 -13t12.5 -30v-298q0 -17 -12.5 -30t-29.5 -13h-150l64 -64l-64 -64v43h-106v42h106v43h-64q-17 0 -29.5 13t-12.5 30v298q0 17 12.5 30t29.5 13h214z
-M299 85h106v-42h-106v42z" />
-    <glyph glyph-name="uniE3B3" unicode="camera_roll" 
-d="M427 320v43h-43v-43h43zM427 128v43h-43v-43h43zM341 320v43h-42v-43h42zM341 128v43h-42v-43h42zM256 320v43h-43v-43h43zM256 128v43h-43v-43h43zM299 405h170v-320h-170q0 -17 -13 -29.5t-30 -12.5h-171q-17 0 -29.5 12.5t-12.5 29.5v320q0 17 12.5 30t29.5 13h22v21
-q0 9 6 15.5t15 6.5h85q9 0 15.5 -6.5t6.5 -15.5v-21h21q17 0 30 -13t13 -30z" />
-    <glyph glyph-name="uniE3B4" unicode="center_focus_strong" 
-d="M405 107v85h43v-85q0 -17 -13 -30t-30 -13h-85v43h85zM405 448q17 0 30 -13t13 -30v-85h-43v85h-85v43h85zM107 405v-85h-43v85q0 17 13 30t30 13h85v-43h-85zM107 192v-85h85v-43h-85q-17 0 -30 13t-13 30v85h43zM256 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60 25
-t-25 60t25 60t60 25z" />
-    <glyph glyph-name="uniE3B5" unicode="center_focus_weak" 
-d="M256 213q17 0 30 13t13 30t-13 30t-30 13t-30 -13t-13 -30t13 -30t30 -13zM256 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60 25t-25 60t25 60t60 25zM405 107v85h43v-85q0 -17 -13 -30t-30 -13h-85v43h85zM405 448q17 0 30 -13t13 -30v-85h-43v85h-85v43h85zM107 405
-v-85h-43v85q0 17 13 30t30 13h85v-43h-85zM107 192v-85h85v-43h-85q-17 0 -30 13t-13 30v85h43z" />
-    <glyph glyph-name="uniE3B6" unicode="collections" 
-d="M43 384h42v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299zM235 256l-64 -85h256l-86 106l-63 -79zM469 171q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256q17 0 29.5 -12.5t12.5 -29.5v-256z" />
-    <glyph glyph-name="uniE3B7" unicode="color_lens" 
-d="M373 256q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM309 341q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM203 341q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5
-t9.5 -22.5t22.5 -9.5zM139 256q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM256 448q79 0 135.5 -50t56.5 -121q0 -44 -31.5 -75t-75.5 -31h-37q-14 0 -23 -9.5t-9 -22.5q0 -11 8 -21t8 -22q0 -14 -9 -23t-23 -9q-80 0 -136 56t-56 136t56 136
-t136 56z" />
-    <glyph glyph-name="uniE3B8" unicode="colorize" 
-d="M148 107l172 172l-41 41l-172 -172zM442 392q15 -15 0 -30l-67 -67l41 -41l-30 -30l-30 30l-191 -190h-101v101l190 191l-30 30l30 30l41 -41l67 67q6 6 15 6t15 -6z" />
-    <glyph glyph-name="uniE3B9" unicode="compare" 
-d="M405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-106v192l106 -128v277h-106v43h106zM213 128v128l-106 -128h106zM213 448v43h43v-470h-43v43h-106q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h106z" />
-    <glyph glyph-name="uniE3BA" unicode="control_point" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM277 363v-86h86v-42h-86v-86h-42
-v86h-86v42h86v86h42z" />
-    <glyph glyph-name="uniE3BB" unicode="control_point_duplicate" 
-d="M320 107q62 0 105.5 43.5t43.5 105.5t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -105.5t105.5 -43.5zM320 448q80 0 136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136t56 136t136 56zM43 256q0 -44 23 -80.5t62 -54.5v-46q-56 20 -92 70t-36 111
-t36 111t92 70v-46q-39 -18 -62 -54.5t-23 -80.5zM341 341v-64h64v-42h-64v-64h-42v64h-64v42h64v64h42z" />
-    <glyph glyph-name="uniE3BC" unicode="crop_&#x31;&#x36;_&#x39;" 
-d="M405 171v170h-298v-170h298zM405 384q17 0 30 -13t13 -30v-170q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v170q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3BD" unicode="crop_&#x33;_&#x32;" 
-d="M405 128v256h-298v-256h298zM405 427q17 0 30 -13t13 -30v-256q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v256q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3BE" unicode="crop" 
-d="M149 149h342v-42h-86v-86h-42v86h-214q-17 0 -29.5 12.5t-12.5 29.5v214h-86v42h86v86h42v-342zM363 192v171h-171v42h171q17 0 29.5 -12.5t12.5 -29.5v-171h-42z" />
-    <glyph glyph-name="uniE3BF" unicode="crop_&#x35;_&#x34;" 
-d="M405 149v214h-298v-214h298zM405 405q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-298q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h298z" />
-    <glyph glyph-name="uniE3C0" unicode="crop_&#x37;_&#x35;" 
-d="M405 192v128h-298v-128h298zM405 363q17 0 30 -13t13 -30v-128q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v128q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3C1" unicode="crop_din" 
-d="M405 107v298h-298v-298h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3C2" unicode="crop_free" 
-d="M405 448q17 0 30 -13t13 -30v-85h-43v85h-85v43h85zM405 107v85h43v-85q0 -17 -13 -30t-30 -13h-85v43h85zM107 192v-85h85v-43h-85q-17 0 -30 13t-13 30v85h43zM64 405q0 17 13 30t30 13h85v-43h-85v-85h-43v85z" />
-    <glyph glyph-name="uniE3C3" unicode="crop_landscape" 
-d="M405 149v214h-298v-214h298zM405 405q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-298q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h298z" />
-    <glyph glyph-name="uniE3C4" unicode="crop_original" 
-d="M298 250l75 -101h-234l58 76l42 -51zM405 107v298h-298v-298h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3C5" unicode="crop_portrait" 
-d="M363 107v298h-214v-298h214zM363 448q17 0 29.5 -13t12.5 -30v-298q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v298q0 17 12.5 30t29.5 13h214z" />
-    <glyph glyph-name="uniE3C6" unicode="crop_square" 
-d="M384 128v256h-256v-256h256zM384 427q17 0 30 -13t13 -30v-256q0 -17 -13 -30t-30 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 30t30 13h256z" />
-    <glyph glyph-name="uniE3C7" unicode="dehaze" 
-d="M43 395h426v-43h-426v43zM43 288h426v-43h-426v43zM43 181h426v-42h-426v42z" />
-    <glyph glyph-name="uniE3C8" unicode="details" 
-d="M136 384l120 -213l120 213h-240zM64 427h384l-192 -342z" />
-    <glyph glyph-name="uniE3C9" unicode="edit" 
-d="M442 362l-39 -39l-80 80l39 39q6 6 15 6t15 -6l50 -50q6 -6 6 -15t-6 -15zM64 144l236 236l80 -80l-236 -236h-80v80z" />
-    <glyph glyph-name="uniE3CA" unicode="exposure" 
-d="M427 85v342l-342 -342h342zM107 405v-42h128v42h-128zM427 469q17 0 29.5 -12.5t12.5 -29.5v-342q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v342q0 17 12.5 29.5t29.5 12.5h342zM320 149h-43v43h43v43h43v-43h42v-43h-42v-42h-43v42z" />
-    <glyph glyph-name="uniE3CB" unicode="exposure_minus_&#x31;" 
-d="M405 128h-42v227l-64 -22v36l100 36h6v-277zM85 277h171v-42h-171v42z" />
-    <glyph glyph-name="uniE3CC" unicode="exposure_minus_&#x32;" 
-d="M43 277h170v-42h-170v42zM351 405q86 0 86 -75q0 -14 -4 -25q-7 -19 -11 -25q-17 -27 -40 -50l-61 -66h127v-36h-184v32l89 97q18 18 31 40q7 12 7 28q0 13 -2 18q-10 26 -38 26q-46 0 -46 -49h-46q0 36 24 60q25 25 68 25z" />
-    <glyph glyph-name="uniE3CD" unicode="exposure_plus_&#x31;" 
-d="M427 128h-43v227l-64 -22v36l100 36h7v-277zM213 363v-86h86v-42h-86v-86h-42v86h-86v42h86v86h42z" />
-    <glyph glyph-name="uniE3CE" unicode="exposure_plus_&#x32;" 
-d="M171 363v-86h85v-42h-85v-86h-43v86h-85v42h85v86h43zM342 164h127v-36h-184v32l89 97q18 18 31 40q8 13 8 28q0 16 -11 31q-10 13 -30 13q-21 0 -35 -14q-11 -11 -11 -35h-46q0 36 24 60q14 14 29 19q18 6 40 6q18 0 36 -5q20 -8 27 -15q23 -20 23 -55q0 -24 -16 -50
-q-12 -20 -17 -25q-14 -16 -23 -25z" />
-    <glyph glyph-name="uniE3CF" unicode="exposure_zero" 
-d="M299 296q0 40 -11 57q-4 6 -14 12q-7 4 -18 4t-18 -4q-10 -6 -14 -12q-11 -17 -11 -57v-57q0 -56 25 -71q7 -4 18 -4q21 0 32 17q12 18 12 58v57h-1zM168 289q0 116 88 116q65 0 82 -62q7 -26 7 -54v-44h-1q0 -59 -24 -90q-14 -16 -28 -21q-16 -6 -36 -6t-36 6
-q-14 5 -28 21q-24 27 -24 90v44z" />
-    <glyph glyph-name="uniE3D0" unicode="filter_&#x31;" 
-d="M448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM299 192v171h-43v42h85v-213h-42zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3D1" unicode="filter_&#x32;" 
-d="M363 235v-43h-128v85q0 18 12.5 30.5t29.5 12.5h43v43h-85v42h85q18 0 30.5 -12t12.5 -30v-43q0 -18 -13 -30.5t-30 -12.5h-43v-42h86zM448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299
-q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3D2" unicode="filter_&#x33;" 
-d="M363 235q0 -18 -13 -30.5t-30 -12.5h-85v43h85v42h-43v43h43v43h-85v42h85q18 0 30.5 -12t12.5 -30v-32q0 -13 -9.5 -22.5t-22.5 -9.5q13 0 22.5 -9.5t9.5 -22.5v-32zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43zM448 149v299h-299v-299h299zM448 491
-q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299z" />
-    <glyph glyph-name="uniE3D3" unicode="filter" 
-d="M448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43zM340 292l76 -100h-235l59 75l42 -50z" />
-    <glyph glyph-name="uniE3D4" unicode="filter_&#x34;" 
-d="M448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM320 192v85h-85v128h42v-85h43v85h43v-213h-43zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3D5" unicode="filter_&#x35;" 
-d="M363 235q0 -18 -13 -30.5t-30 -12.5h-85v43h85v42h-85v128h128v-42h-86v-43h43q17 0 30 -12.5t13 -30.5v-42zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43zM448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299
-q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299z" />
-    <glyph glyph-name="uniE3D6" unicode="filter_&#x36;" 
-d="M277 277v-42h43v42h-43zM277 192q-17 0 -29.5 12.5t-12.5 30.5v128q0 18 12.5 30t29.5 12h86v-42h-86v-43h43q17 0 30 -12.5t13 -30.5v-42q0 -18 -13 -30.5t-30 -12.5h-43zM448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299
-q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3D7" unicode="filter_&#x37;" 
-d="M277 192h-42l85 171h-85v42h128v-42zM448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3D8" unicode="filter_&#x38;" 
-d="M277 277v-42h43v42h-43zM277 363v-43h43v43h-43zM277 192q-17 0 -29.5 12.5t-12.5 30.5v32q0 13 9.5 22.5t22.5 9.5q-13 0 -22.5 9.5t-9.5 22.5v32q0 18 12.5 30t29.5 12h43q18 0 30.5 -12t12.5 -30v-32q0 -13 -9.5 -22.5t-22.5 -9.5q13 0 22.5 -9.5t9.5 -22.5v-32
-q0 -18 -13 -30.5t-30 -12.5h-43zM448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3D9" unicode="filter_&#x39;" 
-d="M320 320v43h-43v-43h43zM320 405q18 0 30.5 -12t12.5 -30v-128q0 -18 -13 -30.5t-30 -12.5h-85v43h85v42h-43q-17 0 -29.5 12.5t-12.5 30.5v43q0 18 12.5 30t29.5 12h43zM448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299
-q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3DA" unicode="filter_&#x39;_plus" 
-d="M448 320v128h-299v-299h299v128h-43v-42h-42v42h-43v43h43v43h42v-43h43zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM235 320h21v21h-21v-21zM299 256q0 -18 -13 -30.5t-30 -12.5h-64
-v43h64v21h-21q-17 0 -30 12.5t-13 30.5v21q0 18 13 30.5t30 12.5h21q17 0 30 -12.5t13 -30.5v-85zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3DB" unicode="filter_b_and_w" 
-d="M405 107v298h-149v-128zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298zM256 277l-149 -170h149v170z" />
-    <glyph glyph-name="uniE3DC" unicode="filter_center_focus" 
-d="M256 320q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM405 107v85h43v-85q0 -17 -13 -30t-30 -13h-85v43h85zM405 448q17 0 30 -13t13 -30v-85h-43v85h-85v43h85zM107 405v-85h-43v85q0 17 13 30t30 13h85v-43h-85zM107 192v-85h85v-43h-85
-q-17 0 -30 13t-13 30v85h43z" />
-    <glyph glyph-name="uniE3DD" unicode="filter_drama" 
-d="M405 128q26 0 45 19t19 45t-19 45t-45 19h-32v11q0 49 -34 83t-83 34q-58 0 -94 -47q41 -11 67.5 -45.5t26.5 -78.5h-43q0 35 -25 60.5t-60 25.5t-60 -25.5t-25 -60.5t25 -60t60 -25h277zM413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277
-q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE3DE" unicode="filter_frames" 
-d="M384 341h-256v-213h256v213zM427 85v299h-96l-74 75l-75 -75h-97v-299h342zM427 427q17 0 29.5 -13t12.5 -30v-299q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h86l85 85l85 -85h86z" />
-    <glyph glyph-name="uniE3DF" unicode="filter_hdr" 
-d="M299 384l192 -256h-470l128 171l96 -128l34 25l-60 81z" />
-    <glyph glyph-name="uniE3E0" unicode="filter_none" 
-d="M448 149v299h-299v-299h299zM448 491q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-299q-17 0 -29.5 12.5t-12.5 29.5v299q0 17 12.5 30t29.5 13h299zM64 405v-341h341v-43h-341q-17 0 -30 13t-13 30v341h43z" />
-    <glyph glyph-name="uniE3E2" unicode="filter_tilt_shift" 
-d="M121 91l30 30q37 -28 84 -34v-43q-63 6 -114 47zM277 87q47 6 83 34l31 -30q-51 -41 -114 -47v43zM391 151q28 38 34 83h43q-6 -62 -47 -113zM320 256q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM87 235q6 -47 34 -83l-30 -31q-41 51 -47 114h43z
-M121 361q-28 -37 -34 -84h-43q6 63 47 114zM425 277q-6 47 -34 84l30 30q41 -51 47 -114h-43zM391 421l-30 -30q-37 28 -84 34v43q63 -6 114 -47zM235 425q-47 -6 -84 -34l-30 30q51 41 114 47v-43z" />
-    <glyph glyph-name="uniE3E3" unicode="filter_vintage" 
-d="M256 171q35 0 60 25t25 60t-25 60t-60 25t-60 -25t-25 -60t25 -60t60 -25zM49 137q0 38 22.5 72.5t59.5 46.5l-18 9q-30 18 -47 47.5t-17 62.5q64 37 128 0q9 -4 17 -11q-2 14 -2 20q0 35 17.5 64.5t46.5 46.5q29 -17 46.5 -46.5t17.5 -64.5q0 -6 -2 -20q8 7 17 11
-q64 37 128 0q0 -33 -17 -62.5t-47 -47.5q-2 -1 -5.5 -3t-6.5 -3.5t-6 -2.5q3 -1 6 -2.5t6.5 -3.5t5.5 -3q30 -18 47 -47.5t17 -62.5q-64 -37 -128 0q-9 4 -17 11q2 -14 2 -20q0 -35 -17.5 -64.5t-46.5 -46.5q-29 17 -46.5 46.5t-17.5 64.5q0 6 2 20q-8 -7 -17 -11
-q-64 -37 -128 0z" />
-    <glyph glyph-name="uniE3E4" unicode="flare" 
-d="M235 21v128h42v-128h-42zM120 150l46 46l30 -30l-46 -46zM316 166l30 30l46 -46l-30 -30zM256 320q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM363 277h128v-42h-128v42zM392 362l-46 -46l-30 30l46 46zM277 491v-128h-42v128h42zM196 346l-30 -30
-l-46 46l30 30zM149 277v-42h-128v42h128z" />
-    <glyph glyph-name="uniE3E5" unicode="flash_auto" 
-d="M359 349h50l-25 78zM405 469l69 -192h-41l-15 43h-68l-15 -43h-41l69 192h42zM64 469h213l-85 -192h85l-149 -256v192h-64v256z" />
-    <glyph glyph-name="uniE3E6" unicode="flash_off" 
-d="M363 299l-33 -57l-181 181v46h214l-86 -170h86zM70 448l335 -336l-27 -27l-88 89l-77 -131v192h-64v79l-106 107z" />
-    <glyph glyph-name="uniE3E7" unicode="flash_on" 
-d="M149 469h214l-86 -170h86l-150 -256v192h-64v234z" />
-    <glyph glyph-name="uniE3E8" unicode="flip" 
-d="M405 64v43h43q0 -17 -13 -30t-30 -13zM405 235v42h43v-42h-43zM320 405v43h43v-43h-43zM405 149v43h43v-43h-43zM235 21v470h42v-470h-42zM405 448q17 0 30 -13t13 -30h-43v43zM64 405q0 17 13 30t30 13h85v-43h-85v-298h85v-43h-85q-17 0 -30 13t-13 30v298zM405 320v43
-h43v-43h-43zM320 64v43h43v-43h-43z" />
-    <glyph glyph-name="uniE3E9" unicode="gradient" 
-d="M405 277v128h-298v-128h42v-42h43v-43h43v43h42v-43h43v43h43v42h42zM363 128v43h-43v-43h43zM277 128v43h-42v-43h42zM192 128v43h-43v-43h43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298zM149 320h43
-v-43h-43v43zM320 320h43v-43h-43v43zM235 320h42v-43h43v-42h-43v42h-42v-42h-43v42h43v43zM363 235v-43h42v43h-42zM149 235h-42v-43h42v43z" />
-    <glyph glyph-name="uniE3EA" unicode="grain" 
-d="M213 427q17 0 30 -13t13 -30t-13 -30t-30 -13t-29.5 13t-12.5 30t12.5 30t29.5 13zM299 341q17 0 29.5 -12.5t12.5 -29.5t-12.5 -30t-29.5 -13t-30 13t-13 30t13 29.5t30 12.5zM384 256q17 0 30 -13t13 -30t-13 -29.5t-30 -12.5t-30 12.5t-13 29.5t13 30t30 13zM299 171
-q17 0 29.5 -13t12.5 -30t-12.5 -30t-29.5 -13t-30 13t-13 30t13 30t30 13zM384 341q-17 0 -30 13t-13 30t13 30t30 13t30 -13t13 -30t-13 -30t-30 -13zM128 171q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM128 341q17 0 30 -12.5t13 -29.5t-13 -30
-t-30 -13t-30 13t-13 30t13 29.5t30 12.5zM213 256q17 0 30 -13t13 -30t-13 -29.5t-30 -12.5t-29.5 12.5t-12.5 29.5t12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE3EB" unicode="grid_off" 
-d="M341 85h31l-31 31v-31zM299 85v74l-12 12h-74v-86h86zM171 213v74l-12 12h-74v-86h86zM171 85v86h-86v-86h86zM85 372v-31h31zM213 244v-31h31zM27 485l458 -458l-27 -27l-43 43h-330q-17 0 -29.5 12.5t-12.5 29.5v330l-43 43zM341 427v-86h86v86h-86zM171 427h-31
-l-43 42h330q17 0 29.5 -12.5t12.5 -29.5v-330l-42 43v31h-31l-43 42h74v86h-86v-74l-42 43v31h-31l-43 42h74v86h-86v-74l-42 43v31z" />
-    <glyph glyph-name="uniE3EC" unicode="grid_on" 
-d="M427 341v86h-86v-86h86zM427 213v86h-86v-86h86zM427 85v86h-86v-86h86zM299 341v86h-86v-86h86zM299 213v86h-86v-86h86zM299 85v86h-86v-86h86zM171 341v86h-86v-86h86zM171 213v86h-86v-86h86zM171 85v86h-86v-86h86zM427 469q17 0 29.5 -12.5t12.5 -29.5v-342
-q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v342q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE3ED" unicode="hdr_off" 
-d="M53 459q98 -99 408 -406l-24 -23l-162 162h-72v73l-32 32v-105h-32v53h-43v-53h-32v128h32v-43h43v43h8l-117 117zM277 288h-8l-32 32h40q13 0 22.5 -9.5t9.5 -22.5v-41l-32 32v9zM373 288v-21h43v21h-43zM373 192h-8l-24 23v105h75q13 0 22.5 -9.5t9.5 -22.5v-21
-q0 -23 -19 -30l19 -45h-32l-19 43h-24v-43z" />
-    <glyph glyph-name="uniE3EE" unicode="hdr_on" 
-d="M277 224v64h-42v-64h42zM277 320q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-74v128h74zM139 277v43h32v-128h-32v53h-43v-53h-32v128h32v-43h43zM416 267v21h-43v-21h43zM448 267q0 -20 -19 -30l19 -45h-32l-19 43h-24v-43h-32v128h75q13 0 22.5 -9.5
-t9.5 -22.5v-21z" />
-    <glyph glyph-name="uniE3F1" unicode="hdr_strong" 
-d="M107 213q17 0 29.5 13t12.5 30t-12.5 30t-29.5 13t-30 -13t-13 -30t13 -30t30 -13zM107 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60.5 25t-25.5 60t25.5 60t60.5 25zM363 384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5
-t90.5 37.5z" />
-    <glyph glyph-name="uniE3F2" unicode="hdr_weak" 
-d="M363 171q35 0 60 25t25 60t-25 60t-60 25t-60.5 -25t-25.5 -60t25.5 -60t60.5 -25zM363 384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5zM107 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60.5 25t-25.5 60t25.5 60
-t60.5 25z" />
-    <glyph glyph-name="uniE3F3" unicode="healing" 
-d="M355 78l78 78l-78 77l-77 -78zM299 277q-9 0 -15.5 -6t-6.5 -15t6.5 -15t15.5 -6t15 6t6 15t-6 15t-15 6zM256 192q9 0 15 6t6 15t-6 15.5t-15 6.5t-15 -6.5t-6 -15.5t6 -15t15 -6zM213 235q9 0 15.5 6t6.5 15t-6.5 15t-15.5 6t-15 -6t-6 -15t6 -15t15 -6zM156 278l77 78
-l-77 77l-78 -78zM256 320q-9 0 -15 -6t-6 -15t6 -15.5t15 -6.5t15 6.5t6 15.5t-6 15t-15 6zM378 256l85 -85q6 -6 6 -15t-6 -15l-92 -93q-6 -6 -15 -6q-10 0 -16 6l-84 85l-85 -85q-6 -6 -15 -6t-15 6l-93 93q-6 6 -6 15t6 15l85 85l-85 84q-6 6 -6 15.5t6 15.5l93 92
-q6 6 15 6t15 -6l85 -85l84 85q6 6 15.5 6t15.5 -6l92 -92q6 -6 6 -15.5t-6 -15.5z" />
-    <glyph glyph-name="uniE3F4" unicode="image" 
-d="M181 224l-74 -96h298l-96 128l-74 -96zM448 107q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298q17 0 30 -13t13 -30v-298z" />
-    <glyph glyph-name="uniE3F5" unicode="image_aspect_ratio" 
-d="M427 128v256h-342v-256h342zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342zM256 299v-43h-43v43h43zM171 299v-43h-43v43h43zM341 213v-42h-42v42h42zM341 299v-43h-42v43h42z" />
-    <glyph glyph-name="uniE3F6" unicode="iso" 
-d="M363 149h-107v32h107v-32zM405 107v298l-298 -298h298zM117 352v-32h43v-43h32v43h43v32h-43v43h-32v-43h-43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3F7" unicode="landscape" 
-d="M299 384l192 -256h-470l128 171l96 -128l34 25l-60 81z" />
-    <glyph glyph-name="uniE3F8" unicode="leak_add" 
-d="M299 64q0 62 43.5 105.5t105.5 43.5v-42q-44 0 -75.5 -31.5t-31.5 -75.5h-42zM384 64q0 26 19 45t45 19v-64h-64zM213 64q0 97 69 166t166 69v-43q-80 0 -136 -56t-56 -136h-43zM213 448q0 -62 -43.5 -105.5t-105.5 -43.5v42q44 0 75.5 31.5t31.5 75.5h42zM299 448
-q0 -97 -69 -166t-166 -69v43q80 0 136 56t56 136h43zM128 448q0 -26 -19 -45t-45 -19v64h64z" />
-    <glyph glyph-name="uniE3F9" unicode="leak_remove" 
-d="M328 265q57 34 120 34v-43q-47 0 -89 -22zM425 168l-34 34q27 11 57 11v-42q-12 0 -23 -3zM299 448q0 -63 -34 -120l-31 31q22 42 22 89h43zM64 421l27 27l357 -357l-27 -27l-61 61q-19 -27 -19 -61h-42q0 50 31 91l-31 30q-43 -53 -43 -121h-43q0 86 56 152l-53 53
-q-66 -56 -152 -56v43q69 0 122 43l-31 31q-41 -31 -91 -31v42q34 0 61 19zM213 448q0 -30 -11 -57l-34 34q3 11 3 23h42z" />
-    <glyph glyph-name="uniE3FA" unicode="lens" 
-d="M256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE3FB" unicode="looks_&#x33;" 
-d="M320 288v32q0 18 -12.5 30.5t-29.5 12.5h-86v-43h86v-43h-43v-42h43v-43h-86v-43h86q17 0 29.5 12.5t12.5 30.5v32q0 14 -9 23t-23 9q14 0 23 9t9 23zM406 448q17 0 29.5 -13t12.5 -30v-298q0 -17 -12.5 -30t-29.5 -13h-299q-17 0 -30 13t-13 30v298q0 17 13 30t30 13
-h299z" />
-    <glyph glyph-name="uniE3FC" unicode="looks" 
-d="M256 384q97 0 166 -69t69 -166h-43q0 79 -56 135.5t-136 56.5t-136 -56.5t-56 -135.5h-43q0 97 69 166t166 69zM256 299q61 0 105 -44t44 -106h-42q0 44 -31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5h-42q0 62 44 106t105 44z" />
-    <glyph glyph-name="uniE3FD" unicode="looks_&#x34;" 
-d="M320 149v214h-43v-86h-42v86h-43v-128h85v-86h43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3FE" unicode="looks_&#x35;" 
-d="M320 320v43h-128v-128h85v-43h-85v-43h85q17 0 30 12.5t13 30.5v43q0 18 -12.5 30t-30.5 12h-42v43h85zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE3FF" unicode="looks_&#x36;" 
-d="M320 320v43h-85q-17 0 -30 -12.5t-13 -30.5v-128q0 -18 13 -30.5t30 -12.5h42q17 0 30 12.5t13 30.5v43q0 18 -12.5 30t-30.5 12h-42v43h85zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298zM235 192v43h42
-v-43h-42z" />
-    <glyph glyph-name="uniE400" unicode="looks_one" 
-d="M299 149v214h-86v-43h43v-171h43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE401" unicode="looks_two" 
-d="M320 277v43q0 18 -13 30.5t-30 12.5h-85v-43h85v-43h-42q-18 0 -30.5 -12t-12.5 -30v-86h128v43h-85v43h42q18 0 30.5 12t12.5 30zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE402" unicode="loupe" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5v-171q0 -17 -12.5 -29.5t-29.5 -12.5h-171q-88 0 -150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM277 363v-86
-h86v-42h-86v-86h-42v86h-86v42h86v86h42z" />
-    <glyph glyph-name="uniE403" unicode="monochrome_photos" 
-d="M427 107v256h-171v-22q45 0 76 -30.5t31 -75.5t-31 -76t-76 -31v38q-28 0 -48 20t-20 49t20 48.5t48 19.5v-137q28 0 48 20t20 49t-20 48.5t-48 19.5v38q-45 0 -76 -30.5t-31 -75.5t31 -76t76 -31v-21h171zM427 405q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30
-t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 29.5t29.5 12.5h69l38 43h128l38 -43h69z" />
-    <glyph glyph-name="uniE404" unicode="movie_creation" 
-d="M384 427h85v-299q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h22l42 -86h64l-42 86h42l43 -86h64l-43 86h43l43 -86h64z" />
-    <glyph glyph-name="uniE405" unicode="music_note" 
-d="M256 448h128v-85h-85v-214q0 -35 -25.5 -60t-60.5 -25t-60 25t-25 60t25 60.5t60 25.5q21 0 43 -12v225z" />
-    <glyph glyph-name="uniE406" unicode="nature" 
-d="M277 168v-83h128v-42h-298v42h128v84q-54 9 -89.5 50.5t-35.5 96.5q0 62 44 106t106 44t105.5 -44t43.5 -106q0 -57 -38 -99t-94 -49z" />
-    <glyph glyph-name="uniE407" unicode="nature_people" 
-d="M96 277q-14 0 -23 9.5t-9 22.5t9 22.5t23 9.5t23 -9.5t9 -22.5t-9 -22.5t-23 -9.5zM473 316q0 -57 -38 -99t-94 -49v-83h64v-42h-341v106h-21v86q0 9 6 15t15 6h64q9 0 15 -6t6 -15v-86h-21v-64h171v84q-54 9 -89.5 50.5t-35.5 96.5q0 62 44 106t106 44t105.5 -44
-t43.5 -106z" />
-    <glyph glyph-name="uniE408" unicode="navigate_before" 
-d="M329 354l-98 -98l98 -98l-30 -30l-128 128l128 128z" />
-    <glyph glyph-name="uniE409" unicode="navigate_next" 
-d="M213 384l128 -128l-128 -128l-30 30l98 98l-98 98z" />
-    <glyph glyph-name="uniE40A" unicode="palette" 
-d="M373 256q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM309 341q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM203 341q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5
-t9.5 -22.5t22.5 -9.5zM139 256q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM256 448q79 0 135.5 -50t56.5 -121q0 -44 -31.5 -75t-75.5 -31h-37q-14 0 -23 -9.5t-9 -22.5q0 -11 8 -21t8 -22q0 -14 -9 -23t-23 -9q-80 0 -136 56t-56 136t56 136
-t136 56z" />
-    <glyph glyph-name="uniE40B" unicode="panorama" 
-d="M181 245l-74 -96h298l-96 128l-74 -96zM491 128q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v256q0 17 13 30t30 13h384q17 0 30 -13t13 -30v-256z" />
-    <glyph glyph-name="uniE40C" unicode="panorama_fish_eye" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE40D" unicode="panorama_horizontal" 
-d="M457 427q12 0 12 -14v-314q0 -14 -12 -14q-2 0 -6 2q-96 35 -195 35t-195 -35q-4 -2 -6 -2q-12 0 -12 14v314q0 14 12 14q2 0 6 -2q96 -35 195 -35t195 35q4 2 6 2zM427 372q-78 -24 -171 -24q-88 0 -171 24v-232q82 24 171 24q88 0 171 -24v232z" />
-    <glyph glyph-name="uniE40E" unicode="panorama_vertical" 
-d="M140 85h232q-24 83 -24 171t24 171h-232q24 -82 24 -171q0 -88 -24 -171zM425 61q2 -4 2 -6q0 -12 -14 -12h-314q-14 0 -14 12q0 2 2 6q35 96 35 195t-35 195q-2 4 -2 6q0 12 14 12h314q14 0 14 -12q0 -2 -2 -6q-35 -96 -35 -195t35 -195z" />
-    <glyph glyph-name="uniE40F" unicode="panorama_wide_angle" 
-d="M256 427q77 0 170 -16l19 -3l6 -19q18 -66 18 -133t-18 -133l-6 -19l-19 -3q-93 -16 -170 -16t-170 16l-19 3l-6 19q-18 66 -18 133t18 133l6 19l19 3q93 16 170 16zM256 384q-70 0 -156 -14q-15 -57 -15 -114t15 -114q86 -14 156 -14t156 14q15 57 15 114t-15 114
-q-86 14 -156 14z" />
-    <glyph glyph-name="uniE410" unicode="photo" 
-d="M181 224l-74 -96h298l-96 128l-74 -96zM448 107q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298q17 0 30 -13t13 -30v-298z" />
-    <glyph glyph-name="uniE411" unicode="photo_album" 
-d="M128 107h256l-82 109l-64 -82l-46 55zM128 427v-171l53 32l54 -32v171h-107zM384 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v342q0 17 13 29.5t30 12.5h256z" />
-    <glyph glyph-name="uniE412" unicode="photo_camera" 
-d="M256 149q44 0 75.5 31.5t31.5 75.5t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75.5t75.5 -31.5zM192 469h128l39 -42h68q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h68zM188 256
-q0 28 20 48t48 20t48 -20t20 -48t-20 -48t-48 -20t-48 20t-20 48z" />
-    <glyph glyph-name="uniE413" unicode="photo_library" 
-d="M43 384h42v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299zM235 256l-64 -85h256l-86 106l-63 -79zM469 171q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256q17 0 29.5 -12.5t12.5 -29.5v-256z" />
-    <glyph glyph-name="uniE415" unicode="picture_as_pdf" 
-d="M299 267v64h21v-64h-21zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42zM192 309v22h21v-22h-21zM437 331v32h-64v-128h32v42h32v32h-32v22h32zM352 267v64q0 13 -9 22.5t-23 9.5h-53v-128h53q14 0 23 9.5t9 22.5zM245 309v22q0 13 -9.5 22.5t-22.5 9.5
-h-53v-128h32v42h21q13 0 22.5 9.5t9.5 22.5zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256z" />
-    <glyph glyph-name="uniE416" unicode="portrait" 
-d="M405 107v298h-298v-298h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298zM352 165v-16h-192v16q0 22 33 35t63 13t63 -13t33 -35zM256 251q-20 0 -34 14.5t-14 33.5t14 33.5t34 14.5t34 -14.5t14 -33.5
-t-14 -33.5t-34 -14.5z" />
-    <glyph glyph-name="uniE417" unicode="remove_red_eye" 
-d="M256 320q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM256 149q44 0 75.5 31.5t31.5 75.5t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75.5t75.5 -31.5zM256 416q79 0 143 -44t92 -116q-28 -72 -92 -116t-143 -44t-143 44t-92 116
-q28 72 92 116t143 44z" />
-    <glyph glyph-name="uniE418" unicode="rotate_&#x39;&#x30;_degrees_ccw" 
-d="M413 370q56 -56 56 -135.5t-56 -135.5q-55 -56 -136 -56q-49 0 -92 24l32 31q27 -13 60 -13q62 0 106 44q43 43 43 105t-43 106q-44 44 -106 44v-69l-90 90l90 91v-69q81 0 136 -57zM79 237l78 -78l78 78l-78 78zM157 375l138 -138l-138 -138l-139 138z" />
-    <glyph glyph-name="uniE419" unicode="rotate_left" 
-d="M277 425q63 -8 106.5 -56t43.5 -113t-43.5 -113t-106.5 -56v43q46 8 76.5 43.5t30.5 82.5t-30.5 82.5t-76.5 43.5v-83l-97 95l97 97v-66zM151 121l31 31q23 -17 53 -22v-43q-48 6 -84 34zM130 235q5 -29 21 -53l-30 -30q-28 37 -34 83h43zM152 330q-18 -26 -22 -53h-43
-q6 45 35 83z" />
-    <glyph glyph-name="uniE41A" unicode="rotate_right" 
-d="M360 182q17 23 22 53h43q-6 -46 -34 -83zM277 130q30 5 53 22l31 -31q-36 -28 -84 -34v43zM425 277h-43q-5 30 -22 53l31 30q28 -37 34 -83zM332 394l-97 -95v83q-46 -8 -76.5 -43.5t-30.5 -82.5t30.5 -82.5t76.5 -43.5v-43q-63 8 -106.5 56t-43.5 113t43.5 113t106.5 56
-v66z" />
-    <glyph glyph-name="uniE41B" unicode="slideshow" 
-d="M405 107v298h-298v-298h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298zM213 341l107 -85l-107 -85v170z" />
-    <glyph glyph-name="uniE41C" unicode="straighten" 
-d="M448 171v170h-43v-85h-42v85h-43v-85h-43v85h-42v-85h-43v85h-43v-85h-42v85h-43v-170h384zM448 384q17 0 30 -13t13 -30v-170q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v170q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE41D" unicode="style" 
-d="M125 91v135l74 -178h-31q-17 0 -30 13t-13 30zM168 325q9 0 15 6.5t6 15.5t-6 15t-15 6t-15 -6t-6 -15t6 -15.5t15 -6.5zM470 172q7 -16 0 -32.5t-23 -23.5l-157 -65q-8 -3 -17 -3q-28 0 -39 26l-106 256q-3 9 -3 17q0 27 26 38l158 65q9 3 17 3q27 0 38 -26zM54 93
-q-16 7 -23 23t0 32l52 125v-192z" />
-    <glyph glyph-name="uniE41E" unicode="switch_camera" 
-d="M320 181l75 75l-75 75v-54h-128v54l-75 -75l75 -75v54h128v-54zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h68l39 42h128l39 -42h68z" />
-    <glyph glyph-name="uniE41F" unicode="switch_video" 
-d="M277 181l75 75l-75 75v-54h-128v54l-74 -75l74 -75v54h128v-54zM384 309l85 86v-278l-85 86v-75q0 -9 -6 -15t-15 -6h-299q-9 0 -15 6t-6 15v256q0 9 6 15t15 6h299q9 0 15 -6t6 -15v-75z" />
-    <glyph glyph-name="uniE420" unicode="tag_faces" 
-d="M256 139q-37 0 -66.5 20.5t-42.5 53.5h218q-13 -33 -42.5 -53.5t-66.5 -20.5zM181 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM331 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5
-t-22.5 -9.5zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE421" unicode="texture" 
-d="M198 64l250 250v-61l-189 -189h-61zM448 107q0 -17 -13 -30t-30 -13h-42l85 85v-42zM107 448h42l-85 -85v42q0 17 13 30t30 13zM253 448h61l-250 -250v61zM416 446q25 -7 31 -30l-351 -350q-23 7 -30 30z" />
-    <glyph glyph-name="uniE422" unicode="timelapse" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM346 346q38 -38 38 -90t-37 -90
-t-90 -38t-91 38l90 90v128q52 0 90 -38z" />
-    <glyph glyph-name="uniE423" unicode="timer_&#x31;&#x30;" 
-d="M275 230v54q0 36 -10 53q-7 15 -30 15q-10 0 -18 -3q-23 -14 -23 -66v-53q0 -24 2 -33q1 -5 9 -21t30 -16t30 16q6 12 8 21t2 33zM152 277q0 109 83 109q41 0 60 -24q22 -28 22 -85v-41q0 -110 -82 -110q-83 0 -83 110v41zM436 289q-30 0 -30 -23q0 -3 0.5 -5.5t1.5 -4
-l2 -3t3 -2.5l3 -1.5t4.5 -2t4.5 -1.5q9 -4 19 -5q9 -2 28 -8q8 -3 22 -12q8 -5 13 -16q5 -10 5 -21q0 -37 -44 -52q-12 -4 -30 -4q-57 0 -74 39q-5 12 -5 22h41q0 -30 38 -30q33 0 33 23q0 6 -3 10.5t-6 6t-10 4.5t-24.5 7.5t-23.5 6.5q-8 3 -20 11q-19 13 -19 36
-q0 38 42 52q12 4 29 4q33 0 54 -15t21 -44h-42q0 21 -18 25q-12 3 -15 3zM0 347l101 37h6v-256h-43v205l-64 -22v36z" />
-    <glyph glyph-name="uniE424" unicode="timer_&#x33;" 
-d="M374 289q-31 0 -31 -23q0 -3 0.5 -5t1 -3.5t2 -3t2.5 -2t3 -2t3 -1.5t4 -1.5t4 -1.5q9 -4 18 -5q11 -2 29 -8q8 -3 22 -12q7 -5 13 -16q5 -10 5 -21q0 -37 -44 -52q-12 -4 -31 -4q-56 0 -73 39q-5 12 -5 22h40q0 -15 11 -22.5t28 -7.5q33 0 33 23q0 6 -3 10.5t-6 6
-t-10 4.5q-5 2 -21 6q-28 6 -48 19q-18 12 -18 36q0 38 42 52q12 4 29 4q33 0 54 -15t21 -44h-42q0 20 -19 25q-12 3 -14 3zM215 259q42 -16 42 -58q0 -37 -24 -55q-23 -20 -60 -20t-60.5 19t-23.5 53h43q0 -20 11 -28q13 -10 30 -10q42 0 42 41t-46 41h-26v33h25q32 0 41 23
-q2 5 2 16q0 38 -38 38q-26 0 -36 -20q-3 -6 -3 -15h-42q0 45 48 64q17 5 33 5q38 0 59 -18t21 -54t-38 -55z" />
-    <glyph glyph-name="uniE425" unicode="timer" 
-d="M256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM406 354q42 -53 42 -119q0 -79 -56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5q65 0 120 -43l30 31q16 -13 30 -30zM235 213v128h42v-128h-42z
-M320 491v-43h-128v43h128z" />
-    <glyph glyph-name="uniE426" unicode="timer_off" 
-d="M256 85q39 0 75 21l-204 204q-20 -34 -20 -75q0 -62 43.5 -106t105.5 -44zM64 427l379 -379l-27 -27l-54 54q-50 -32 -106 -32q-80 0 -136 56.5t-56 135.5q0 58 32 106l-59 59zM235 311v30h42v-73zM320 491v-43h-128v43h128zM406 415l30 -30l-30 -31q42 -53 42 -119
-q0 -58 -32 -106l-31 31q20 34 20 75q0 62 -43.5 105.5t-105.5 43.5q-40 0 -74 -20l-32 31q48 32 106 32q67 0 120 -42z" />
-    <glyph glyph-name="uniE427" unicode="tonality" 
-d="M421 213q2 6 4 22h-148v-22h144zM389 149q12 17 15 22h-127v-22h112zM277 87q32 4 62 20h-62v-20zM277 299v-22h148q-2 16 -4 22h-144zM277 363v-22h127q-3 5 -15 22h-112zM277 425v-20h62q-30 16 -62 20zM235 87v338q-63 -8 -106.5 -56t-43.5 -113t43.5 -113t106.5 -56z
-M256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE428" unicode="transform" 
-d="M213 341v43h128q17 0 30 -13t13 -30v-128h-43v128h-128zM469 128h-85v-43h43l-64 -64l-64 64h42v43h-170q-17 0 -30 13t-13 30v170h-85v43h85v43h-43l64 64l64 -64h-42v-256h298v-43z" />
-    <glyph glyph-name="uniE429" unicode="tune" 
-d="M320 320v128h43v-43h85v-42h-85v-43h-43zM448 235h-213v42h213v-42zM149 320h43v-128h-43v43h-85v42h85v43zM277 64h-42v128h42v-43h171v-42h-171v-43zM64 405h213v-42h-213v42zM64 149h128v-42h-128v42z" />
-    <glyph glyph-name="uniE42A" unicode="view_comfortable" 
-d="M384 405h85v-85h-85v85zM384 107v85h85v-85h-85zM277 107v85h86v-85h-86zM171 107v85h85v-85h-85zM64 107v85h85v-85h-85zM384 213v86h85v-86h-85zM277 405h86v-85h-86v85zM171 320v85h85v-85h-85zM277 213v86h86v-86h-86zM171 213v86h85v-86h-85zM64 213v86h85v-86h-85z
-M64 320v85h85v-85h-85z" />
-    <glyph glyph-name="uniE42B" unicode="view_compact" 
-d="M64 405h405v-128h-405v128zM213 107v149h256v-149h-256zM64 107v149h128v-149h-128z" />
-    <glyph glyph-name="uniE42C" unicode="wb_auto" 
-d="M220 171h40l-68 192h-43l-68 -192h41l15 42h68zM469 363h39l-44 -192h-37l-32 130l-32 -130h-38l-2 9q-21 -43 -62 -69t-90 -26q-71 0 -121 50.5t-50 120.5t50 120.5t121 50.5q82 0 133 -64h16l26 -135l32 135h34l32 -135zM146 242l25 78l24 -78h-49z" />
-    <glyph glyph-name="uniE42D" unicode="wb_cloudy" 
-d="M413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE42E" unicode="wb_incandescent" 
-d="M368 125l30 29l38 -38l-30 -30zM427 288h64v-43h-64v43zM320 377q29 -17 46.5 -46t17.5 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5q0 35 17.5 64t46.5 46v103h128v-103zM85 288v-43h-64v43h64zM235 33v63h42v-63h-42zM76 116l38 39l30 -30l-38 -39z" />
-    <glyph glyph-name="uniE430" unicode="wb_sunny" 
-d="M76 116l38 39l30 -30l-38 -39zM235 33v63h42v-63h-42zM256 395q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5zM427 288h64v-43h-64v43zM368 125l30 29l38 -38l-30 -30zM436 417l-38 -38l-30 30l38 38zM277 500v-63
-h-42v63h42zM85 288v-43h-64v43h64zM144 409l-30 -30l-38 38l30 30z" />
-    <glyph glyph-name="uniE431" unicode="collections_bookmark" 
-d="M427 256v171h-107v-171l53 32zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-256q-17 0 -30 13t-13 30v256q0 17 13 29.5t30 12.5h256zM85 384v-299h299v-42h-299q-17 0 -29.5 12.5t-12.5 29.5v299h42z" />
-    <glyph glyph-name="uniE432" unicode="photo_size_select_actual" 
-d="M107 149h298l-96 128l-74 -96l-54 64zM448 448q16 0 29.5 -13.5t13.5 -29.5v-298q0 -16 -13.5 -29.5t-29.5 -13.5h-384q-17 0 -30 13t-13 30v298q0 16 13.5 29.5t29.5 13.5h384z" />
-    <glyph glyph-name="uniE433" unicode="photo_size_select_large" 
-d="M64 107h213l-68 91l-53 -69l-39 46zM21 277h299v-213h-256q-17 0 -30 13t-13 30v170zM107 448h42v-43h-42v43zM192 448h43v-43h-43v43zM64 448v-43h-43q0 16 13.5 29.5t29.5 13.5zM363 107h42v-43h-42v43zM363 448h42v-43h-42v43zM21 363h43v-43h-43v43zM448 448
-q16 0 29.5 -13.5t13.5 -29.5h-43v43zM448 363h43v-43h-43v43zM277 448h43v-43h-43v43zM491 107q0 -16 -13.5 -29.5t-29.5 -13.5v43h43zM448 277h43v-42h-43v42zM448 192h43v-43h-43v43z" />
-    <glyph glyph-name="uniE434" unicode="photo_size_select_small" 
-d="M149 448v-43h-42v43h42zM235 448v-43h-43v43h43zM64 277v-42h-43v42h43zM64 448v-43h-43q0 16 13.5 29.5t29.5 13.5zM405 107v-43h-42v43h42zM405 448v-43h-42v43h42zM320 107v-43h-43v43h43zM64 363v-43h-43v43h43zM64 64q-17 0 -30 13t-13 30v85h214v-128h-171z
-M448 448q16 0 29.5 -13.5t13.5 -29.5h-43v43zM491 363v-43h-43v43h43zM320 448v-43h-43v43h43zM491 107q0 -16 -13.5 -29.5t-29.5 -13.5v43h43zM491 277v-42h-43v42h43zM491 192v-43h-43v43h43z" />
-    <glyph glyph-name="uniE435" unicode="vignette" 
-d="M256 128q71 0 121 37.5t50 90.5t-50 90.5t-121 37.5t-121 -37.5t-50 -90.5t50 -90.5t121 -37.5zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE436" unicode="wb_iridescent" 
-d="M106 86l-30 31l38 38l30 -30zM76 417l30 30l38 -38l-30 -30zM436 116l-30 -30l-38 39l30 30zM277 33h-42v63h42v-63zM406 447l30 -30l-38 -38l-30 30zM235 500h42v-63h-42v63zM107 203v128h298v-128h-298z" />
-    <glyph glyph-name="uniE437" unicode="crop_rotate" 
-d="M171 171h256v-43h-43v-43h-43v43h-170q-18 0 -30.5 13t-12.5 30v170h-43v43h43v43h43v-256zM341 213v128h-128v43h128q17 0 30 -12.5t13 -30.5v-128h-43zM257 512q100 0 173.5 -68t81.5 -167h-32q-6 60 -40 108t-87 73l-29 -28l-81 81q3 0 7 0.5t7 0.5zM159 54l29 28
-l81 -81q-3 0 -7 -0.5t-7 -0.5q-100 0 -173.5 68t-81.5 167h32q6 -60 40 -108t87 -73z" />
-    <glyph glyph-name="uniE438" unicode="linked_camera" 
-d="M341 384q18 0 30.5 -12.5t12.5 -30.5h28q0 29 -21 50t-50 21v-28v0zM256 107q44 0 75.5 31t31.5 75t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75t75.5 -31zM363 320h106v-235q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v256
-q0 17 12.5 30t29.5 13h68l39 43h128v-64q18 0 30.5 -12.5t12.5 -30.5zM341 441v28q53 0 90.5 -37.5t37.5 -90.5h-28q0 41 -29.5 70.5t-70.5 29.5zM188 213q0 29 20 49t48 20t48 -20t20 -49t-20 -48.5t-48 -19.5t-48 19.5t-20 48.5z" />
-    <glyph glyph-name="uniE439" unicode="add_a_photo" 
-d="M209 213q0 29 20 49t48 20q29 0 49 -20t20 -49q0 -28 -20 -48t-49 -20t-48.5 19.5t-19.5 48.5zM277 107q44 0 75.5 31t31.5 75t-31.5 75.5t-75.5 31.5t-75 -31.5t-31 -75.5t31 -75t75 -31zM128 299v64h64v64h149l39 -43h68q17 0 30 -13t13 -30v-256q0 -17 -13 -29.5
-t-30 -12.5h-341q-17 0 -30 12.5t-13 29.5v214h64zM64 427v64h43v-64h64v-43h-64v-64h-43v64h-64v43h64z" />
-    <glyph glyph-name="uniE43A" unicode="movie_filter" 
-d="M361 257l44 20l-44 20l-20 44l-20 -44l-44 -20l44 -20l20 -44zM240 187l59 26l-59 27l-27 59l-26 -59l-59 -27l59 -26l26 -59zM384 427h85v-299q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h22l42 -64h64l-42 64h42l43 -64h64
-l-43 64h43l43 -64h64z" />
-    <glyph glyph-name="uniE43B" unicode="photo_filter" 
-d="M283 283l58 -27l-58 -27l-27 -58l-27 58l-58 27l58 27l27 58zM363 299l-20 44l-44 20l44 20l20 44l20 -44l44 -20l-44 -20zM406 299h42v-192q0 -17 -12.5 -30t-29.5 -13h-299q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h192v-43h-192v-298h299v192z" />
-    <glyph glyph-name="uniE43C" unicode="burst_mode" 
-d="M235 149h213l-68 90l-54 -68l-38 46zM469 405q9 0 15.5 -6t6.5 -15v-256q0 -9 -6.5 -15t-15.5 -6h-256q-9 0 -15 6t-6 15v256q0 9 6 15t15 6h256zM107 405h42v-298h-42v298zM21 405h43v-298h-43v298z" />
-    <glyph glyph-name="uniE52D" unicode="beenhere" 
-d="M213 171l192 192l-30 30l-162 -162l-76 76l-30 -30zM405 491q17 0 30 -13t13 -30v-276q0 -21 -19 -35l-173 -116l-173 116q-19 14 -19 35v276q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE52E" unicode="directions" 
-d="M299 203l74 74l-74 75v-53h-107q-9 0 -15 -6.5t-6 -15.5v-85h42v64h86v-53zM463 271q14 -16 0 -30l-192 -192q-6 -6 -15 -6t-15 6l-192 192q-6 6 -6 15t6 15l192 192q6 6 15 6t15 -6z" />
-    <glyph glyph-name="uniE52F" unicode="directions_bike" 
-d="M405 75q31 0 53 21.5t22 52.5t-22 53t-53 22t-52.5 -22t-21.5 -53t21.5 -52.5t52.5 -21.5zM405 256q45 0 76 -31t31 -76t-31 -75.5t-76 -30.5t-75.5 30.5t-30.5 75.5t30.5 76t75.5 31zM230 288l47 -49v-132h-42v106l-69 60q-12 8 -12 30q0 18 12 30l60 60q8 12 30 12
-q19 0 34 -12l41 -41q32 -32 76 -32v-43q-63 0 -108 45l-17 17zM107 75q31 0 52.5 21.5t21.5 52.5t-21.5 53t-52.5 22t-53 -22t-22 -53t22 -52.5t53 -21.5zM107 256q45 0 75.5 -31t30.5 -76t-30.5 -75.5t-75.5 -30.5t-76 30.5t-31 75.5t31 76t76 31zM331 395q-17 0 -30 12.5
-t-13 29.5t13 30t30 13t29.5 -13t12.5 -30t-12.5 -29.5t-29.5 -12.5z" />
-    <glyph glyph-name="uniE530" unicode="directions_bus" 
-d="M384 277v107h-256v-107h256zM352 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM160 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM85 171v213q0 51 44 68t127 17t127 -17t44 -68v-213q0 -28 -22 -48v-38
-q0 -9 -6 -15t-15 -6h-21q-9 0 -15.5 6t-6.5 15v22h-170v-22q0 -9 -6.5 -15t-15.5 -6h-21q-9 0 -15 6t-6 15v38q-22 20 -22 48z" />
-    <glyph glyph-name="uniE531" unicode="directions_car" 
-d="M107 277h298l-32 96h-234zM373 171q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM139 171q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM404 384l44 -128v-171q0 -9 -6 -15
-t-15 -6h-22q-9 0 -15 6t-6 15v22h-256v-22q0 -9 -6 -15t-15 -6h-22q-9 0 -15 6t-6 15v171l44 128q6 21 31 21h234q25 0 31 -21z" />
-    <glyph glyph-name="uniE532" unicode="directions_ferry" 
-d="M128 384v-85l128 42l128 -42v85h-256zM84 107l-40 142q-7 20 14 27l27 9v99q0 17 13 30t30 13h64v64h128v-64h64q17 0 30 -13t13 -30v-99l27 -9q21 -7 14 -27l-40 -142h-1q-49 0 -86 42q-37 -42 -85 -42t-85 42q-37 -42 -86 -42h-1zM427 64h42v-43h-42q-45 0 -86 21
-q-85 -44 -170 0q-41 -21 -86 -21h-42v43h42q46 0 86 28q39 -27 85 -27t85 27q40 -28 86 -28z" />
-    <glyph glyph-name="uniE533" unicode="directions_subway" 
-d="M384 277v107h-107v-107h107zM352 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM235 277v107h-107v-107h107zM160 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM256 469q83 0 127 -17t44 -68v-203
-q0 -31 -22 -52.5t-53 -21.5l32 -32v-11h-256v11l32 32q-31 0 -53 21.5t-22 52.5v203q0 51 44 68t127 17z" />
-    <glyph glyph-name="uniE534" unicode="directions_railway" 
-d="M384 299v106h-256v-106h256zM256 149q17 0 30 13t13 30t-13 30t-30 13t-30 -13t-13 -30t13 -30t30 -13zM85 181v224q0 51 44 68.5t127 17.5t127 -17.5t44 -68.5v-224q0 -31 -22 -52.5t-53 -21.5l32 -32v-11h-256v11l32 32q-31 0 -53 21.5t-22 52.5z" />
-    <glyph glyph-name="uniE535" unicode="directions_transit" 
-d="M384 277v107h-107v-107h107zM352 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM235 277v107h-107v-107h107zM160 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM256 469q83 0 127 -17t44 -68v-203
-q0 -31 -22 -52.5t-53 -21.5l32 -32v-11h-256v11l32 32q-31 0 -53 21.5t-22 52.5v203q0 51 44 68t127 17z" />
-    <glyph glyph-name="uniE536" unicode="directions_walk" 
-d="M209 322l-60 -301h45l39 171l44 -43v-128h43v160l-45 43l13 64q46 -53 117 -53v42q-62 0 -91 52l-22 34q-15 21 -36 21q-3 0 -8.5 -1t-8.5 -1l-111 -47v-100h43v72l38 15v0zM288 395q-17 0 -30 12.5t-13 29.5t13 30t30 13t30 -13t13 -30t-13 -29.5t-30 -12.5z" />
-    <glyph glyph-name="uniE539" unicode="flight" 
-d="M217 320zM448 171l-171 53v-117l43 -32v-32l-75 21l-74 -21v32l42 32v117l-170 -53v42l170 107v117q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-117l171 -107v-42z" />
-    <glyph glyph-name="uniE53A" unicode="hotel" 
-d="M405 363q35 0 60.5 -25.5t25.5 -60.5v-192h-43v64h-384v-64h-43v320h43v-192h171v150h170zM149 235q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19z" />
-    <glyph glyph-name="uniE53B" unicode="layers" 
-d="M256 171q-9 7 -81.5 63.5t-110.5 85.5l192 149l192 -149q-38 -29 -110 -85t-82 -64zM256 116l157 123l35 -27l-192 -149l-192 149l35 27z" />
-    <glyph glyph-name="uniE53C" unicode="layers_clear" 
-d="M70 491l399 -400l-27 -27l-80 81l-106 -82l-192 149l35 27l157 -123l75 59l-30 30l-45 -34q-9 7 -81.5 63.5t-110.5 85.5l69 54l-90 90zM448 320q-27 -21 -86 -67l-168 168l62 48zM423 192l-31 31l25 19l31 -30z" />
-    <glyph glyph-name="uniE53D" unicode="local_airport" 
-d="M448 171l-171 53v-117l43 -32v-32l-75 21l-74 -21v32l42 32v117l-170 -53v42l170 107v117q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-117l171 -107v-42z" />
-    <glyph glyph-name="uniE53E" unicode="local_atm" 
-d="M427 128v256h-342v-256h342zM427 427q18 0 30 -12.5t12 -30.5v-256q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v256q0 18 12 30.5t30 12.5h342zM235 149v22h-43v42h85v22h-64q-9 0 -15 6t-6 15v64q0 9 6 15t15 6h22v22h42v-22h43v-42h-85v-22h64q9 0 15 -6
-t6 -15v-64q0 -9 -6 -15t-15 -6h-22v-22h-42z" />
-    <glyph glyph-name="uniE53F" unicode="local_attraction" 
-d="M332 154l-23 87l70 58l-90 5l-33 84l-33 -84l-91 -5l71 -58l-23 -87l76 49zM427 256q0 -17 12.5 -30t29.5 -13v-85q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v85q18 0 30 12.5t12 30.5q0 17 -12.5 30t-29.5 13v85q0 17 12.5 30t29.5 13h342q17 0 29.5 -13
-t12.5 -30v-85q-17 0 -29.5 -13t-12.5 -30z" />
-    <glyph glyph-name="uniE540" unicode="local_bar" 
-d="M159 363h194l38 42h-270zM448 405l-171 -192v-106h107v-43h-256v43h107v106l-171 192v43h384v-43z" />
-    <glyph glyph-name="uniE541" unicode="local_cafe" 
-d="M43 64v43h384v-43h-384zM427 341v64h-43v-64h43zM427 448q18 0 30 -12.5t12 -30.5v-64q0 -18 -12 -30t-30 -12h-43v-64q0 -35 -25 -60.5t-60 -25.5h-128q-35 0 -60.5 25.5t-25.5 60.5v213h342z" />
-    <glyph glyph-name="uniE542" unicode="local_car_wash" 
-d="M107 235h298l-32 96h-234zM373 128q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM139 128q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM404 341l44 -128v-170q0 -9 -6 -15.5t-15 -6.5h-22q-9 0 -15 6.5t-6 15.5
-v21h-256v-21q0 -9 -6 -15.5t-15 -6.5h-22q-9 0 -15 6.5t-6 15.5v170l44 128q7 22 31 22h234q24 0 31 -22zM149 405q-13 0 -22.5 9.5t-9.5 22.5q0 9 8 23.5t16 24.5l8 10q32 -37 32 -58q0 -13 -9.5 -22.5t-22.5 -9.5zM256 405q-14 0 -23 9.5t-9 22.5q0 9 8 23.5t16 24.5l8 10
-q32 -37 32 -58q0 -13 -9 -22.5t-23 -9.5zM363 405q-13 0 -22.5 9.5t-9.5 22.5q0 9 8 23.5t16 24.5l8 10q32 -37 32 -58q0 -13 -9.5 -22.5t-22.5 -9.5z" />
-    <glyph glyph-name="uniE543" unicode="local_convenience_store" 
-d="M341 256v107h-21v-43h-21v43h-22v-64h43v-43h21zM235 299v64h-64v-22h42v-21h-42v-64h64v21h-43v22h43zM405 363h64v-278h-170v86h-86v-86h-170v278h64v64h298v-64z" />
-    <glyph glyph-name="uniE544" unicode="local_drink" 
-d="M391 341l9 86h-288l9 -86h270zM256 107q26 0 45 19t19 45q0 19 -16 48t-32 48l-16 19q-64 -72 -64 -115q0 -26 19 -45t45 -19zM64 469h384l-43 -389q-2 -16 -14 -26.5t-28 -10.5h-214q-16 0 -28 10.5t-14 26.5z" />
-    <glyph glyph-name="uniE545" unicode="local_florist" 
-d="M256 395q-22 0 -37.5 -16t-15.5 -38t15.5 -37.5t37.5 -15.5t37.5 15.5t15.5 37.5t-15.5 38t-37.5 16zM119 293q0 33 31 48q-31 15 -31 48q0 22 16 38t38 16q15 0 30 -10v4q0 22 15.5 38t37.5 16t37.5 -16t15.5 -38v-4q15 10 30 10q22 0 38 -16t16 -38q0 -33 -31 -48
-q31 -15 31 -48q0 -22 -16 -37.5t-38 -15.5q-17 0 -30 9v-4q0 -22 -15.5 -37.5t-37.5 -15.5t-37.5 15.5t-15.5 37.5v4q-13 -9 -30 -9q-22 0 -38 15.5t-16 37.5zM256 43q-80 0 -136 56.5t-56 135.5q80 0 136 -56.5t56 -135.5zM256 43q0 79 56 135.5t136 56.5q0 -79 -56 -135.5
-t-136 -56.5z" />
-    <glyph glyph-name="uniE546" unicode="local_gas_station" 
-d="M384 299q9 0 15 6t6 15t-6 15t-15 6t-15 -6t-6 -15t6 -15t15 -6zM256 299v106h-128v-106h128zM422 358q15 -15 15 -38v-203q0 -22 -15.5 -37.5t-37.5 -15.5t-37.5 15.5t-15.5 37.5v107h-32v-160h-214v341q0 17 13 30t30 13h128q17 0 30 -13t13 -30v-149h21q17 0 30 -13
-t13 -30v-96q0 -9 6 -15t15 -6t15 6t6 15v154q-9 -4 -21 -4q-22 0 -37.5 15.5t-15.5 37.5q0 36 34 50l-45 45l23 22z" />
-    <glyph glyph-name="uniE547" unicode="local_grocery_store" 
-d="M363 128q17 0 29.5 -13t12.5 -30t-12.5 -29.5t-29.5 -12.5t-30 12.5t-13 29.5t13 30t30 13zM21 469h70l20 -42h316q9 0 15 -6.5t6 -15.5q0 -5 -3 -10l-76 -138q-12 -22 -37 -22h-159l-19 -35l-1 -3q0 -5 5 -5h247v-43h-256q-17 0 -29.5 13t-12.5 30q0 10 5 20l29 53
-l-77 162h-43v42zM149 128q17 0 30 -13t13 -30t-13 -29.5t-30 -12.5t-29.5 12.5t-12.5 29.5t12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE548" unicode="local_hospital" 
-d="M384 213v86h-85v85h-86v-85h-85v-86h85v-85h86v85h85zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE549" unicode="local_hotel" 
-d="M405 363q35 0 60.5 -25.5t25.5 -60.5v-192h-43v64h-384v-64h-43v320h43v-192h171v150h170zM149 235q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19z" />
-    <glyph glyph-name="uniE54A" unicode="local_laundry_service" 
-d="M256 85q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5zM149 427q-9 0 -15 -6.5t-6 -15.5t6 -15t15 -6t15.5 6t6.5 15t-6.5 15.5t-15.5 6.5zM213 427q-9 0 -15 -6.5t-6 -15.5t6 -15t15 -6t15.5 6t6.5 15t-6.5 15.5
-t-15.5 6.5zM384 469q18 0 30.5 -12t12.5 -30v-342q0 -18 -12.5 -30t-30.5 -12h-256q-18 0 -30.5 12t-12.5 30v342q0 18 12.5 30t30.5 12h256zM196 153l120 121q25 -25 25 -60.5t-25 -60.5t-60 -25t-60 25z" />
-    <glyph glyph-name="uniE54B" unicode="local_library" 
-d="M256 341q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM256 266q80 75 192 75v-234q-111 0 -192 -76q-81 76 -192 76v234q112 0 192 -75z" />
-    <glyph glyph-name="uniE54C" unicode="local_mall" 
-d="M256 235q44 0 75.5 31t31.5 75h-43q0 -26 -19 -45t-45 -19t-45 19t-19 45h-43q0 -44 31.5 -75t75.5 -31zM256 448q-26 0 -45 -19t-19 -45h128q0 26 -19 45t-45 19zM405 384q17 0 30 -13t13 -30v-256q0 -17 -13 -29.5t-30 -12.5h-298q-17 0 -30 12.5t-13 29.5v256
-q0 17 13 30t30 13h42q0 44 31.5 75.5t75.5 31.5t75.5 -31.5t31.5 -75.5h42z" />
-    <glyph glyph-name="uniE54D" unicode="local_movies" 
-d="M384 320v43h-43v-43h43zM384 235v42h-43v-42h43zM384 149v43h-43v-43h43zM171 320v43h-43v-43h43zM171 235v42h-43v-42h43zM171 149v43h-43v-43h43zM384 448h43v-384h-43v43h-43v-43h-170v43h-43v-43h-43v384h43v-43h43v43h170v-43h43v43z" />
-    <glyph glyph-name="uniE54E" unicode="local_offer" 
-d="M117 363q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM457 265q12 -12 12 -30t-12 -30l-150 -150q-12 -12 -30 -12t-30 12l-192 192q-12 12 -12 30v150q0 17 12.5 29.5t29.5 12.5h150q18 0 30 -12z" />
-    <glyph glyph-name="uniE54F" unicode="local_parking" 
-d="M282 277q17 0 29.5 13t12.5 30t-12.5 30t-29.5 13h-69v-86h69zM277 448q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-64v-128h-85v384h149z" />
-    <glyph glyph-name="uniE550" unicode="local_pharmacy" 
-d="M341 213v43h-64v64h-42v-64h-64v-43h64v-64h42v64h64zM448 405v-42l-43 -128l43 -128v-43h-384v43l43 128l-43 128v42h271l31 86l50 -19l-24 -67h56z" />
-    <glyph glyph-name="uniE551" unicode="local_phone" 
-d="M141 282q48 -93 141 -141l47 47q10 10 22 5q36 -12 76 -12q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22z" />
-    <glyph glyph-name="uniE552" unicode="local_pizza" 
-d="M256 192q17 0 30 13t13 30t-13 29.5t-30 12.5t-30 -12.5t-13 -29.5t13 -30t30 -13zM149 363q0 -17 13 -30t30 -13t30 13t13 30t-13 29.5t-30 12.5t-30 -12.5t-13 -29.5zM256 469q115 0 192 -85l-192 -341l-192 341q77 85 192 85z" />
-    <glyph glyph-name="uniE553" unicode="local_play" 
-d="M332 154l-23 87l70 58l-90 5l-33 84l-33 -84l-91 -5l71 -58l-23 -87l76 49zM427 256q0 -17 12.5 -30t29.5 -13v-85q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v85q18 0 30 12.5t12 30.5q0 17 -12.5 30t-29.5 13v85q0 17 12.5 30t29.5 13h342q17 0 29.5 -13
-t12.5 -30v-85q-17 0 -29.5 -13t-12.5 -30z" />
-    <glyph glyph-name="uniE554" unicode="local_post_office" 
-d="M427 341v43l-171 -107l-171 107v-43l171 -106zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342z" />
-    <glyph glyph-name="uniE555" unicode="local_print_shop" 
-d="M384 448v-85h-256v85h256zM405 256q9 0 15.5 6t6.5 15t-6.5 15.5t-15.5 6.5t-15 -6.5t-6 -15.5t6 -15t15 -6zM341 107v106h-170v-106h170zM405 341q26 0 45 -19t19 -45v-128h-85v-85h-256v85h-85v128q0 26 19 45t45 19h298z" />
-    <glyph glyph-name="uniE556" unicode="local_restaurant" 
-d="M317 266l-31 -31l147 -147l-30 -30l-147 147l-147 -147l-30 30l208 208q-12 24 -3.5 56t33.5 57q31 31 69 35.5t61 -18.5t18.5 -61.5t-35.5 -69.5q-25 -25 -57 -33t-56 4zM173 227l-90 90q-25 25 -25 60t25 60l150 -149z" />
-    <glyph glyph-name="uniE557" unicode="local_see" 
-d="M256 149q44 0 75.5 31.5t31.5 75.5t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75.5t75.5 -31.5zM192 469h128l39 -42h68q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h68zM188 256
-q0 28 20 48t48 20t48 -20t20 -48t-20 -48t-48 -20t-48 20t-20 48z" />
-    <glyph glyph-name="uniE558" unicode="local_shipping" 
-d="M384 117q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM416 309h-53v-53h95zM128 117q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM427 341l64 -85v-107h-43q0 -26 -19 -45t-45 -19t-45 19t-19 45h-128
-q0 -26 -19 -45t-45 -19t-45 19t-19 45h-43v235q0 17 13 30t30 13h299v-86h64z" />
-    <glyph glyph-name="uniE559" unicode="local_taxi" 
-d="M107 277h298l-32 96h-234zM373 171q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM139 171q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM404 384l44 -128v-171q0 -9 -6 -15
-t-15 -6h-22q-9 0 -15 6t-6 15v22h-256v-22q0 -9 -6 -15t-15 -6h-22q-9 0 -15 6t-6 15v171l44 128q6 21 31 21h53v43h128v-43h53q25 0 31 -21z" />
-    <glyph glyph-name="uniE55A" unicode="location_history" 
-d="M384 171v19q0 29 -44 47.5t-84 18.5t-84 -18.5t-44 -47.5v-19h256zM256 399q-24 0 -41 -17t-17 -41t17 -40.5t41 -16.5t41 16.5t17 40.5t-17 41t-41 17zM405 469q17 0 30 -12.5t13 -29.5v-299q0 -17 -13 -30t-30 -13h-85l-64 -64l-64 64h-85q-18 0 -30.5 13t-12.5 30v299
-q0 17 12.5 29.5t30.5 12.5h298z" />
-    <glyph glyph-name="uniE55B" unicode="map" 
-d="M320 107v253l-128 45v-253zM437 448q11 0 11 -11v-322q0 -8 -8 -10l-120 -41l-128 45l-114 -44l-3 -1q-11 0 -11 11v322q0 8 8 10l120 41l128 -45l114 44z" />
-    <glyph glyph-name="uniE55C" unicode="my_location" 
-d="M256 107q62 0 105.5 43.5t43.5 105.5t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -105.5t105.5 -43.5zM447 277h44v-42h-44q-7 -67 -55 -115t-115 -55v-44h-42v44q-67 7 -115 55t-55 115h-44v42h44q7 67 55 115t115 55v44h42v-44q67 -7 115 -55t55 -115z
-M256 341q35 0 60 -25t25 -60t-25 -60t-60 -25t-60 25t-25 60t25 60t60 25z" />
-    <glyph glyph-name="uniE55D" unicode="navigation" 
-d="M256 469l160 -390l-15 -15l-145 64l-145 -64l-15 15z" />
-    <glyph glyph-name="uniE55E" unicode="pin_drop" 
-d="M107 85h298v-42h-298v42zM213 341q0 -17 13 -29.5t30 -12.5q18 0 30.5 12.5t12.5 29.5t-13 30t-30 13t-30 -13t-13 -30zM384 341q0 -43 -32 -101.5t-64 -95.5l-32 -37q-14 15 -35.5 41t-57 88t-35.5 105q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5z" />
-    <glyph glyph-name="uniE55F" unicode="place" 
-d="M256 267q22 0 37.5 15.5t15.5 37.5t-15.5 37.5t-37.5 15.5t-37.5 -15.5t-15.5 -37.5t15.5 -37.5t37.5 -15.5zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -31 -15.5 -71t-37.5 -75t-43.5 -65.5t-36.5 -48.5l-16 -17q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72
-q0 62 43.5 105.5t105.5 43.5z" />
-    <glyph glyph-name="uniE560" unicode="rate_review" 
-d="M384 213v43h-117l-43 -43h160zM128 213h53l147 147q8 8 0 15l-38 38q-8 7 -15 0l-147 -147v-53zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE561" unicode="restaurant_menu" 
-d="M317 266l-31 -31l147 -147l-30 -30l-147 147l-147 -147l-30 30l208 208q-12 24 -3.5 56t33.5 57q31 31 69 35.5t61 -18.5t18.5 -61.5t-35.5 -69.5q-25 -25 -57 -33t-56 4zM173 227l-90 90q-25 25 -25 60t25 60l150 -149z" />
-    <glyph glyph-name="uniE562" unicode="satellite" 
-d="M107 128h298l-96 128l-74 -96l-54 64zM107 256q62 0 105.5 44t43.5 106h-43q0 -44 -31 -75.5t-75 -31.5v-43zM107 406v-65q26 0 45 19.5t19 45.5h-64zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE563" unicode="store_mall_directory" 
-d="M256 128v85h-128v-85h128zM448 213h-21v-128h-43v128h-85v-128h-214v128h-21v43l21 107h342l21 -107v-43zM427 427v-43h-342v43h342z" />
-    <glyph glyph-name="uniE564" unicode="terrain" 
-d="M299 384l192 -256h-470l128 171l96 -128l34 25l-60 81z" />
-    <glyph glyph-name="uniE565" unicode="traffic" 
-d="M256 320q18 0 30.5 13t12.5 30q0 18 -12.5 30t-30.5 12t-30.5 -12t-12.5 -30q0 -17 12.5 -30t30.5 -13zM256 213q18 0 30.5 13t12.5 30t-13 30t-30 13q-18 0 -30.5 -13t-12.5 -30t12.5 -30t30.5 -13zM256 107q18 0 30.5 12.5t12.5 29.5t-13 30t-30 13q-18 0 -30.5 -13
-t-12.5 -30t12.5 -29.5t30.5 -12.5zM427 299q0 -30 -18 -52.5t-46 -30.5v-24h64q0 -30 -18 -52t-46 -30v-25q0 -9 -6.5 -15t-15.5 -6h-170q-9 0 -15.5 6t-6.5 15v25q-28 8 -46 30t-18 52h64v24q-28 8 -46 30.5t-18 52.5h64v24q-28 8 -46 30t-18 52h64v22q0 9 6.5 15t15.5 6
-h170q9 0 15.5 -6t6.5 -15v-22h64q0 -30 -18 -52t-46 -30v-24h64z" />
-    <glyph glyph-name="uniE566" unicode="directions_run" 
-d="M211 99l-149 29l8 43l105 -21l34 173l-39 -15v-73h-42v100l111 47q3 0 8.5 1t8.5 1q21 0 36 -21l21 -34q29 -51 92 -51v-43q-71 0 -117 53l-13 -64l45 -42v-160h-43v128l-45 42zM288 395q-17 0 -30 13t-13 30t13 29.5t30 12.5t29.5 -12.5t12.5 -29.5t-12.5 -30t-29.5 -13
-z" />
-    <glyph glyph-name="uniE567" unicode="add_location" 
-d="M341 299v42h-64v64h-42v-64h-64v-42h64v-64h42v64h64zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -31 -15.5 -71t-37.5 -75t-43.5 -65.5t-36.5 -48.5l-16 -17q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72q0 62 43.5 105.5t105.5 43.5z" />
-    <glyph glyph-name="uniE568" unicode="edit_location" 
-d="M318 351q6 5 0 11l-20 20q-6 6 -11 0l-15 -15l31 -31zM223 256l71 71l-31 31l-71 -71v-31h31zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -31 -15.5 -71t-37.5 -75t-43.5 -65.5t-36.5 -48.5l-16 -17q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72q0 62 43.5 105.5
-t105.5 43.5z" />
-    <glyph glyph-name="uniE569" unicode="near_me" 
-d="M448 448l-161 -384h-21l-56 146l-146 56v21z" />
-    <glyph glyph-name="uniE56A" unicode="person_pin_circle" 
-d="M256 213q55 0 85 46q0 19 -29.5 31.5t-55.5 12.5t-55.5 -12.5t-29.5 -31.5q30 -46 85 -46zM256 427q-17 0 -30 -13t-13 -30q0 -18 13 -30.5t30 -12.5t30 12.5t13 30.5q0 17 -13 30t-30 13zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -31 -15.5 -71t-37.5 -75t-43.5 -65.5
-t-36.5 -48.5l-16 -17q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72q0 62 43.5 105.5t105.5 43.5z" />
-    <glyph glyph-name="uniE56B" unicode="zoom_out_map" 
-d="M448 192v-128h-128l49 49l-62 61l31 31l61 -62zM192 64h-128v128l49 -49l61 62l31 -31l-62 -61zM64 320v128h128l-49 -49l62 -61l-31 -31l-61 62zM320 448h128v-128l-49 49l-61 -62l-31 31l62 61z" />
-    <glyph glyph-name="uniE56C" unicode="restaurant" 
-d="M341 384q0 30 32.5 57.5t74.5 27.5v-426h-53v170h-54v171zM235 320v149h42v-149q0 -34 -23 -58.5t-57 -26.5v-192h-53v192q-34 2 -57 26.5t-23 58.5v149h43v-149h42v149h43v-149h43z" />
-    <glyph glyph-name="uniE56D" unicode="ev_station" 
-d="M171 128l85 149h-43v107l-85 -160h43v-96zM384 299q9 0 15 6t6 15t-6 15t-15 6t-15 -6t-6 -15t6 -15t15 -6zM422 358q15 -15 15 -38v-203q0 -22 -15.5 -37.5t-37.5 -15.5t-37.5 15.5t-15.5 37.5v107h-32v-160h-214v341q0 17 13 30t30 13h128q17 0 30 -13t13 -30v-149h21
-q17 0 30 -13t13 -30v-96q0 -9 6 -15t15 -6t15 6t6 15v154q-9 -4 -21 -4q-22 0 -37.5 15.5t-15.5 37.5q0 36 34 50l-45 45l23 22z" />
-    <glyph glyph-name="uniE56E" unicode="streetview" 
-d="M245 384q0 -57 41 -98l-209 -209q-13 13 -13 30v298q0 17 13 30t30 13h154q-16 -30 -16 -64zM277 384q0 44 31.5 75.5t75.5 31.5t75.5 -31.5t31.5 -75.5t-31.5 -75.5t-75.5 -31.5t-75.5 31.5t-31.5 75.5zM268 206q52 39 116 39q33 0 64 -11v-127q0 -17 -13 -30t-30 -13
-h-149v117q0 15 12 25z" />
-    <glyph glyph-name="uniE56F" unicode="subway" 
-d="M384 173v147q0 38 -33 51t-95 13q-59 0 -93.5 -13t-34.5 -51v-147q0 -23 16.5 -39.5t39.5 -16.5l-24 -24v-8h36l32 32h60l32 -32h32v8l-24 24q23 0 39.5 16.5t16.5 39.5zM380 452q43 -16 66 -50t23 -79v-280h-426v280q0 45 23 79t66 50q43 17 124 17t124 -17zM150 320
-h213v-107h-213v107zM160 171q0 9 6 15t15 6t15.5 -6t6.5 -15t-6.5 -15.5t-15.5 -6.5t-15 6.5t-6 15.5zM309 171q0 9 6.5 15t15.5 6t15 -6t6 -15t-6 -15.5t-15 -6.5t-15.5 6.5t-6.5 15.5z" />
-    <glyph glyph-name="uniE570" unicode="train" 
-d="M352 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM277 299h107v85h-107v-85zM235 299v85h-107v-85h107zM160 149q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM256 469q83 0 127 -17t44 -68v-203
-q0 -31 -22 -52.5t-53 -21.5l32 -32v-11h-43l-42 43h-81l-42 -43h-48v11l32 32q-31 0 -53 21.5t-22 52.5v203q0 27 14 45t40.5 26t53 11t63.5 3z" />
-    <glyph glyph-name="uniE571" unicode="tram" 
-d="M363 213v107h-214v-107h214zM256 117q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM405 151q0 -28 -14.5 -47t-40.5 -19h2l32 -32v-10h-43l-42 42h-81l-42 -42h-48v10l34 34q-23 5 -39 23t-16 41v180q0 41 34 56.5t93 17.5l17 32h-102v32h214
-v-32h-70l-16 -32q63 -2 95.5 -17t32.5 -57v-180z" />
-    <glyph glyph-name="uniE572" unicode="transfer_within_a_station" 
-d="M123 322l-59 -301h45l37 171l46 -43v-128h43v161l-44 44l13 64q45 -55 116 -55v42q-29 0 -53.5 14.5t-39.5 38.5l-20 34q-11 20 -36 20q-9 0 -16 -3l-112 -46v-100h42v71l38 16v0zM203 395q-17 0 -30 12.5t-13 29.5t13 30t30 13t29.5 -13t12.5 -30t-12.5 -29.5
-t-29.5 -12.5zM416 91v37l53 -53l-53 -54v38h-117v32h117zM352 181h117v-32h-117v-37l-53 53l53 54v-38z" />
-    <glyph glyph-name="uniE5C3" unicode="apps" 
-d="M341 85v86h86v-86h-86zM341 213v86h86v-86h-86zM213 341v86h86v-86h-86zM341 427h86v-86h-86v86zM213 213v86h86v-86h-86zM85 213v86h86v-86h-86zM85 85v86h86v-86h-86zM213 85v86h86v-86h-86zM85 341v86h86v-86h-86z" />
-    <glyph glyph-name="uniE5C4" unicode="arrow_back" 
-d="M427 277v-42h-260l119 -120l-30 -30l-171 171l171 171l30 -30l-119 -120h260z" />
-    <glyph glyph-name="uniE5C5" unicode="arrow_drop_down" 
-d="M149 299h214l-107 -107z" />
-    <glyph glyph-name="uniE5C6" unicode="arrow_drop_down_circle" 
-d="M256 213l85 86h-170zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE5C7" unicode="arrow_drop_up" 
-d="M149 213l107 107l107 -107h-214z" />
-    <glyph glyph-name="uniE5C8" unicode="arrow_forward" 
-d="M256 427l171 -171l-171 -171l-30 30l119 120h-260v42h260l-119 120z" />
-    <glyph glyph-name="uniE5C9" unicode="cancel" 
-d="M363 179l-77 77l77 77l-30 30l-77 -77l-77 77l-30 -30l77 -77l-77 -77l30 -30l77 77l77 -77zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE5CA" unicode="check" 
-d="M192 167l226 226l30 -30l-256 -256l-119 119l30 30z" />
-    <glyph glyph-name="uniE5CB" unicode="chevron_left" 
-d="M329 354l-98 -98l98 -98l-30 -30l-128 128l128 128z" />
-    <glyph glyph-name="uniE5CC" unicode="chevron_right" 
-d="M213 384l128 -128l-128 -128l-30 30l98 98l-98 98z" />
-    <glyph glyph-name="uniE5CD" unicode="close" 
-d="M405 375l-119 -119l119 -119l-30 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" />
-    <glyph glyph-name="uniE5CE" unicode="expand_less" 
-d="M256 341l128 -128l-30 -30l-98 98l-98 -98l-30 30z" />
-    <glyph glyph-name="uniE5CF" unicode="expand_more" 
-d="M354 329l30 -30l-128 -128l-128 128l30 30l98 -98z" />
-    <glyph glyph-name="uniE5D0" unicode="fullscreen" 
-d="M299 405h106v-106h-42v64h-64v42zM363 149v64h42v-106h-106v42h64zM107 299v106h106v-42h-64v-64h-42zM149 213v-64h64v-42h-106v106h42z" />
-    <glyph glyph-name="uniE5D1" unicode="fullscreen_exit" 
-d="M341 341h64v-42h-106v106h42v-64zM299 107v106h106v-42h-64v-64h-42zM171 341v64h42v-106h-106v42h64zM107 171v42h106v-106h-42v64h-64z" />
-    <glyph glyph-name="uniE5D2" unicode="menu" 
-d="M64 384h384v-43h-384v43zM64 235v42h384v-42h-384zM64 128v43h384v-43h-384z" />
-    <glyph glyph-name="uniE5D3" unicode="keyboard_control" 
-d="M256 299q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM384 299q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM128 299q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13z" />
-    <glyph glyph-name="uniE5D4" unicode="more_vert" 
-d="M256 171q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM256 299q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM256 341q-17 0 -30 13t-13 30t13 30t30 13t30 -13t13 -30t-13 -30t-30 -13z" />
-    <glyph glyph-name="uniE5D5" unicode="refresh" 
-d="M377 377l50 50v-150h-150l69 69q-38 38 -90 38q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5q42 0 75 23.5t46 61.5h44q-14 -56 -60 -92t-105 -36q-70 0 -120 50t-50 121t50 121t120 50q71 0 121 -50z" />
-    <glyph glyph-name="uniE5D6" unicode="unfold_less" 
-d="M354 397l-98 -98l-98 98l30 30l68 -68l68 68zM158 115l98 98l98 -98l-30 -30l-68 68l-68 -68z" />
-    <glyph glyph-name="uniE5D7" unicode="unfold_more" 
-d="M256 124l68 68l30 -30l-98 -98l-98 98l30 30zM256 388l-68 -68l-30 30l98 98l98 -98l-30 -30z" />
-    <glyph glyph-name="uniE5D8" unicode="arrow_upward" 
-d="M85 256l171 171l171 -171l-31 -30l-119 119v-260h-42v260l-120 -119z" />
-    <glyph glyph-name="uniE5D9" unicode="subdirectory_arrow_left" 
-d="M235 320l30 -30l-77 -77h196v214h43v-256h-239l77 -77l-30 -30l-128 128z" />
-    <glyph glyph-name="uniE5DA" unicode="subdirectory_arrow_right" 
-d="M405 192l-128 -128l-30 30l77 77h-239v256h43v-214h196l-77 77l30 30z" />
-    <glyph glyph-name="uniE5DB" unicode="arrow_downward" 
-d="M427 256l-171 -171l-171 171l31 30l119 -119v260h42v-260l120 119z" />
-    <glyph glyph-name="uniE5DC" unicode="first_page" 
-d="M128 384h43v-256h-43v256zM393 158l-30 -30l-128 128l128 128l30 -30l-98 -98z" />
-    <glyph glyph-name="uniE5DD" unicode="last_page" 
-d="M341 384h43v-256h-43v256zM119 354l30 30l128 -128l-128 -128l-30 30l98 98z" />
-    <glyph glyph-name="uniE60E" unicode="adb" 
-d="M320 320q9 0 15 6t6 15t-6 15.5t-15 6.5t-15 -6.5t-6 -15.5t6 -15t15 -6zM192 320q9 0 15 6t6 15t-6 15.5t-15 6.5t-15 -6.5t-6 -15.5t6 -15t15 -6zM344 419q61 -45 61 -120v-22h-298v22q0 75 61 120l-45 45l18 17l49 -49q32 16 66 16t66 -16l49 49l18 -17zM107 171v85
-h298v-85q0 -62 -43.5 -106t-105.5 -44t-105.5 44t-43.5 106z" />
-    <glyph glyph-name="uniE60F" unicode="bluetooth_audio" 
-d="M275 164l-40 41v-81zM235 388v-81l40 41zM335 348l-92 -92l92 -92l-122 -121h-21v162l-98 -98l-30 30l119 119l-119 119l30 30l98 -98v162h21zM417 369q31 -50 31 -111t-33 -113l-25 25q21 42 21 86t-21 86zM304 256l49 49q10 -25 10 -49q0 -25 -10 -50z" />
-    <glyph glyph-name="uniE610" unicode="disc_full" 
-d="M213 213q17 0 30 13t13 30t-13 30t-30 13t-29.5 -13t-12.5 -30t12.5 -30t29.5 -13zM213 427q71 0 121 -50.5t50 -120.5t-50 -120.5t-121 -50.5q-70 0 -120 50t-50 121t50 121t120 50zM427 363h42v-107h-42v107zM427 171v42h42v-42h-42z" />
-    <glyph glyph-name="uniE611" unicode="do_not_disturb_alt" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5q0 57 -37 105l-239 -239q48 -37 105 -37zM85 256q0 -57 37 -105l239 239q-48 37 -105 37q-70 0 -120.5 -50.5t-50.5 -120.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE612" unicode="do_not_disturb" 
-d="M391 151q36 45 36 105q0 70 -50.5 120.5t-120.5 50.5q-60 0 -105 -36zM256 85q60 0 105 36l-240 240q-36 -45 -36 -105q0 -70 50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5
-z" />
-    <glyph glyph-name="uniE613" unicode="drive_eta" 
-d="M107 299h298l-32 96h-234zM373 192q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM139 192q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM404 405l44 -128v-170q0 -9 -6 -15.5t-15 -6.5h-22q-9 0 -15 6.5t-6 15.5
-v21h-256v-21q0 -9 -6 -15.5t-15 -6.5h-22q-9 0 -15 6.5t-6 15.5v170l44 128q7 22 31 22h234q24 0 31 -22z" />
-    <glyph glyph-name="uniE614" unicode="event_available" 
-d="M405 107v234h-298v-234h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43v-43h170v43h43v-43h21zM353 276l-127 -127l-68 68l23 23l45 -45l104 104z" />
-    <glyph glyph-name="uniE615" unicode="event_busy" 
-d="M405 107v234h-298v-234h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43v-43h170v43h43v-43h21zM199 149l-23 23l52 52l-52 52l23 23l52 -52l52 52l22 -23l-52 -52l52 -52l-22 -23l-52 52z
-" />
-    <glyph glyph-name="uniE616" unicode="event_note" 
-d="M299 213v-42h-150v42h150zM405 107v234h-298v-234h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43v-43h170v43h43v-43h21zM363 299v-43h-214v43h214z" />
-    <glyph glyph-name="uniE617" unicode="folder_special" 
-d="M383 149l-17 71l55 48l-72 6l-29 67l-29 -67l-72 -6l55 -48l-17 -71l63 37zM427 384q17 0 29.5 -13t12.5 -30v-213q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h128l43 -43h171z" />
-    <glyph glyph-name="uniE618" unicode="mms" 
-d="M107 213h298l-96 128l-74 -96l-54 64zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE619" unicode="more" 
-d="M405 224q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM299 224q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM192 224q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9zM469 448q17 0 30 -13t13 -30v-298
-q0 -17 -13 -30t-30 -13h-318q-22 0 -36 19l-115 173l115 173q14 19 34 19h320z" />
-    <glyph glyph-name="uniE61A" unicode="network_locked" 
-d="M448 171v32q0 13 -9 22.5t-23 9.5t-23 -9.5t-9 -22.5v-32h64zM469 171q9 0 15.5 -6.5t6.5 -15.5v-85q0 -9 -6.5 -15t-15.5 -6h-106q-9 0 -15.5 6t-6.5 15v85q0 9 6.5 15.5t15.5 6.5v32q0 22 15.5 37.5t37.5 15.5t37.5 -15.5t15.5 -37.5v-32zM416 299q-40 0 -68 -28
-t-28 -68v-6q-21 -19 -21 -48v-64h-278l406 406v-193q-2 0 -5.5 0.5t-5.5 0.5z" />
-    <glyph glyph-name="uniE61B" unicode="phone_bluetooth_speaker" 
-d="M427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q47 -92 141 -141l47 47q9 9 22 5q36 -12 76 -12zM384 358v-40l20 20zM384 450v-40l20 20zM314 309l-15 15
-l59 60l-59 60l15 15l49 -49v81h10l61 -61l-46 -46l46 -46l-61 -61h-10v81z" />
-    <glyph glyph-name="uniE61C" unicode="phone_forwarded" 
-d="M427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q47 -92 141 -141l47 47q9 9 22 5q36 -12 76 -12zM384 277v64h-85v86h85v64l107 -107z" />
-    <glyph glyph-name="uniE61D" unicode="phone_in_talk" 
-d="M320 256q0 26 -19 45t-45 19v43q44 0 75.5 -31.5t31.5 -75.5h-43zM405 256q0 62 -43.5 105.5t-105.5 43.5v43q80 0 136 -56t56 -136h-43zM427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15
-q0 -40 12 -76q4 -13 -5 -22l-47 -47q47 -92 141 -141l47 47q9 9 22 5q36 -12 76 -12z" />
-    <glyph glyph-name="uniE61E" unicode="phone_locked" 
-d="M410 427v10q0 15 -11 26t-26 11t-25.5 -11t-10.5 -26v-10h73zM427 427q9 0 15 -6.5t6 -15.5v-85q0 -9 -6 -15t-15 -6h-107q-9 0 -15 6t-6 15v85q0 9 6 15.5t15 6.5v10q0 22 15.5 38t37.5 16t38 -16t16 -38v-10zM427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6
-q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q47 -92 141 -141l47 47q9 9 22 5q36 -12 76 -12z" />
-    <glyph glyph-name="uniE61F" unicode="phone_missed" 
-d="M506 156q6 -6 6 -15t-6 -15l-53 -53q-6 -6 -15 -6t-15 6q-28 26 -57 40q-12 5 -12 19v66q-46 15 -98 15t-98 -15v-66q0 -15 -12 -20q-32 -15 -57 -39q-6 -6 -15 -6t-15 6l-53 53q-6 6 -6 15t6 15q105 100 250 100t250 -100zM139 395v-75h-32v128h128v-32h-75l96 -96
-l128 128l21 -21l-149 -150z" />
-    <glyph glyph-name="uniE620" unicode="phone_paused" 
-d="M405 448h43v-149h-43v149zM427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q47 -92 141 -141l47 47q9 9 22 5q36 -12 76 -12zM363 448v-149h-43v149h43z" />
-    <glyph glyph-name="uniE623" unicode="sd_card" 
-d="M384 341v86h-43v-86h43zM320 341v86h-43v-86h43zM256 341v86h-43v-86h43zM384 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5l1 256l127 128h171z" />
-    <glyph glyph-name="uniE624" unicode="sim_card_alert" 
-d="M277 235v106h-42v-106h42zM277 149v43h-42v-43h42zM384 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5l1 256l127 128h171z" />
-    <glyph glyph-name="uniE625" unicode="sms" 
-d="M363 277v43h-43v-43h43zM277 277v43h-42v-43h42zM192 277v43h-43v-43h43zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE626" unicode="sms_failed" 
-d="M277 299v85h-42v-85h42zM277 213v43h-42v-43h42zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE627" unicode="sync" 
-d="M256 128v64l85 -85l-85 -86v64q-70 0 -120.5 50.5t-50.5 120.5q0 50 27 91l31 -31q-15 -27 -15 -60q0 -53 37.5 -90.5t90.5 -37.5zM256 427q70 0 120.5 -50.5t50.5 -120.5q0 -50 -27 -91l-31 31q15 27 15 60q0 53 -37.5 90.5t-90.5 37.5v-64l-85 85l85 86v-64z" />
-    <glyph glyph-name="uniE628" unicode="sync_disabled" 
-d="M427 427l-51 -51q51 -51 51 -120q0 -48 -26 -90l-32 31q15 30 15 59q0 52 -38 90l-47 -47v128h128zM61 397l27 27l335 -336l-27 -27l-50 50q-24 -14 -48 -20v44q8 3 17 8l-172 172q-15 -30 -15 -59q0 -52 38 -90l47 47v-128h-128l51 51q-51 51 -51 120q0 48 26 90z
-M213 377q-6 -2 -16 -8l-31 32q25 15 47 20v-44z" />
-    <glyph glyph-name="uniE629" unicode="sync_problem" 
-d="M235 235v128h42v-128h-42zM448 427l-50 -51q50 -50 50 -120q0 -59 -36 -105t-92 -60v44q38 13 61.5 46t23.5 75q0 53 -37 90l-48 -47v128h128zM235 149v43h42v-43h-42zM64 256q0 59 36 105t92 60v-44q-38 -13 -61.5 -46t-23.5 -75q0 -53 37 -90l48 47v-128h-128l50 51
-q-50 50 -50 120z" />
-    <glyph glyph-name="uniE62A" unicode="system_update" 
-d="M341 235l-85 -86l-85 86h64v106h42v-106h64zM363 107v298h-214v-298h214zM363 490q17 0 29.5 -12.5t12.5 -29.5v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE62B" unicode="tap_and_play" 
-d="M363 490q17 0 29.5 -12.5t12.5 -29.5v-363q0 -17 -12.5 -29.5t-29.5 -12.5h-45q-3 43 -20 85h65v277h-214v-128q-25 11 -42 14v157q0 17 12.5 30t29.5 13zM43 256q97 0 165.5 -68.5t68.5 -166.5h-42q0 79 -56.5 135.5t-135.5 56.5v43zM43 85q26 0 45 -19t19 -45h-64v64z
-M43 171q62 0 105.5 -44t43.5 -106h-43q0 44 -31 75.5t-75 31.5v43z" />
-    <glyph glyph-name="uniE62C" unicode="time_to_leave" 
-d="M107 299h298l-32 96h-234zM373 192q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM139 192q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM404 405l44 -128v-170q0 -9 -6 -15.5t-15 -6.5h-22q-9 0 -15 6.5t-6 15.5
-v21h-256v-21q0 -9 -6 -15.5t-15 -6.5h-22q-9 0 -15 6.5t-6 15.5v170l44 128q7 22 31 22h234q24 0 31 -22z" />
-    <glyph glyph-name="uniE62D" unicode="vibration" 
-d="M341 107v298h-170v-298h170zM352 448q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192zM405 149v214h43v-214h-43zM469 320h43v-128h-43v128zM64 149v214h43v-214h-43zM0 192v128h43v-128h-43z" />
-    <glyph glyph-name="uniE62E" unicode="voice_chat" 
-d="M384 213v171l-85 -68v68h-171v-171h171v69zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE62F" unicode="vpn_lock" 
-d="M213 65v42q-17 0 -29.5 12.5t-12.5 29.5v22l-103 102q-4 -16 -4 -38q0 -65 43 -113.5t106 -56.5zM404 256h43q1 -7 1 -21q0 -89 -62.5 -151.5t-150.5 -62.5q-89 0 -151.5 62.5t-62.5 151.5q0 88 62.5 150.5t151.5 62.5q31 0 64 -10v-54q0 -17 -13 -30t-30 -13h-43v-42
-q0 -9 -6 -15.5t-15 -6.5h-43v-42h128q9 0 15.5 -6.5t6.5 -15.5v-64h21q31 0 41 -29q44 47 44 115q0 14 -1 21zM452 427v10q0 15 -10.5 26t-25.5 11t-25.5 -11t-10.5 -26v-10h72zM469 427q9 0 15.5 -6.5t6.5 -15.5v-85q0 -9 -6.5 -15t-15.5 -6h-106q-9 0 -15.5 6t-6.5 15v85
-q0 9 6.5 15.5t15.5 6.5v10q0 22 15.5 38t37.5 16t37.5 -16t15.5 -38v-10z" />
-    <glyph glyph-name="uniE630" unicode="airline_seat_flat" 
-d="M152 254q-19 -19 -45 -19.5t-45 18.5t-19.5 45t18.5 45t45 19.5t45 -18.5t19.5 -45t-18.5 -45zM43 213h426v-42h-128v-43h-170v43h-128v42zM469 277v-42h-277v128h192q35 0 60 -25.5t25 -60.5z" />
-    <glyph glyph-name="uniE631" unicode="airline_seat_flat_angled" 
-d="M156 294q-24 -11 -49.5 -2.5t-36.5 32.5t-2.5 49.5t32.5 36.5t49.5 2.5t36.5 -32.5t2.5 -49.5t-32.5 -36.5zM32 253l15 40l405 -146l-14 -40l-97 34v-34h-170v96zM475 207l-15 -40l-264 95l45 121l182 -66q34 -12 49 -44t3 -66z" />
-    <glyph glyph-name="uniE632" unicode="airline_seat_individual_suite" 
-d="M405 363q35 0 60.5 -25.5t25.5 -60.5v-128h-470v214h43v-150h171v150h170zM149 235q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19z" />
-    <glyph glyph-name="uniE633" unicode="airline_seat_legroom_extra" 
-d="M487 144q7 -12 2 -25t-17 -19l-79 -36l-73 149h-149q-26 0 -45 19t-19 45v171h128v-128h75q27 0 38 -24l72 -149l24 11q12 5 24.5 1t18.5 -15zM85 256q0 -26 19 -45t45 -19h128v-43h-128q-44 0 -75 31.5t-31 75.5v192h42v-192z" />
-    <glyph glyph-name="uniE634" unicode="airline_seat_legroom_normal" 
-d="M437 128q13 0 22.5 -9t9.5 -23t-9.5 -23t-22.5 -9h-96v149h-149q-26 0 -45 19t-19 45v171h128v-128h107q17 0 29.5 -13t12.5 -30v-149h32zM107 256q0 -26 19 -45t45 -19h128v-43h-128q-44 0 -75.5 31.5t-31.5 75.5v192h43v-192z" />
-    <glyph glyph-name="uniE635" unicode="airline_seat_legroom_reduced" 
-d="M107 256q0 -26 19 -45t45 -19h85v-43h-85q-44 0 -75.5 31.5t-31.5 75.5v192h43v-192zM426 102q3 -15 -6.5 -26.5t-24.5 -11.5h-96v64l21 85h-128q-26 0 -45 19t-19 45v171h128v-128h107q17 0 29.5 -13t12.5 -30l-42 -149h30q12 0 21.5 -7.5t11.5 -18.5z" />
-    <glyph glyph-name="uniE636" unicode="airline_seat_recline_extra" 
-d="M346 192l123 -96l-32 -32l-81 64h-146q-23 0 -40.5 14.5t-22.5 37.5l-29 126q-3 20 8.5 36t30.5 20h1q22 3 37 -9l35 -27q48 -37 100 -27v-46q-48 -8 -110 26l22 -87h104zM341 107v-43h-150q-40 0 -70 25.5t-36 64.5l-42 209h42l42 -202q4 -23 22 -38.5t42 -15.5h150z
-M114 392q-14 10 -17 27.5t7 31.5t27.5 17.5t31.5 -6.5q14 -11 17.5 -28.5t-6.5 -31.5t-28 -17t-32 7z" />
-    <glyph glyph-name="uniE637" unicode="airline_seat_recline_normal" 
-d="M427 84l-31 -31l-75 75h-108q-26 0 -45 19t-19 45v123q0 19 14.5 33.5t33.5 14.5h1q19 0 35 -16l30 -33q17 -19 45.5 -31t54.5 -12v-47q-62 0 -118 47v-79h74zM128 171q0 -26 19 -45t45 -19h128v-43h-128q-44 0 -75.5 31.5t-31.5 75.5v192h43v-192zM162 397
-q-13 13 -13 30t13 30t30 13t30 -13t13 -30t-13 -30t-30 -13t-30 13z" />
-    <glyph glyph-name="uniE638" unicode="confirmation_number" 
-d="M277 331v42h-42v-42h42zM277 235v42h-42v-42h42zM277 139v42h-42v-42h42zM469 299q-17 0 -29.5 -13t-12.5 -30t12.5 -30t29.5 -13v-85q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v85q18 0 30 12.5t12 30.5q0 17 -12.5 30t-29.5 13v85q0 18 12.5 30.5
-t29.5 12.5h342q17 0 29.5 -12.5t12.5 -30.5v-85z" />
-    <glyph glyph-name="uniE639" unicode="live_tv" 
-d="M192 299l149 -86l-149 -85v171zM448 85v256h-384v-256h384zM448 384q17 0 30 -12.5t13 -30.5v-256q0 -17 -13 -29.5t-30 -12.5h-384q-17 0 -30 12.5t-13 29.5v256q0 18 13 30.5t30 12.5h162l-70 70l15 15l85 -85l85 85l15 -15l-70 -70h162z" />
-    <glyph glyph-name="uniE63A" unicode="ondemand_video" 
-d="M341 277l-149 -85v171zM448 149v256h-384v-256h384zM448 448q17 0 30 -12.5t13 -30.5l-1 -256q0 -17 -12.5 -29.5t-29.5 -12.5h-107v-43h-170v43h-107q-18 0 -30.5 12.5t-12.5 29.5v256q0 18 12.5 30.5t30.5 12.5h384z" />
-    <glyph glyph-name="uniE63B" unicode="personal_video" 
-d="M448 149v256h-384v-256h384zM448 448q17 0 30 -12.5t13 -30.5l-1 -256q0 -17 -12.5 -29.5t-29.5 -12.5h-107v-43h-170v43h-107q-18 0 -30.5 12.5t-12.5 29.5v256q0 18 12.5 30.5t30.5 12.5h384z" />
-    <glyph glyph-name="uniE63C" unicode="power" 
-d="M342 363q16 0 29 -13.5t13 -29.5v-117l-75 -75v-64h-106v64l-75 75v117q0 16 13 29.5t29 13.5h1v85h42v-85h86v85h42z" />
-    <glyph glyph-name="uniE63D" unicode="wc" 
-d="M352 384q-18 0 -30.5 12.5t-12.5 30.5t12.5 30t30.5 12t30.5 -12t12.5 -30t-12.5 -30.5t-30.5 -12.5zM160 384q-18 0 -30.5 12.5t-12.5 30.5t12.5 30t30.5 12t30.5 -12t12.5 -30t-12.5 -30.5t-30.5 -12.5zM384 43h-64v128h-64l54 162q11 30 41 30h2q30 0 41 -30l54 -162
-h-64v-128zM117 43v160h-32v117q0 17 13 30t30 13h64q17 0 30 -13t13 -30v-117h-32v-160h-86z" />
-    <glyph glyph-name="uniE63E" unicode="wifi" 
-d="M107 235q62 61 149.5 61t148.5 -61l-42 -43q-44 44 -107 44t-107 -44zM192 149q26 26 64 26t64 -26l-64 -64zM21 320q98 97 235.5 97t234.5 -97l-43 -43q-80 79 -192 79t-192 -79z" />
-    <glyph glyph-name="uniE63F" unicode="enhanced_encryption" 
-d="M341 171v42h-64v64h-42v-64h-64v-42h64v-64h42v64h64zM190 384v-43h132v43q0 27 -19.5 46.5t-46.5 19.5t-46.5 -19.5t-19.5 -46.5zM384 341q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h21v43
-q0 44 31.5 75.5t75.5 31.5t75.5 -31.5t31.5 -75.5v-43h21z" />
-    <glyph glyph-name="uniE640" unicode="network_check" 
-d="M107 235q64 64 156 61l-28 -61q-49 -6 -86 -43zM363 192q-11 11 -26 21l12 62q32 -16 56 -40zM448 277q-39 39 -88 59l11 60q69 -25 120 -76zM21 320q59 59 136.5 82.5t156.5 9.5l-25 -57q-61 8 -120.5 -12.5t-104.5 -65.5zM339 405q11 0 11 -10l-52 -275v-1
-q-3 -14 -15 -24t-27 -10q-18 0 -30.5 12.5t-12.5 30.5q0 11 5 21l111 248q3 8 10 8z" />
-    <glyph glyph-name="uniE641" unicode="no_encryption" 
-d="M190 384v-26l-39 39q5 40 34.5 67t70.5 27q44 0 75.5 -31.5t31.5 -75.5v-43h21q17 0 30 -12.5t13 -29.5v-178l-221 220h116v43q0 27 -19.5 46.5t-46.5 19.5t-46.5 -19.5t-19.5 -46.5zM448 47l-26 -26l-24 24q-8 -2 -14 -2h-256q-17 0 -30 12.5t-13 29.5v214q0 25 23 37
-l-44 43l26 26z" />
-    <glyph glyph-name="uniE642" unicode="rv_hookup" 
-d="M363 469l64 -64l-64 -64v43h-171v43h171v42zM384 213v64h-85v-64h85zM235 85q9 0 15 6.5t6 15.5t-6 15t-15 6t-15.5 -6t-6.5 -15t6.5 -15.5t15.5 -6.5zM427 149h42v-42h-170q0 -26 -19 -45t-45 -19t-45 19t-19 45h-43q-17 0 -30 12.5t-13 29.5v64h150v64h-86v-42l-64 64
-l64 64v-43h235q17 0 30 -13t13 -30v-128z" />
-    <glyph glyph-name="uniE643" unicode="do_not_disturb_off" 
-d="M149 235h74l-43 42h-31v-42zM48 464l416 -416l-28 -27l-59 60q-54 -38 -121 -38q-88 0 -150.5 62.5t-62.5 150.5q0 67 38 121l-60 59zM363 277h-74l-154 154q54 38 121 38q88 0 150.5 -62.5t62.5 -150.5q0 -67 -38 -121l-99 100h31v42z" />
-    <glyph glyph-name="uniE644" unicode="do_not_disturb_on" 
-d="M363 235v42h-214v-42h214zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE645" unicode="priority_high" 
-d="M213 448h86v-256h-86v256zM213 107q0 18 12.5 30t30.5 12t30.5 -12t12.5 -30t-12.5 -30.5t-30.5 -12.5t-30.5 12.5t-12.5 30.5z" />
-    <glyph glyph-name="uniE6C4" unicode="pie_chart" 
-d="M278 234h191q-7 -76 -61 -130t-130 -61v191zM278 469q76 -7 130 -61t61 -130h-191v191zM235 469v-426q-81 8 -136.5 69t-55.5 144t55.5 144t136.5 69z" />
-    <glyph glyph-name="uniE6C5" unicode="pie_chart_outlined" 
-d="M277 87q58 7 99.5 48.5t48.5 99.5h-148v-148zM85 256q0 -65 43 -113t107 -56v338q-63 -8 -106.5 -56t-43.5 -113zM277 425v-148h148q-7 58 -48.5 99.5t-99.5 48.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE6DD" unicode="bubble_chart" 
-d="M222 324q0 43 29.5 73t72.5 30t73 -30t30 -73t-30 -72.5t-73 -29.5t-72.5 29.5t-29.5 72.5zM273 128q0 18 12.5 30.5t30.5 12.5t30 -12.5t12 -30.5t-12 -30.5t-30 -12.5t-30.5 12.5t-12.5 30.5zM85 205q0 28 20 48t49 20q28 0 48 -19.5t20 -48.5t-20 -48.5t-48 -19.5
-q-29 0 -49 20t-20 48z" />
-    <glyph glyph-name="uniE6DF" unicode="multiline_chart" 
-d="M469 364l-65 -73q37 -59 44 -131h-43q-6 51 -31 97l-86 -97l-85 86l-128 -128l-32 32l160 160l85 -86l61 70q-59 69 -144 69q-73 0 -132 -52l-30 30q72 64 162 64q102 0 173 -79l61 68z" />
-    <glyph glyph-name="uniE6E1" unicode="show_chart" 
-d="M75 118l-32 32l160 160l85 -86l151 170l30 -30l-181 -204l-85 86z" />
-    <glyph glyph-name="uniE7E9" unicode="cake" 
-d="M384 320q26 0 45 -19t19 -45v-33q0 -17 -12.5 -29.5t-29.5 -12.5t-29 12l-46 46l-46 -46q-12 -12 -29.5 -12t-29.5 12l-45 46l-46 -46q-12 -12 -29 -12t-29.5 12.5t-12.5 29.5v33q0 26 19 45t45 19h107v43h42v-43h107zM354 171q22 -22 52 -22q22 0 42 13v-98q0 -9 -6 -15
-t-15 -6h-342q-9 0 -15 6t-6 15v98q19 -13 42 -13q30 0 52 22l23 23l23 -23q21 -21 52 -21t52 21l23 23zM256 384q-17 0 -30 13t-13 30q0 11 7 22l36 63l36 -63q7 -11 7 -22q0 -17 -12.5 -30t-30.5 -13z" />
-    <glyph glyph-name="uniE7EE" unicode="domain" 
-d="M384 192v-43h-43v43h43zM384 277v-42h-43v42h43zM427 107v213h-171v-43h43v-42h-43v-43h43v-43h-43v-42h171zM213 363v42h-42v-42h42zM213 277v43h-42v-43h42zM213 192v43h-42v-43h42zM213 107v42h-42v-42h42zM128 363v42h-43v-42h43zM128 277v43h-43v-43h43zM128 192v43
-h-43v-43h43zM128 107v42h-43v-42h43zM256 363h213v-299h-426v384h213v-85z" />
-    <glyph glyph-name="uniE7EF" unicode="group" 
-d="M341 235q28 0 61 -8t61 -26t28 -41v-53h-128v53q0 44 -42 74q7 1 20 1zM171 235q28 0 61 -8t60.5 -26t27.5 -41v-53h-299v53q0 23 28 41t61 26t61 8zM171 277q-26 0 -45 19t-19 45t19 45t45 19t44.5 -19t18.5 -45t-18.5 -45t-44.5 -19zM341 277q-26 0 -45 19t-19 45
-t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19z" />
-    <glyph glyph-name="uniE7F0" unicode="group_add" 
-d="M277 235q40 0 84 -17.5t44 -46.5v-43h-256v43q0 29 44 46.5t84 17.5zM419 231q37 -6 65 -21.5t28 -38.5v-43h-64v43q0 34 -29 60zM277 277q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM384 277q-10 0 -19 3q19 27 19 61t-19 61q9 3 19 3
-q26 0 45 -19t19 -45t-19 -45t-45 -19zM171 299v-43h-64v-64h-43v64h-64v43h64v64h43v-64h64z" />
-    <glyph glyph-name="uniE7F1" unicode="location_city" 
-d="M405 192v43h-42v-43h42zM405 107v42h-42v-42h42zM277 363v42h-42v-42h42zM277 277v43h-42v-43h42zM277 192v43h-42v-43h42zM277 107v42h-42v-42h42zM149 277v43h-42v-43h42zM149 192v43h-42v-43h42zM149 107v42h-42v-42h42zM320 277h128v-213h-384v299h128v42l64 64
-l64 -64v-128z" />
-    <glyph glyph-name="uniE7F2" unicode="mood" 
-d="M256 139q-37 0 -66.5 20.5t-42.5 53.5h218q-13 -33 -42.5 -53.5t-66.5 -20.5zM181 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM331 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5
-t-22.5 -9.5zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE7F3" unicode="mood_bad" 
-d="M256 213q37 0 66.5 -20.5t42.5 -53.5h-218q13 33 42.5 53.5t66.5 20.5zM181 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM331 277q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5
-t-22.5 -9.5zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE7F4" unicode="notifications" 
-d="M384 171l43 -43v-21h-342v21l43 43v106q0 50 25.5 87t70.5 48v15q0 13 9 22.5t23 9.5t23 -9.5t9 -22.5v-15q45 -11 70.5 -48t25.5 -87v-106zM256 43q-18 0 -30.5 12.5t-12.5 29.5h86q0 -17 -13 -29.5t-30 -12.5z" />
-    <glyph glyph-name="uniE7F5" unicode="notifications_none" 
-d="M341 149v128q0 41 -23 68.5t-62 27.5t-62 -27.5t-23 -68.5v-128h170zM384 171l43 -43v-21h-342v21l43 43v106q0 50 25.5 87t70.5 48v15q0 13 9 22.5t23 9.5t23 -9.5t9 -22.5v-15q45 -11 70.5 -48t25.5 -87v-106zM256 43q-17 0 -30 12.5t-13 29.5h86q0 -17 -13 -29.5
-t-30 -12.5z" />
-    <glyph glyph-name="uniE7F6" unicode="notifications_off" 
-d="M384 199l-191 201q3 1 8 3.5l7 3.5h1l6 3q1 0 4 1t5 1v15q0 13 9 22.5t23 9.5t23 -9.5t9 -22.5v-15q45 -11 70.5 -48t25.5 -87v-78zM256 43q-18 0 -30.5 12t-12.5 30h86q0 -18 -12.5 -30t-30.5 -12zM167 381q24 -25 125.5 -129t155.5 -161l-27 -27l-43 43h-293v21l43 43
-v107q0 41 17 73l-60 59l27 28z" />
-    <glyph glyph-name="uniE7F7" unicode="notifications_active" 
-d="M256 43q-18 0 -30.5 12.5t-12.5 29.5h85q0 -18 -12 -30t-30 -12zM384 277v-106l43 -43v-21h-342v21l43 43v106q0 50 25.5 87t70.5 48v15q0 13 9 22.5t23 9.5t23 -9.5t9 -22.5v-15q45 -11 70.5 -48t25.5 -87zM426 288q-5 86 -75 137l30 30q83 -64 88 -167h-43zM162 425
-q-71 -50 -76 -137h-43q5 103 88 167z" />
-    <glyph glyph-name="uniE7F8" unicode="notifications_paused" 
-d="M309 303v38h-106v-38h59l-59 -73v-38h106v38h-59zM384 171l43 -43v-21h-342v21l43 43v106q0 50 25.5 87t70.5 48v15q0 13 9 22.5t23 9.5t23 -9.5t9 -22.5v-15q45 -11 70.5 -48t25.5 -87v-106zM256 43q-18 0 -30.5 12.5t-12.5 29.5h86q0 -17 -13 -29.5t-30 -12.5z" />
-    <glyph glyph-name="uniE7F9" unicode="pages" 
-d="M405 448q17 0 30 -13t13 -30v-128h-107l22 86l-86 -22v107h128zM363 149l-22 86h107v-128q0 -17 -13 -30t-30 -13h-128v107zM171 235l-22 -86l86 22v-107h-128q-17 0 -30 13t-13 30v128h107zM64 405q0 17 13 30t30 13h128v-107l-86 22l22 -86h-107v128z" />
-    <glyph glyph-name="uniE7FA" unicode="party_mode" 
-d="M256 149q44 0 75.5 31.5t31.5 75.5q0 7 -2 21h-45q4 -14 4 -21q0 -26 -19 -45t-45 -19h-85q33 -43 85 -43zM256 363q-44 0 -75.5 -31.5t-31.5 -75.5q0 -7 2 -21h45q-4 14 -4 21q0 26 19 45t45 19h85q-33 43 -85 43zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30
-t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h68l39 42h128l39 -42h68z" />
-    <glyph glyph-name="uniE7FB" unicode="people" 
-d="M341 235q28 0 61 -8t61 -26t28 -41v-53h-128v53q0 44 -42 74q7 1 20 1zM171 235q28 0 61 -8t60.5 -26t27.5 -41v-53h-299v53q0 23 28 41t61 26t61 8zM171 277q-26 0 -45 19t-19 45t19 45t45 19t44.5 -19t18.5 -45t-18.5 -45t-44.5 -19zM341 277q-26 0 -45 19t-19 45
-t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19z" />
-    <glyph glyph-name="uniE7FC" unicode="people_outline" 
-d="M352 373q-17 0 -30 -12.5t-13 -29.5t13 -30t30 -13t30 13t13 30t-13 29.5t-30 12.5zM352 256q-31 0 -53 22t-22 53t22 52.5t53 21.5t53 -21.5t22 -52.5t-22 -53t-53 -22zM160 373q-17 0 -30 -12.5t-13 -29.5t13 -30t30 -13t30 13t13 30t-13 29.5t-30 12.5zM160 256
-q-31 0 -53 22t-22 53t22 52.5t53 21.5t53 -21.5t22 -52.5t-22 -53t-53 -22zM459 139v26q0 10 -35.5 24t-71.5 14q-26 0 -64 -12q11 -13 11 -26v-26h160zM267 139v26q0 10 -35.5 24t-71.5 14t-71.5 -14t-35.5 -24v-26h214zM352 235q43 0 91 -19.5t48 -50.5v-58h-470v58
-q0 31 48 50.5t91 19.5q47 0 96 -22q49 22 96 22z" />
-    <glyph glyph-name="uniE7FD" unicode="person" 
-d="M256 213q54 0 112.5 -23.5t58.5 -61.5v-43h-342v43q0 38 58.5 61.5t112.5 23.5zM256 256q-35 0 -60 25t-25 60t25 60.5t60 25.5t60 -25.5t25 -60.5t-25 -60t-60 -25z" />
-    <glyph glyph-name="uniE7FE" unicode="person_add" 
-d="M320 213q54 0 112.5 -23.5t58.5 -61.5v-43h-342v43q0 38 58.5 61.5t112.5 23.5zM128 299h64v-43h-64v-64h-43v64h-64v43h64v64h43v-64zM320 256q-35 0 -60 25t-25 60t25 60.5t60 25.5t60 -25.5t25 -60.5t-25 -60t-60 -25z" />
-    <glyph glyph-name="uniE7FF" unicode="person_outline" 
-d="M256 235q32 0 70 -9t69.5 -30t31.5 -47v-64h-342v64q0 26 31.5 47t69.5 30t70 9zM256 427q35 0 60 -25.5t25 -60.5t-25 -60t-60 -25t-60 25t-25 60t25 60.5t60 25.5zM256 194q-44 0 -87 -16.5t-43 -28.5v-23h260v23q0 12 -43 28.5t-87 16.5zM256 386q-19 0 -32 -13
-t-13 -32t13 -31.5t32 -12.5t32 12.5t13 31.5t-13 32t-32 13z" />
-    <glyph glyph-name="uniE800" unicode="plus_one" 
-d="M309 382l96 23v-277h-42v226l-54 -11v39zM213 341v-85h86v-43h-86v-85h-42v85h-86v43h86v85h42z" />
-    <glyph glyph-name="uniE801" unicode="poll" 
-d="M363 149v86h-43v-86h43zM277 149v214h-42v-214h42zM192 149v150h-43v-150h43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE80B" unicode="public" 
-d="M382 141q45 48 45 115q0 53 -29.5 96t-77.5 62v-9q0 -17 -13 -29.5t-30 -12.5h-42v-43q0 -9 -6.5 -15t-15.5 -6h-42v-43h128q9 0 15 -6t6 -15v-64h21q30 0 41 -30zM235 87v41q-17 0 -30 13t-13 30v21l-102 102q-5 -20 -5 -38q0 -65 43.5 -113t106.5 -56zM256 469
-q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE80C" unicode="school" 
-d="M256 448l235 -128v-171h-43v148l-192 -105l-235 128zM107 231l149 -82l149 82v-86l-149 -81l-149 81v86z" />
-    <glyph glyph-name="uniE80D" unicode="share" 
-d="M384 169q26 0 44 -18.5t18 -43.5q0 -26 -18.5 -44.5t-43.5 -18.5t-43.5 18.5t-18.5 44.5q0 10 1 14l-151 88q-19 -17 -44 -17q-26 0 -45 19t-19 45t19 45t45 19q25 0 44 -17l150 87q-2 10 -2 15q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19q-24 0 -44 18l-150 -88
-q2 -10 2 -15t-2 -15l152 -88q18 16 42 16z" />
-    <glyph glyph-name="uniE80E" unicode="whatshot" 
-d="M250 107q43 0 72.5 29.5t29.5 72.5q0 44 -12 86q-31 -41 -99 -55q-60 -13 -60 -66q0 -28 20 -47.5t49 -19.5zM288 498q64 -52 101.5 -126.5t37.5 -158.5q0 -70 -50 -120t-121 -50t-121 50t-50 120q0 108 69 190v-8q0 -33 22 -56t55 -23q32 0 52.5 22.5t20.5 56.5
-q0 20 -4 46t-8 41z" />
-    <glyph glyph-name="uniE811" unicode="sentiment_dissatisfied" 
-d="M256 213q37 0 66.5 -20.5t42.5 -53.5h-35q-25 42 -74 42t-74 -42h-35q13 33 42.5 53.5t66.5 20.5zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5
-t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM149 309q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5zM299 309q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5z" />
-    <glyph glyph-name="uniE812" unicode="sentiment_neutral" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM149 309q0 13 9.5 22.5t22.5 9.5
-t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5zM299 309q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5zM192 213h128v-32h-128v32z" />
-    <glyph glyph-name="uniE813" unicode="sentiment_satisfied" 
-d="M256 171q49 0 74 42h35q-13 -33 -42.5 -53.5t-66.5 -20.5t-66.5 20.5t-42.5 53.5h35q25 -42 74 -42zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5
-t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM149 309q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5zM299 309q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5
-t-9.5 22.5z" />
-    <glyph glyph-name="uniE814" unicode="sentiment_very_dissatisfied" 
-d="M256 213q37 0 66.5 -20.5t42.5 -53.5h-218q13 33 42.5 53.5t66.5 20.5zM167 256l-23 23l23 22l-23 23l23 22l22 -22l23 22l23 -22l-23 -23l23 -22l-23 -23l-23 23zM345 346l23 -22l-23 -23l23 -22l-23 -23l-22 23l-23 -23l-23 23l23 22l-23 23l23 22l23 -22zM256 85
-q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE815" unicode="sentiment_very_satisfied" 
-d="M256 139q-37 0 -66.5 20.5t-42.5 53.5h218q-13 -33 -42.5 -53.5t-66.5 -20.5zM189 300l-22 -23l-23 23l45 45l46 -45l-23 -23zM277 300l46 45l45 -45l-23 -23l-22 23l-23 -23zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5
-t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE834" unicode="check_box" 
-d="M213 149l192 192l-30 31l-162 -162l-76 76l-30 -30zM405 448q18 0 30.5 -13t12.5 -30v-298q0 -17 -12.5 -30t-30.5 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE835" unicode="check_box_outline_blank" 
-d="M405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298zM405 405h-298v-298h298v298z" />
-    <glyph glyph-name="uniE836" unicode="radio_button_unchecked" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE837" unicode="radio_button_checked" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM256 363q44 0 75.5 -31.5
-t31.5 -75.5t-31.5 -75.5t-75.5 -31.5t-75.5 31.5t-31.5 75.5t31.5 75.5t75.5 31.5z" />
-    <glyph glyph-name="uniE838" unicode="star" 
-d="M256 144l-132 -80l35 150l-116 101l153 13l60 141l60 -141l153 -13l-116 -101l35 -150z" />
-    <glyph glyph-name="uniE839" unicode="star_half" 
-d="M256 183l80 -48l-21 91l71 62l-94 8l-36 86v-199zM469 315l-116 -101l35 -150l-132 80l-132 -80l35 150l-116 101l153 13l60 141l60 -141z" />
-    <glyph glyph-name="uniE83A" unicode="star_outline" 
-d="M256 183l80 -48l-21 91l71 62l-94 8l-36 86l-36 -86l-94 -8l71 -62l-21 -91zM469 315l-116 -101l35 -150l-132 80l-132 -80l35 150l-116 101l153 13l60 141l60 -141z" />
-    <glyph glyph-name="uniE84D" unicode="&#x33;d_rotation" 
-d="M256 512q100 0 173.5 -67.5t81.5 -166.5h-32q-5 59 -39.5 107t-87.5 73l-29 -28l-81 81zM353 260q0 57 -47 57h-20v-123h19q36 0 46 34q2 7 2 24v8zM306 341q53 0 72 -47q5 -12 5 -34v-8q0 -38 -21 -59q-22 -22 -57 -22h-49v170h50zM207 258q28 -11 28 -39q0 -10 -5 -20
-q-6 -12 -11 -16q-15 -12 -40 -12q-24 0 -39 12t-15 35h27q0 -11 7.5 -18t19.5 -7q28 0 28 27t-31 27h-16v22h16q29 0 29 25t-26 25q-25 0 -25 -23h-28q0 17 15 32q16 13 38 13q35 0 49 -27q4 -8 4 -20q0 -23 -25 -36zM160 54l29 28l81 -81l-14 -1q-100 0 -173.5 68
-t-81.5 167h32q6 -60 40 -108t87 -73z" />
-    <glyph glyph-name="uniE84E" unicode="accessibility" 
-d="M448 320h-128v-277h-43v128h-42v-128h-43v277h-128v43h384v-43zM256 469q17 0 30 -12.5t13 -29.5t-13 -30t-30 -13t-30 13t-13 30t13 29.5t30 12.5z" />
-    <glyph glyph-name="uniE84F" unicode="account_balance" 
-d="M245 491l203 -107v-43h-405v43zM341 299h64v-150h-64v150zM43 43v64h405v-64h-405zM213 299h64v-150h-64v150zM85 299h64v-150h-64v150z" />
-    <glyph glyph-name="uniE850" unicode="account_balance_wallet" 
-d="M341 224q13 0 22.5 9t9.5 23t-9.5 23t-22.5 9t-22.5 -9t-9.5 -23t9.5 -23t22.5 -9zM256 171v170h213v-170h-213zM448 128v-21q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h298q17 0 30 -13t13 -30v-21h-192q-18 0 -30.5 -13t-12.5 -30
-v-170q0 -17 12.5 -30t30.5 -13h192z" />
-    <glyph glyph-name="uniE851" unicode="account_box" 
-d="M128 149v-21h256v21q0 29 -44 47.5t-84 18.5t-84 -18.5t-44 -47.5zM320 320q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM64 405q0 17 12.5 30t30.5 13h298q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298z" />
-    <glyph glyph-name="uniE853" unicode="account_circle" 
-d="M256 102q81 0 128 69q-1 28 -45 47t-83 19t-83 -18.5t-45 -47.5q47 -69 128 -69zM256 405q-26 0 -45 -19t-19 -45t19 -45t45 -19t45 19t19 45t-19 45t-45 19zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE854" unicode="add_shopping_cart" 
-d="M153 197q0 -5 5 -5h247v-43h-256q-17 0 -29.5 13t-12.5 30q0 10 5 20l29 53l-77 162h-43v42h70q20 -42 40 -85q5 -9 23 -47.5t28 -59.5h150q75 136 82 150l37 -21l-82 -149q-12 -22 -37 -22h-159l-19 -35zM363 128q17 0 29.5 -13t12.5 -30t-12.5 -29.5t-29.5 -12.5
-t-30 12.5t-13 29.5t13 30t30 13zM149 128q17 0 30 -13t13 -30t-13 -29.5t-30 -12.5t-29.5 12.5t-12.5 29.5t12.5 30t29.5 13zM235 320v64h-64v43h64v64h42v-64h64v-43h-64v-64h-42z" />
-    <glyph glyph-name="uniE855" unicode="alarm" 
-d="M256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56.5t56 -135.5t-56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5zM267 341v-112l85 -50l-16 -26l-101 60v128h32zM168 440
-l-98 -82l-27 32l98 82zM469 390l-27 -33l-98 83l27 32z" />
-    <glyph glyph-name="uniE856" unicode="alarm_add" 
-d="M277 320v-64h64v-43h-64v-64h-42v64h-64v43h64v64h42zM256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56.5t56 -135.5t-56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5z
-M469 390l-27 -33l-98 83l27 32zM168 440l-98 -82l-27 32l98 82z" />
-    <glyph glyph-name="uniE857" unicode="alarm_off" 
-d="M171 442l-18 -15l-31 30l19 15zM351 120l-210 210q-34 -42 -34 -95q0 -62 43.5 -106t105.5 -44q52 0 95 35zM62 463q76 -76 216.5 -216t177.5 -177l-27 -27l-47 47q-55 -47 -126 -47q-80 0 -136 56.5t-56 135.5q0 70 47 125l-17 17l-24 -20l-30 31l24 19l-29 29zM469 390
-l-27 -33l-98 83l27 32zM256 384q-27 0 -51 -9l-33 32q42 20 84 20q80 0 136 -56.5t56 -135.5q0 -44 -19 -84l-33 32q9 24 9 52q0 62 -43.5 105.5t-105.5 43.5z" />
-    <glyph glyph-name="uniE858" unicode="alarm_on" 
-d="M225 202l105 106l23 -23l-128 -128l-68 68l22 22zM256 85q62 0 105.5 44t43.5 106t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5t43.5 -106t105.5 -44zM256 427q80 0 136 -56.5t56 -135.5t-56 -135.5t-136 -56.5t-136 56.5t-56 135.5t56 135.5t136 56.5zM168 440
-l-98 -82l-27 32l98 82zM469 390l-27 -33l-98 83l27 32z" />
-    <glyph glyph-name="uniE859" unicode="android" 
-d="M320 405v22h-21v-22h21zM213 405v22h-21v-22h21zM331 466q53 -38 53 -103h-256q0 66 52 103l-28 28q-8 8 0 15t15 0l32 -32q26 14 57 14q30 0 56 -14l32 32q8 7 15 0t0 -15zM437 341q13 0 22.5 -9.5t9.5 -22.5v-149q0 -14 -9.5 -23t-22.5 -9t-22.5 9t-9.5 23v149
-q0 13 9.5 22.5t22.5 9.5zM75 341q13 0 22.5 -9.5t9.5 -22.5v-149q0 -14 -9.5 -23t-22.5 -9t-22.5 9t-9.5 23v149q0 13 9.5 22.5t22.5 9.5zM128 128v213h256v-213q0 -9 -6 -15t-15 -6h-22v-75q0 -14 -9.5 -23t-22.5 -9t-22.5 9t-9.5 23v75h-42v-75q0 -14 -9.5 -23t-22.5 -9
-t-22.5 9t-9.5 23v75h-22q-9 0 -15 6t-6 15z" />
-    <glyph glyph-name="uniE85A" unicode="announcement" 
-d="M277 192v43h-42v-43h42zM277 277v128h-42v-128h42zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE85B" unicode="aspect_ratio" 
-d="M448 106v300h-384v-300h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384zM149 320v-64h-42v107h106v-43h-64zM405 256v-107h-106v43h64v64h42z" />
-    <glyph glyph-name="uniE85C" unicode="assessment" 
-d="M363 149v86h-43v-86h43zM277 149v214h-42v-214h42zM192 149v150h-43v-150h43zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE85D" unicode="assignment" 
-d="M363 320v43h-214v-43h214zM363 235v42h-214v-42h214zM299 149v43h-150v-43h150zM256 448q-9 0 -15 -6t-6 -15t6 -15.5t15 -6.5t15 6.5t6 15.5t-6 15t-15 6zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h89
-q7 19 23 31t37 12t37 -12t23 -31h89z" />
-    <glyph glyph-name="uniE85E" unicode="assignment_ind" 
-d="M384 107v30q0 29 -44 47.5t-84 18.5t-84 -18.5t-44 -47.5v-30h256zM256 363q-26 0 -45 -19t-19 -45t19 -45t45 -19t45 19t19 45t-19 45t-45 19zM256 448q-9 0 -15 -6t-6 -15t6 -15.5t15 -6.5t15 6.5t6 15.5t-6 15t-15 6zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30
-t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h89q7 19 23 31t37 12t37 -12t23 -31h89z" />
-    <glyph glyph-name="uniE85F" unicode="assignment_late" 
-d="M256 405q9 0 15 6.5t6 15.5t-6 15t-15 6t-15 -6t-6 -15t6 -15.5t15 -6.5zM277 213v128h-42v-128h42zM277 128v43h-42v-43h42zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h89q7 19 23 31t37 12t37 -12t23 -31
-h89z" />
-    <glyph glyph-name="uniE860" unicode="assignment_return" 
-d="M341 192v85h-85v64l-107 -106l107 -107v64h85zM256 448q-9 0 -15 -6t-6 -15t6 -15.5t15 -6.5t15 6.5t6 15.5t-6 15t-15 6zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h89q7 19 23 31t37 12t37 -12t23 -31h89
-z" />
-    <glyph glyph-name="uniE861" unicode="assignment_returned" 
-d="M256 128l107 107h-64v85h-86v-85h-64zM256 448q-9 0 -15 -6t-6 -15t6 -15.5t15 -6.5t15 6.5t6 15.5t-6 15t-15 6zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h89q7 19 23 31t37 12t37 -12t23 -31h89z" />
-    <glyph glyph-name="uniE862" unicode="assignment_turned_in" 
-d="M213 149l171 171l-30 30l-141 -140l-55 55l-30 -30zM256 448q-9 0 -15 -6t-6 -15t6 -15.5t15 -6.5t15 6.5t6 15.5t-6 15t-15 6zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h89q7 19 23 31t37 12t37 -12
-t23 -31h89z" />
-    <glyph glyph-name="uniE863" unicode="autorenew" 
-d="M400 347q27 -41 27 -91q0 -70 -50.5 -120.5t-120.5 -50.5v-64l-85 86l85 85v-64q53 0 90.5 37.5t37.5 90.5q0 30 -15 60zM256 384q-53 0 -90.5 -37.5t-37.5 -90.5q0 -33 15 -60l-31 -31q-27 41 -27 91q0 70 50.5 120.5t120.5 50.5v64l85 -86l-85 -85v64z" />
-    <glyph glyph-name="uniE864" unicode="backup" 
-d="M299 235h64l-107 106l-107 -106h64v-86h86v86zM413 298q41 -3 70 -33.5t29 -72.5q0 -44 -31.5 -75.5t-75.5 -31.5h-277q-53 0 -90.5 37.5t-37.5 90.5q0 49 33 85.5t81 41.5q21 39 59 63t83 24q58 0 102 -36.5t55 -92.5z" />
-    <glyph glyph-name="uniE865" unicode="book" 
-d="M128 427v-171l53 32l54 -32v171h-107zM384 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v342q0 17 13 29.5t30 12.5h256z" />
-    <glyph glyph-name="uniE866" unicode="bookmark" 
-d="M363 448q17 0 29.5 -13t12.5 -30v-341l-149 64l-149 -64v341q0 17 12.5 30t29.5 13h214z" />
-    <glyph glyph-name="uniE867" unicode="bookmark_outline" 
-d="M363 128v277h-214v-277l107 47zM363 448q17 0 29.5 -13t12.5 -30v-341l-149 64l-149 -64v341q0 17 12.5 30t29.5 13h214z" />
-    <glyph glyph-name="uniE868" unicode="bug_report" 
-d="M299 256v43h-86v-43h86zM299 171v42h-86v-42h86zM427 341v-42h-45q2 -14 2 -22v-21h43v-43h-43v-21q0 -7 -2 -21h45v-43h-60q-17 -29 -46.5 -46.5t-64.5 -17.5t-64.5 17.5t-46.5 46.5h-60v43h45q-2 14 -2 21v21h-43v43h43v21q0 8 2 22h-45v42h60q15 25 39 42l-35 35
-l30 30l47 -46q15 3 30 3t30 -3l47 46l30 -30l-35 -35q24 -17 39 -42h60z" />
-    <glyph glyph-name="uniE869" unicode="build" 
-d="M484 107q7 -4 6.5 -13.5t-8.5 -16.5l-49 -49q-15 -15 -30 0l-194 194q-36 -15 -76.5 -6.5t-70.5 38.5q-32 32 -40 76t12 82l94 -92l64 64l-92 92q38 18 82 11t76 -39q30 -30 38.5 -70.5t-6.5 -76.5z" />
-    <glyph glyph-name="uniE86A" unicode="cached" 
-d="M128 256h64l-85 -85l-86 85h64q0 70 50.5 120.5t120.5 50.5q50 0 91 -27l-31 -31q-27 15 -60 15q-53 0 -90.5 -37.5t-37.5 -90.5zM405 341l86 -85h-64q0 -70 -50.5 -120.5t-120.5 -50.5q-50 0 -91 27l31 31q27 -15 60 -15q53 0 90.5 37.5t37.5 90.5h-64z" />
-    <glyph glyph-name="uniE86B" unicode="change_history" 
-d="M256 427l213 -342h-426zM256 346l-136 -218h272z" />
-    <glyph glyph-name="uniE86C" unicode="check_circle" 
-d="M213 149l192 192l-30 31l-162 -162l-76 76l-30 -30zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE86D" unicode="chrome_reader_mode" 
-d="M448 107v277h-192v-277h192zM448 427q17 0 30 -13t13 -30v-277q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v277q0 17 13 30t30 13h384zM277 203h150v-32h-150v32zM277 309h150v-32h-150v32zM277 256h150v-32h-150v32z" />
-    <glyph glyph-name="uniE86E" unicode="class" 
-d="M128 427v-171l53 32l54 -32v171h-107zM384 469q17 0 30 -12.5t13 -29.5v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v342q0 17 13 29.5t30 12.5h256z" />
-    <glyph glyph-name="uniE86F" unicode="code" 
-d="M311 158l99 98l-99 98l30 30l128 -128l-128 -128zM201 158l-30 -30l-128 128l128 128l30 -30l-99 -98z" />
-    <glyph glyph-name="uniE870" unicode="credit_card" 
-d="M427 341v43h-342v-43h342zM427 128v128h-342v-128h342zM427 427q18 0 30 -12.5t12 -30.5v-256q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v256q0 18 12 30.5t30 12.5h342z" />
-    <glyph glyph-name="uniE871" unicode="dashboard" 
-d="M277 448h171v-128h-171v128zM277 64v213h171v-213h-171zM64 64v128h171v-128h-171zM64 235v213h171v-213h-171z" />
-    <glyph glyph-name="uniE872" unicode="delete" 
-d="M405 427v-43h-298v43h74l22 21h106l22 -21h74zM128 107v256h256v-256q0 -17 -13 -30t-30 -13h-170q-17 0 -30 13t-13 30z" />
-    <glyph glyph-name="uniE873" unicode="description" 
-d="M277 320h118l-118 117v-117zM341 213v43h-170v-43h170zM341 128v43h-170v-43h170zM299 469l128 -128v-256q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5l1 342q0 17 12.5 29.5t29.5 12.5h171z" />
-    <glyph glyph-name="uniE875" unicode="dns" 
-d="M149 320q17 0 30 13t13 30t-13 29.5t-30 12.5t-29.5 -12.5t-12.5 -29.5t12.5 -30t29.5 -13zM427 448q9 0 15 -6t6 -15v-128q0 -9 -6 -15.5t-15 -6.5h-342q-9 0 -15 6.5t-6 15.5v128q0 9 6 15t15 6h342zM149 107q17 0 30 12.5t13 29.5t-13 30t-30 13t-29.5 -13t-12.5 -30
-t12.5 -29.5t29.5 -12.5zM427 235q9 0 15 -6.5t6 -15.5v-128q0 -9 -6 -15t-15 -6h-342q-9 0 -15 6t-6 15v128q0 9 6 15.5t15 6.5h342z" />
-    <glyph glyph-name="uniE876" unicode="done" 
-d="M192 166l226 227l30 -30l-256 -256l-119 119l29 30z" />
-    <glyph glyph-name="uniE877" unicode="done_all" 
-d="M9 226l30 30l119 -119l-30 -30zM474 393l31 -30l-256 -256l-120 119l31 30l89 -89zM384 363l-135 -136l-30 30l135 136z" />
-    <glyph glyph-name="uniE878" unicode="event" 
-d="M405 107v234h-298v-234h298zM341 491h43v-43h21q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43v-43h170v43zM363 256v-107h-107v107h107z" />
-    <glyph glyph-name="uniE879" unicode="exit_to_app" 
-d="M405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v85h43v-85h298v298h-298v-85h-43v85q0 17 12.5 30t30.5 13h298zM215 179l55 56h-206v42h206l-55 56l30 30l107 -107l-107 -107z" />
-    <glyph glyph-name="uniE87A" unicode="explore" 
-d="M303 209l81 175l-175 -81l-81 -175zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM256 279q10 0 16.5 -6.5t6.5 -16.5t-6.5 -16.5t-16.5 -6.5t-16.5 6.5t-6.5 16.5t6.5 16.5t16.5 6.5z" />
-    <glyph glyph-name="uniE87B" unicode="extension" 
-d="M437 277q22 0 38 -15.5t16 -37.5t-16 -37.5t-38 -15.5h-32v-86q0 -17 -12.5 -29.5t-29.5 -12.5h-81v32q0 24 -17 40.5t-41 16.5t-41 -16.5t-17 -40.5v-32h-81q-17 0 -29.5 12.5t-12.5 29.5v81h32q24 0 40.5 17t16.5 41t-16.5 41t-40.5 17h-32v81q0 17 12.5 29.5
-t29.5 12.5h86v32q0 22 15.5 38t37.5 16t37.5 -16t15.5 -38v-32h86q17 0 29.5 -12.5t12.5 -29.5v-86h32z" />
-    <glyph glyph-name="uniE87C" unicode="face" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5q0 22 -7 48q-19 -5 -48 -5q-110 0 -174 90q-33 -80 -112 -115q-1 -6 -1 -18q0 -70 50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z
-M320 261q11 0 19 -7.5t8 -18.5t-8 -19t-19 -8t-19 8t-8 19t8 18.5t19 7.5zM192 261q11 0 19 -7.5t8 -18.5t-8 -19t-19 -8t-19 8t-8 19t8 18.5t19 7.5z" />
-    <glyph glyph-name="uniE87D" unicode="favorite" 
-d="M256 57l-31 28q-53 48 -77 71t-53.5 57t-40.5 61.5t-11 56.5q0 49 33.5 83t83.5 34q58 0 96 -45q38 45 96 45q50 0 83.5 -34t33.5 -83q0 -39 -26 -81t-56.5 -73t-99.5 -93z" />
-    <glyph glyph-name="uniE87E" unicode="favorite_outline" 
-d="M258 116q48 43 71 65t50 52t37.5 53t10.5 45q0 32 -21.5 53t-53.5 21q-25 0 -46.5 -14t-29.5 -36h-40q-8 22 -29.5 36t-46.5 14q-32 0 -53.5 -21t-21.5 -53q0 -22 10.5 -45t37.5 -53t50 -52t71 -65l2 -2zM352 448q50 0 83.5 -34t33.5 -83q0 -29 -11 -56.5t-40.5 -61.5
-t-53.5 -57t-77 -71l-31 -28l-31 27q-69 62 -99.5 93t-56.5 73t-26 81q0 49 33.5 83t83.5 34q58 0 96 -45q38 45 96 45z" />
-    <glyph glyph-name="uniE87F" unicode="feedback" 
-d="M277 299v85h-42v-85h42zM277 213v43h-42v-43h42zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5t29.5 12.5h342z" />
-    <glyph glyph-name="uniE880" unicode="find_in_page" 
-d="M192 235q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM427 94l-82 82q18 28 18 59q0 44 -31.5 75t-75.5 31t-75.5 -31t-31.5 -75t31.5 -75.5t75.5 -31.5q31 0 59 18l94 -95q-11 -8 -25 -8h-256q-17 0 -30 12.5t-13 29.5l1 342q0 17 12.5 29.5
-t29.5 12.5h171l128 -128v-247z" />
-    <glyph glyph-name="uniE881" unicode="find_replace" 
-d="M355 189l103 -104l-31 -31l-104 103q-40 -29 -88 -29q-62 0 -106 44l-44 -44v128h128l-54 -54q31 -31 76 -31q39 0 67.5 24t36.5 61h43q-4 -36 -27 -67zM235 384q-39 0 -68 -24t-37 -61h-43q8 54 50 91t98 37q61 0 105 -44l44 44v-128h-128l54 54q-31 31 -75 31z" />
-    <glyph glyph-name="uniE882" unicode="flip_to_back" 
-d="M320 149v43h43v-43h-43zM320 405v43h43v-43h-43zM107 363v-256h256v-43h-256q-18 0 -30.5 13t-12.5 30v256h43zM405 149v43h43q0 -17 -13 -30t-30 -13zM405 320v43h43v-43h-43zM405 235v42h43v-42h-43zM192 149q-18 0 -30.5 13t-12.5 30h43v-43zM277 448v-43h-42v43h42z
-M405 448q17 0 30 -13t13 -30h-43v43zM277 192v-43h-42v43h42zM192 448v-43h-43q0 17 12.5 30t30.5 13zM192 277v-42h-43v42h43zM192 363v-43h-43v43h43z" />
-    <glyph glyph-name="uniE883" unicode="flip_to_front" 
-d="M149 64v43h43v-43h-43zM235 64v43h42v-43h-42zM405 192v213h-213v-213h213zM405 448q17 0 30 -13t13 -30v-213q0 -17 -13 -30t-30 -13h-213q-18 0 -30.5 13t-12.5 30v213q0 17 12.5 30t30.5 13h213zM320 64v43h43v-43h-43zM64 320v43h43v-43h-43zM107 64q-18 0 -30.5 13
-t-12.5 30h43v-43zM64 149v43h43v-43h-43zM64 235v42h43v-42h-43z" />
-    <glyph glyph-name="uniE884" unicode="get_app" 
-d="M107 128h298v-43h-298v43zM405 320l-149 -149l-149 149h85v128h128v-128h85z" />
-    <glyph glyph-name="uniE885" unicode="grade" 
-d="M256 144l-132 -80l35 150l-116 101l153 13l60 141l60 -141l153 -13l-116 -101l35 -150z" />
-    <glyph glyph-name="uniE886" unicode="group_work" 
-d="M341 139q22 0 38 15.5t16 37.5t-16 37.5t-38 15.5t-37.5 -15.5t-15.5 -37.5t15.5 -37.5t37.5 -15.5zM203 341q0 -22 15.5 -37.5t37.5 -15.5t37.5 15.5t15.5 37.5t-15.5 38t-37.5 16t-37.5 -16t-15.5 -38zM171 139q22 0 37.5 15.5t15.5 37.5t-15.5 37.5t-37.5 15.5
-t-38 -15.5t-16 -37.5t16 -37.5t38 -15.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE887" unicode="help" 
-d="M321 272q20 20 20 48q0 35 -25 60t-60 25t-60 -25t-25 -60h42q0 17 13 30t30 13t30 -13t13 -30t-13 -30l-26 -27q-25 -27 -25 -60v-11h42q0 33 25 60zM277 107v42h-42v-42h42zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5
-t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE888" unicode="highlight_remove" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM311 341l30 -30l-55 -55l55 -55
-l-30 -30l-55 55l-55 -55l-30 30l55 55l-55 55l30 30l55 -55z" />
-    <glyph glyph-name="uniE889" unicode="history" 
-d="M256 341h32v-90l75 -45l-16 -26l-91 55v106zM277 448q79 0 135.5 -56t56.5 -136t-56.5 -136t-135.5 -56t-135 56l30 31q44 -44 105 -44q62 0 106 43.5t44 105.5t-44 105.5t-106 43.5t-105.5 -43.5t-43.5 -105.5h64l-86 -86l-2 3l-83 83h64q0 80 56.5 136t135.5 56z" />
-    <glyph glyph-name="uniE88A" unicode="home" 
-d="M213 85h-106v171h-64l213 192l213 -192h-64v-171h-106v128h-86v-128z" />
-    <glyph glyph-name="uniE88B" unicode="hourglass_empty" 
-d="M256 267l85 85v75h-170v-75zM341 160l-85 85l-85 -85v-75h170v75zM128 469h256v-128l-85 -85l85 -85v-128h-256v128l85 85l-85 85v128z" />
-    <glyph glyph-name="uniE88C" unicode="hourglass_full" 
-d="M128 469h256v-128l-85 -85l85 -85v-128h-256v128l85 85l-85 85v128z" />
-    <glyph glyph-name="uniE88D" unicode="https" 
-d="M322 341v43q0 27 -19.5 46.5t-46.5 19.5t-46.5 -19.5t-19.5 -46.5v-43h132zM256 149q17 0 30 13t13 30t-13 30t-30 13t-30 -13t-13 -30t13 -30t30 -13zM384 341q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5
-t30 12.5h21v43q0 44 31.5 75.5t75.5 31.5t75.5 -31.5t31.5 -75.5v-43h21z" />
-    <glyph glyph-name="uniE88E" unicode="info" 
-d="M277 320v43h-42v-43h42zM277 149v128h-42v-128h42zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE88F" unicode="info_outline" 
-d="M235 320v43h42v-43h-42zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM235 149
-v128h42v-128h-42z" />
-    <glyph glyph-name="uniE890" unicode="input" 
-d="M235 171v64h-214v42h214v64l85 -85zM448 448q17 0 30 -12.5t13 -30.5v-299q0 -17 -13 -29.5t-30 -12.5h-384q-17 0 -30 12.5t-13 29.5v86h43v-86h384v300h-384v-86h-43v85q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE891" unicode="invert_colors_on" 
-d="M256 94v309l-90 -90q-38 -38 -38 -91q0 -52 38 -90t90 -38zM377 343q50 -50 50 -120.5t-50 -120.5t-121 -50t-121 50t-50 120.5t50 120.5l121 121z" />
-    <glyph glyph-name="uniE892" unicode="label" 
-d="M376 387l93 -131l-93 -131q-13 -18 -35 -18h-234q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h234q22 0 35 -18z" />
-    <glyph glyph-name="uniE893" unicode="label_outline" 
-d="M341 149l76 107l-76 107h-234v-214h234zM376 387l93 -131l-93 -131q-13 -18 -35 -18h-234q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h234q22 0 35 -18z" />
-    <glyph glyph-name="uniE894" unicode="language" 
-d="M349 213h72q6 28 6 43t-6 43h-72q3 -21 3 -43t-3 -43zM311 95q61 20 93 76h-63q-10 -40 -30 -76zM306 213q3 21 3 43t-3 43h-100q-3 -21 -3 -43t3 -43h100zM256 86q28 41 41 85h-82q13 -44 41 -85zM171 341q10 40 30 76q-61 -20 -93 -76h63zM108 171q32 -56 93 -76
-q-20 36 -30 76h-63zM91 213h72q-3 21 -3 43t3 43h-72q-6 -28 -6 -43t6 -43zM256 426q-28 -41 -41 -85h82q-13 44 -41 85zM404 341q-32 56 -93 76q20 -36 30 -76h63zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE895" unicode="launch" 
-d="M299 448h149v-149h-43v76l-209 -209l-30 30l209 209h-76v43zM405 107v149h43v-149q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h149v-43h-149v-298h298z" />
-    <glyph glyph-name="uniE896" unicode="list" 
-d="M149 363h299v-43h-299v43zM149 149v43h299v-43h-299zM149 235v42h299v-42h-299zM64 320v43h43v-43h-43zM64 149v43h43v-43h-43zM64 235v42h43v-42h-43z" />
-    <glyph glyph-name="uniE897" unicode="lock" 
-d="M322 341v43q0 27 -19.5 46.5t-46.5 19.5t-46.5 -19.5t-19.5 -46.5v-43h132zM256 149q17 0 30 13t13 30t-13 30t-30 13t-30 -13t-13 -30t13 -30t30 -13zM384 341q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5
-t30 12.5h21v43q0 44 31.5 75.5t75.5 31.5t75.5 -31.5t31.5 -75.5v-43h21z" />
-    <glyph glyph-name="uniE898" unicode="lock_open" 
-d="M384 85v214h-256v-214h256zM384 341q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h194v43q0 27 -19.5 46.5t-46.5 19.5t-46.5 -19.5t-19.5 -46.5h-41q0 44 31.5 75.5t75.5 31.5t75.5 -31.5t31.5 -75.5
-v-43h21zM256 149q-17 0 -30 13t-13 30t13 30t30 13t30 -13t13 -30t-13 -30t-30 -13z" />
-    <glyph glyph-name="uniE899" unicode="lock_outline" 
-d="M384 85v214h-256v-214h256zM190 384v-43h132v43q0 27 -19.5 46.5t-46.5 19.5t-46.5 -19.5t-19.5 -46.5zM384 341q17 0 30 -12.5t13 -29.5v-214q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v214q0 17 13 29.5t30 12.5h21v43q0 44 31.5 75.5t75.5 31.5
-t75.5 -31.5t31.5 -75.5v-43h21zM256 149q-17 0 -30 13t-13 30t13 30t30 13t30 -13t13 -30t-13 -30t-30 -13z" />
-    <glyph glyph-name="uniE89A" unicode="loyalty" 
-d="M368 186q16 16 16 38t-15.5 37.5t-37.5 15.5q-23 0 -38 -15l-16 -16l-15 16q-15 15 -38 15q-22 0 -37.5 -15.5t-15.5 -37.5q0 -23 15 -38l91 -91zM117 363q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM457 265
-q12 -12 12 -30t-12 -30l-150 -150q-12 -12 -30 -12t-30 12l-192 192q-12 12 -12 30v150q0 17 12.5 29.5t29.5 12.5h150q18 0 30 -12z" />
-    <glyph glyph-name="uniE89B" unicode="markunread_mailbox" 
-d="M427 384q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v256q0 17 12.5 30t29.5 13h43v128h171v-85h-128v-171h42v128h214z" />
-    <glyph glyph-name="uniE89C" unicode="note_add" 
-d="M277 320h118l-118 117v-117zM341 171v42h-64v64h-42v-64h-64v-42h64v-64h42v64h64zM299 469l128 -128v-256q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5l1 342q0 17 12.5 29.5t29.5 12.5h171z" />
-    <glyph glyph-name="uniE89D" unicode="open_in_browser" 
-d="M256 299l85 -86h-64v-128h-42v128h-64zM405 427q18 0 30.5 -13t12.5 -30v-256q0 -17 -13 -30t-30 -13h-85v43h85v213h-298v-213h85v-43h-85q-18 0 -30.5 13t-12.5 30v256q0 17 12.5 30t30.5 13h298z" />
-    <glyph glyph-name="uniE89E" unicode="open_in_new" 
-d="M299 448h149v-149h-43v76l-209 -209l-30 30l209 209h-76v43zM405 107v149h43v-149q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h149v-43h-149v-298h298z" />
-    <glyph glyph-name="uniE89F" unicode="open_with" 
-d="M299 192v-64h64l-107 -107l-107 107h64v64h86zM491 256l-107 -107v64h-64v86h64v64zM192 299v-86h-64v-64l-107 107l107 107v-64h64zM213 320v64h-64l107 107l107 -107h-64v-64h-86z" />
-    <glyph glyph-name="uniE8A0" unicode="pageview" 
-d="M358 124l30 30l-62 62q15 25 15 51q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28q26 0 51 15zM427 427q17 0 29.5 -13t12.5 -30v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 30t29.5 13h342zM245 320q22 0 38 -15.5t16 -37.5
-t-16 -38t-38 -16t-37.5 16t-15.5 38t15.5 37.5t37.5 15.5z" />
-    <glyph glyph-name="uniE8A1" unicode="payment" 
-d="M427 341v43h-342v-43h342zM427 128v128h-342v-128h342zM427 427q18 0 30 -12.5t12 -30.5v-256q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v256q0 18 12 30.5t30 12.5h342z" />
-    <glyph glyph-name="uniE8A2" unicode="perm_camera_mic" 
-d="M299 235v85q0 17 -13 30t-30 13t-30 -13t-13 -30v-85q0 -17 13 -30t30 -13t30 13t13 30zM427 405q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-150v45q45 8 76 43.5t31 82.5h-43q0 -35 -25 -60.5t-60 -25.5t-60 25.5t-25 60.5h-43q0 -47 31 -82.5
-t76 -43.5v-45h-150q-17 0 -29.5 13t-12.5 30v256q0 17 12.5 29.5t29.5 12.5h68l39 43h128l39 -43h68z" />
-    <glyph glyph-name="uniE8A3" unicode="perm_contact_calendar" 
-d="M384 128v21q0 29 -44 47.5t-84 18.5t-84 -18.5t-44 -47.5v-21h256zM256 384q-26 0 -45 -19t-19 -45t19 -45t45 -19t45 19t19 45t-19 45t-45 19zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43
-v-43h170v43h43v-43h21z" />
-    <glyph glyph-name="uniE8A4" unicode="perm_data_setting" 
-d="M405 75q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM484 96l23 -17q3 -3 1 -7l-21 -37q-3 -5 -7 -3l-26 11q-3 -3 -18 -10l-4 -29q0 -4 -6 -4h-42q-6 0 -6 4l-4 29q-8 4 -18 10l-26 -11q-5 -2 -7 3l-21 37q-2 4 1 7l23 17
-q0 1 -0.5 5t-0.5 6t0.5 5.5t0.5 4.5l-23 18q-3 3 -1 7l21 37q2 4 7 2l26 -11q12 8 18 11l4 28q0 4 6 4h42q6 0 6 -4l4 -28q4 -2 18 -11l26 11q5 2 7 -2l21 -37q2 -4 -1 -7l-23 -18q1 -3 1 -10q0 -2 -0.5 -6t-0.5 -5zM405 267q-66 0 -113 -47t-47 -113q0 -8 2 -22h-247
-l427 427l-1 -247q-14 2 -21 2z" />
-    <glyph glyph-name="uniE8A5" unicode="perm_device_information" 
-d="M363 107v298h-214v-298h214zM363 490q17 0 29.5 -12.5t12.5 -29.5v-384q0 -17 -12.5 -30t-29.5 -13h-214q-17 0 -29.5 13t-12.5 30v384q0 17 12.5 30t29.5 13zM277 277v-128h-42v128h42zM277 363v-43h-42v43h42z" />
-    <glyph glyph-name="uniE8A6" unicode="perm_identity" 
-d="M256 235q32 0 70 -9t69.5 -30t31.5 -47v-64h-342v64q0 26 31.5 47t69.5 30t70 9zM256 427q35 0 60 -25.5t25 -60.5t-25 -60t-60 -25t-60 25t-25 60t25 60.5t60 25.5zM256 194q-44 0 -87 -16.5t-43 -28.5v-23h260v23q0 12 -43 28.5t-87 16.5zM256 386q-19 0 -32 -13
-t-13 -32t13 -31.5t32 -12.5t32 12.5t13 31.5t-13 32t-32 13z" />
-    <glyph glyph-name="uniE8A7" unicode="perm_media" 
-d="M149 192h299l-75 96l-53 -64l-75 96zM469 427q17 0 30 -13t13 -30v-213q0 -17 -13 -30t-30 -13h-341q-17 0 -30 13t-13 30l1 256q0 17 12.5 29.5t29.5 12.5h128l43 -42h170zM43 384v-299h384v-42h-384q-17 0 -30 12.5t-13 29.5v299h43z" />
-    <glyph glyph-name="uniE8A8" unicode="perm_phone_msg" 
-d="M256 448h192v-149h-128l-64 -64v213zM427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q48 -93 141 -141l47 47q9 9 22 5q36 -12 76 -12z" />
-    <glyph glyph-name="uniE8A9" unicode="perm_scan_wifi" 
-d="M235 341h42v43h-42v-43zM277 171v128h-42v-128h42zM256 448q136 0 256 -91l-256 -314l-256 315q118 90 256 90z" />
-    <glyph glyph-name="uniE8AA" unicode="picture_in_picture" 
-d="M448 106v300h-384v-300h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384zM405 363v-128h-170v128h170z" />
-    <glyph glyph-name="uniE8AB" unicode="polymer" 
-d="M405 427l96 -171l-96 -171h-85l96 171l-56 99l-168 -270h-85l-96 171l96 171h85l-96 -171l56 -99l168 270h85z" />
-    <glyph glyph-name="uniE8AC" unicode="power_settings_new" 
-d="M380 402q68 -58 68 -146q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 88 68 146l30 -30q-55 -45 -55 -116q0 -62 43.5 -105.5t105.5 -43.5t105.5 43.5t43.5 105.5q0 71 -55 115zM277 448v-213h-42v213h42z" />
-    <glyph glyph-name="uniE8AD" unicode="print" 
-d="M384 448v-85h-256v85h256zM405 256q9 0 15.5 6t6.5 15t-6.5 15.5t-15.5 6.5t-15 -6.5t-6 -15.5t6 -15t15 -6zM341 107v106h-170v-106h170zM405 341q26 0 45 -19t19 -45v-128h-85v-85h-256v85h-85v128q0 26 19 45t45 19h298z" />
-    <glyph glyph-name="uniE8AE" unicode="query_builder" 
-d="M267 363v-112l96 -57l-16 -27l-112 68v128h32zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE8AF" unicode="question_answer" 
-d="M363 256q0 -9 -6.5 -15t-15.5 -6h-213l-85 -86v299q0 9 6 15t15 6h277q9 0 15.5 -6t6.5 -15v-192zM448 384q9 0 15 -6t6 -15v-320l-85 85h-235q-9 0 -15 6t-6 15v43h277v192h43z" />
-    <glyph glyph-name="uniE8B0" unicode="receipt" 
-d="M64 43v426l32 -32l32 32l32 -32l32 32l32 -32l32 32l32 -32l32 32l32 -32l32 32l32 -32l32 32v-426l-32 32l-32 -32l-32 32l-32 -32l-32 32l-32 -32l-32 32l-32 -32l-32 32l-32 -32l-32 32zM384 320v43h-256v-43h256zM384 235v42h-256v-42h256zM384 149v43h-256v-43h256z
-" />
-    <glyph glyph-name="uniE8B1" unicode="redeem" 
-d="M427 213v128h-109l45 -60l-35 -25q-64 87 -72 98q-8 -11 -72 -98l-35 25l45 60h-109v-128h342zM427 107v42h-342v-42h342zM192 427q-9 0 -15 -6.5t-6 -15.5t6 -15t15 -6t15 6t6 15t-6 15.5t-15 6.5zM320 427q-9 0 -15 -6.5t-6 -15.5t6 -15t15 -6t15 6t6 15t-6 15.5
-t-15 6.5zM427 384q18 0 30 -12.5t12 -30.5v-234q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v234q0 18 12 30.5t30 12.5h47q-4 14 -4 21q0 26 19 45t45 19q33 0 53 -28l11 -15l11 15q20 28 53 28q26 0 45 -19t19 -45q0 -7 -4 -21h47z" />
-    <glyph glyph-name="uniE8B2" unicode="report_problem" 
-d="M277 213v86h-42v-86h42zM277 128v43h-42v-43h42zM21 64l235 405l235 -405h-470z" />
-    <glyph glyph-name="uniE8B3" unicode="restore" 
-d="M256 341h32v-90l75 -45l-16 -26l-91 55v106zM277 448q79 0 135.5 -56t56.5 -136t-56.5 -136t-135.5 -56t-135 56l30 31q44 -44 105 -44q62 0 106 43.5t44 105.5t-44 105.5t-106 43.5t-105.5 -43.5t-43.5 -105.5h64l-86 -86l-2 3l-83 83h64q0 80 56.5 136t135.5 56z" />
-    <glyph glyph-name="uniE8B4" unicode="room" 
-d="M256 267q22 0 37.5 15.5t15.5 37.5t-15.5 37.5t-37.5 15.5t-37.5 -15.5t-15.5 -37.5t15.5 -37.5t37.5 -15.5zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -31 -15.5 -71t-37.5 -75t-43.5 -65.5t-36.5 -48.5l-16 -17q-6 7 -16 18.5t-36 46t-45.5 67t-35.5 73.5t-16 72
-q0 62 43.5 105.5t105.5 43.5z" />
-    <glyph glyph-name="uniE8B5" unicode="schedule" 
-d="M267 363v-112l96 -57l-16 -27l-112 68v128h32zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5
-t150.5 62.5z" />
-    <glyph glyph-name="uniE8B6" unicode="search" 
-d="M203 213q40 0 68 28t28 68t-28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28zM331 213l106 -106l-32 -32l-106 106v17l-6 6q-38 -33 -90 -33q-58 0 -98.5 40t-40.5 98t40.5 98.5t98.5 40.5t98 -40.5t40 -98.5q0 -52 -33 -90l6 -6h17z" />
-    <glyph glyph-name="uniE8B8" unicode="settings" 
-d="M256 181q31 0 53 22t22 53t-22 53t-53 22t-53 -22t-22 -53t22 -53t53 -22zM415 235l45 -35q7 -5 2 -14l-43 -74q-4 -7 -13 -4l-53 21q-21 -15 -36 -21l-8 -56q-2 -9 -10 -9h-86q-8 0 -10 9l-8 56q-19 8 -36 21l-53 -21q-9 -3 -13 4l-43 74q-5 9 2 14l45 35q-1 7 -1 21
-t1 21l-45 35q-7 5 -2 14l43 74q4 7 13 4l53 -21q21 15 36 21l8 56q2 9 10 9h86q8 0 10 -9l8 -56q19 -8 36 -21l53 21q9 3 13 -4l43 -74q5 -9 -2 -14l-45 -35q1 -7 1 -21t-1 -21z" />
-    <glyph glyph-name="uniE8B9" unicode="settings_applications" 
-d="M368 256q0 10 -1 15l32 24q5 4 1 10l-30 52q-3 5 -9 3l-37 -15q-13 10 -25 15l-6 39q-2 6 -7 6h-60q-6 0 -7 -6l-6 -40q-16 -7 -25 -14l-37 15q-5 2 -9 -4l-30 -51q-4 -6 1 -10l32 -24q-1 -5 -1 -15t1 -15l-32 -24q-5 -4 -1 -10l30 -52q3 -5 9 -3l37 15q13 -10 25 -15
-l6 -39q2 -6 7 -6h60q6 0 7 6l6 40q16 7 25 14l37 -15q5 -2 9 4l30 51q4 6 -1 10l-32 24q1 5 1 15zM405 448q18 0 30.5 -13t12.5 -30v-298q0 -17 -12.5 -30t-30.5 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h298zM256 299q17 0 30 -13t13 -30t-13 -30
-t-30 -13t-30 13t-13 30t13 30t30 13z" />
-    <glyph glyph-name="uniE8BA" unicode="settings_backup_restore" 
-d="M256 448q80 0 136 -56t56 -136t-56 -136t-136 -56q-66 0 -117 40l30 30q40 -27 87 -27q62 0 105.5 43.5t43.5 105.5t-43.5 105.5t-105.5 43.5t-105.5 -43.5t-43.5 -105.5h64l-86 -85l-85 85h64q0 80 56 136t136 56zM299 256q0 -17 -13 -30t-30 -13t-30 13t-13 30t13 30
-t30 13t30 -13t13 -30z" />
-    <glyph glyph-name="uniE8BB" unicode="settings_bluetooth" 
-d="M317 207l-40 40v-80zM277 430v-80l40 40zM378 390l-92 -91l92 -92l-122 -122h-21v162l-98 -98l-30 30l119 120l-119 119l30 30l98 -98v162h21zM320 0v43h43v-43h-43zM149 0v43h43v-43h-43zM235 0v43h42v-43h-42z" />
-    <glyph glyph-name="uniE8BC" unicode="settings_cell" 
-d="M341 171v256h-170v-256h170zM341 512q17 0 30 -13t13 -30v-341q0 -17 -13 -30t-30 -13h-170q-17 0 -30 13t-13 30v341q0 17 13 30t30 13h170zM320 0v43h43v-43h-43zM235 0v43h42v-43h-42zM149 0v43h43v-43h-43z" />
-    <glyph glyph-name="uniE8BD" unicode="settings_brightness" 
-d="M256 320v-128q26 0 45 19t19 45t-19 45t-45 19zM171 171v53l-32 32l32 32v53h53l32 32l32 -32h53v-53l32 -32l-32 -32v-53h-53l-32 -32l-32 32h-53zM448 106v300h-384v-300h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298
-q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE8BE" unicode="settings_ethernet" 
-d="M379 395l116 -139l-116 -139l-33 27l93 112l-93 112zM235 235v42h42v-42h-42zM363 277v-42h-43v42h43zM149 235v42h43v-42h-43zM166 368l-93 -112l93 -112l-33 -27l-116 139l116 139z" />
-    <glyph glyph-name="uniE8BF" unicode="settings_input_antenna" 
-d="M256 491q97 0 166 -69t69 -166h-43q0 80 -56 136t-136 56t-136 -56t-56 -136h-43q0 97 69 166t166 69zM277 207v-70l73 -73l-30 -30l-64 64l-64 -64l-30 30l73 73v70q-32 13 -32 49q0 22 15.5 37.5t37.5 15.5t37.5 -15.5t15.5 -37.5q0 -36 -32 -49zM256 405
-q62 0 105.5 -43.5t43.5 -105.5h-42q0 44 -31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5h-42q0 62 43.5 105.5t105.5 43.5z" />
-    <glyph glyph-name="uniE8C0" unicode="settings_input_component" 
-d="M363 171v42h128v-42q0 -21 -12 -37t-31 -23v-90h-43v90q-42 15 -42 60zM277 469v-85h43v-128h-128v128h43v85q0 9 6 15.5t15 6.5t15 -6.5t6 -15.5zM448 384h43v-128h-128v128h42v85q0 9 6.5 15.5t15.5 6.5t15 -6.5t6 -15.5v-85zM21 171v42h128v-42q0 -45 -42 -60v-90h-43
-v90q-19 7 -31 23t-12 37zM192 171v42h128v-42q0 -21 -12 -37t-31 -23v-90h-42v90q-19 7 -31 23t-12 37zM107 469v-85h42v-128h-128v128h43v85q0 9 6 15.5t15 6.5t15.5 -6.5t6.5 -15.5z" />
-    <glyph glyph-name="uniE8C1" unicode="settings_input_composite" 
-d="M363 171v42h128v-42q0 -21 -12 -37t-31 -23v-90h-43v90q-42 15 -42 60zM277 469v-85h43v-128h-128v128h43v85q0 9 6 15.5t15 6.5t15 -6.5t6 -15.5zM448 384h43v-128h-128v128h42v85q0 9 6.5 15.5t15.5 6.5t15 -6.5t6 -15.5v-85zM21 171v42h128v-42q0 -45 -42 -60v-90h-43
-v90q-19 7 -31 23t-12 37zM192 171v42h128v-42q0 -21 -12 -37t-31 -23v-90h-42v90q-19 7 -31 23t-12 37zM107 469v-85h42v-128h-128v128h43v85q0 9 6 15.5t15 6.5t15.5 -6.5t6.5 -15.5z" />
-    <glyph glyph-name="uniE8C2" unicode="settings_input_hdmi" 
-d="M171 427v-64h42v42h22v-42h42v42h22v-42h42v64h-170zM384 363h21v-128l-64 -128v-64h-170v64l-64 128v128h21v64q0 17 13 29.5t30 12.5h170q17 0 30 -12.5t13 -29.5v-64z" />
-    <glyph glyph-name="uniE8C3" unicode="settings_input_svideo" 
-d="M331 192q13 0 22.5 -9t9.5 -23t-9.5 -23t-22.5 -9t-22.5 9t-9.5 23t9.5 23t22.5 9zM373 299q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM256 64q80 0 136 56t56 136t-56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56z
-M256 491q97 0 166 -69t69 -166t-69 -166t-166 -69t-166 69t-69 166t69 166t166 69zM181 192q13 0 22.5 -9t9.5 -23t-9.5 -23t-22.5 -9t-22.5 9t-9.5 23t9.5 23t22.5 9zM320 373q0 -13 -9 -22.5t-23 -9.5h-64q-14 0 -23 9.5t-9 22.5t9 22.5t23 9.5h64q14 0 23 -9.5t9 -22.5z
-M171 267q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5z" />
-    <glyph glyph-name="uniE8C4" unicode="settings_overscan" 
-d="M448 106v300h-384v-300h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384zM299 171l-43 -54l-43 54h86zM128 299v-86l-53 43zM384 299l53 -43l-53 -43v86zM256 395l43 -54h-86z" />
-    <glyph glyph-name="uniE8C5" unicode="settings_phone" 
-d="M405 320h43v-43h-43v43zM427 181q9 0 15 -6t6 -15v-75q0 -9 -6 -15t-15 -6q-150 0 -256.5 106.5t-106.5 256.5q0 9 6 15t15 6h75q9 0 15 -6t6 -15q0 -40 12 -76q4 -13 -5 -22l-47 -47q48 -93 141 -141l47 47q9 9 22 5q36 -12 76 -12zM363 320v-43h-43v43h43zM277 320v-43
-h-42v43h42z" />
-    <glyph glyph-name="uniE8C6" unicode="settings_power" 
-d="M320 0v43h43v-43h-43zM353 417q74 -52 74 -140q0 -70 -50 -120t-121 -50t-121 50t-50 120q0 88 74 140l30 -30q-61 -38 -61 -110q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 72 -62 109zM277 469v-213h-42v213h42zM235 0v43h42v-43h-42zM149 0v43h43v-43h-43z
-" />
-    <glyph glyph-name="uniE8C7" unicode="settings_remote" 
-d="M256 512q99 0 166 -69l-30 -30q-56 56 -136 56t-136 -56l-30 30q69 69 166 69zM150 383q44 44 106 44t106 -44l-30 -30q-31 31 -76 31t-76 -31zM256 192q17 0 30 13t13 30t-13 29.5t-30 12.5t-30 -12.5t-13 -29.5t13 -30t30 -13zM320 320q9 0 15 -6t6 -15v-256
-q0 -9 -6 -15.5t-15 -6.5h-128q-9 0 -15 6.5t-6 15.5v256q0 9 6 15t15 6h128z" />
-    <glyph glyph-name="uniE8C8" unicode="settings_voice" 
-d="M405 299q0 -54 -37.5 -95t-90.5 -49v-70h-42v70q-53 8 -90.5 49t-37.5 95h36q0 -47 33.5 -78t79.5 -31t79.5 31t33.5 78h36zM320 0v43h43v-43h-43zM235 0v43h42v-43h-42zM256 235q-26 0 -45 19t-19 45v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -26 -19 -45t-45 -19z
-M149 0v43h43v-43h-43z" />
-    <glyph glyph-name="uniE8C9" unicode="shop" 
-d="M192 128l160 107l-160 85v-192zM213 427v-43h86v43h-86zM341 384h128v-277q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v277h128v43q0 18 12 30t30 12h86q18 0 30 -12t12 -30v-43z" />
-    <glyph glyph-name="uniE8CA" unicode="shop_two" 
-d="M256 192l117 85l-117 64v-149zM256 448v-43h85v43h-85zM384 405h107v-234q0 -18 -12.5 -30.5t-30.5 -12.5h-299q-18 0 -30 12.5t-12 30.5v234h106v43q0 18 12.5 30.5t30.5 12.5h85q18 0 30.5 -12.5t12.5 -30.5v-43zM64 320v-235h341q0 -18 -12 -30t-30 -12h-299
-q-18 0 -30.5 12t-12.5 30v235h43z" />
-    <glyph glyph-name="uniE8CB" unicode="shopping_basket" 
-d="M256 149q17 0 30 13t13 30t-13 30t-30 13t-30 -13t-13 -30t13 -30t30 -13zM192 320h128l-64 94zM367 320h102q9 0 15.5 -6t6.5 -15q-10 -40 -30 -112.5t-25 -91.5q-9 -31 -41 -31h-278q-32 0 -41 31l-54 198q-1 2 -1 6q0 9 6.5 15t15.5 6h102l93 140q6 9 18 9t18 -9z" />
-    <glyph glyph-name="uniE8CC" unicode="shopping_cart" 
-d="M363 128q17 0 29.5 -13t12.5 -30t-12.5 -29.5t-29.5 -12.5t-30 12.5t-13 29.5t13 30t30 13zM21 469h70l20 -42h316q9 0 15 -6.5t6 -15.5q0 -5 -3 -10l-76 -138q-12 -22 -37 -22h-159l-19 -35l-1 -3q0 -5 5 -5h247v-43h-256q-17 0 -29.5 13t-12.5 30q0 10 5 20l29 53
-l-77 162h-43v42zM149 128q17 0 30 -13t13 -30t-13 -29.5t-30 -12.5t-29.5 12.5t-12.5 29.5t12.5 30t29.5 13z" />
-    <glyph glyph-name="uniE8CD" unicode="speaker_notes" 
-d="M384 341v43h-171v-43h171zM384 277v43h-171v-43h171zM320 213v43h-107v-43h107zM171 341v43h-43v-43h43zM171 277v43h-43v-43h43zM171 213v43h-43v-43h43zM427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-299l-85 -85v384q0 17 12.5 29.5
-t29.5 12.5h342z" />
-    <glyph glyph-name="uniE8CE" unicode="spellcheck" 
-d="M461 265l30 -30l-203 -203l-108 109l30 30l78 -79zM137 277h88l-44 118zM266 171l-25 64h-120l-24 -64h-45l109 277h40l109 -277h-44z" />
-    <glyph glyph-name="uniE8D0" unicode="stars" 
-d="M346 128l-24 103l80 69l-105 9l-41 96l-41 -97l-105 -8l80 -69l-24 -103l90 54zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE8D1" unicode="store" 
-d="M256 128v85h-128v-85h128zM448 213h-21v-128h-43v128h-85v-128h-214v128h-21v43l21 107h342l21 -107v-43zM427 427v-43h-342v43h342z" />
-    <glyph glyph-name="uniE8D2" unicode="subject" 
-d="M85 405h342v-42h-342v42zM85 192v43h342v-43h-342zM427 320v-43h-342v43h342zM299 149v-42h-214v42h214z" />
-    <glyph glyph-name="uniE8D3" unicode="supervisor_account" 
-d="M192 235q22 0 51 -6q-51 -28 -51 -74v-48h-149v53q0 23 27.5 41t60.5 26t61 8zM352 213q37 0 77 -16t40 -42v-48h-234v48q0 26 40 42t77 16zM192 277q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM352 256q-22 0 -37.5 15.5t-15.5 37.5t15.5 38
-t37.5 16t37.5 -16t15.5 -38t-15.5 -37.5t-37.5 -15.5z" />
-    <glyph glyph-name="uniE8D4" unicode="swap_horiz" 
-d="M448 320l-85 -85v64h-150v42h150v64zM149 277v-64h150v-42h-150v-64l-85 85z" />
-    <glyph glyph-name="uniE8D5" unicode="swap_vert" 
-d="M192 448l85 -85h-64v-150h-42v150h-64zM341 149h64l-85 -85l-85 85h64v150h42v-150z" />
-    <glyph glyph-name="uniE8D6" unicode="swap_vertical_circle" 
-d="M373 192h-53v85h-43v-85h-53l75 -75zM139 320h53v-85h43v85h53l-75 75zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE8D7" unicode="system_update_alt" 
-d="M448 437q17 0 30 -12.5t13 -29.5v-299q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v299q0 17 13 29.5t30 12.5h128v-42h-128v-299h384v299h-128v42h128zM256 160l-85 85h64v192h42v-192h64z" />
-    <glyph glyph-name="uniE8D8" unicode="tab" 
-d="M448 107v213h-171v85h-213v-298h384zM448 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h384z" />
-    <glyph glyph-name="uniE8D9" unicode="tab_unselected" 
-d="M363 64v43h42v-43h-42zM277 64v43h43v-43h-43zM448 235v42h43v-42h-43zM448 64v43h43q0 -17 -13 -30t-30 -13zM107 405v43h42v-43h-42zM107 64v43h42v-43h-42zM192 405v43h43v-43h-43zM448 149v43h43v-43h-43zM448 448q17 0 30 -13t13 -30v-85h-214v128h171zM64 64
-q-17 0 -30 13t-13 30h43v-43zM21 149v43h43v-43h-43zM192 64v43h43v-43h-43zM21 405q0 17 13 30t30 13v-43h-43zM21 235v42h43v-42h-43zM21 320v43h43v-43h-43z" />
-    <glyph glyph-name="uniE8DA" unicode="theaters" 
-d="M384 320v43h-43v-43h43zM384 235v42h-43v-42h43zM384 149v43h-43v-43h43zM171 320v43h-43v-43h43zM171 235v42h-43v-42h43zM171 149v43h-43v-43h43zM384 448h43v-384h-43v43h-43v-43h-170v43h-43v-43h-43v384h43v-43h43v43h170v-43h43v43z" />
-    <glyph glyph-name="uniE8DB" unicode="thumb_down" 
-d="M405 448h86v-256h-86v256zM320 448q17 0 30 -13t13 -30v-213q0 -17 -13 -30l-140 -141l-23 23q-9 9 -9 22v7l21 98h-135q-17 0 -30 12.5t-13 29.5l1 2h-1v41q0 8 3 16l65 150q10 26 39 26h192z" />
-    <glyph glyph-name="uniE8DC" unicode="thumb_up" 
-d="M491 299l-1 -2h1v-41q0 -8 -3 -16l-65 -150q-10 -26 -39 -26h-192q-17 0 -30 13t-13 30v213q0 17 13 30l140 141l23 -23q9 -9 9 -22v-7l-21 -98h135q17 0 30 -12.5t13 -29.5zM21 64v256h86v-256h-86z" />
-    <glyph glyph-name="uniE8DD" unicode="thumbs_up_down" 
-d="M480 299q14 0 23 -9.5t9 -22.5v-139q0 -14 -9 -23l-106 -105l-17 17q-7 7 -7 17q3 14 8.5 40t6.5 33h-111q-9 0 -15 6t-6 15v27q0 3 2 11l49 113q9 20 29 20h144zM256 384v-27q0 -3 -2 -11l-49 -113q-9 -20 -29 -20h-144q-14 0 -23 9.5t-9 22.5v139q0 14 9 23l106 105
-l17 -17q7 -7 7 -17q-3 -14 -8.5 -40t-6.5 -33h111q9 0 15 -6t6 -15z" />
-    <glyph glyph-name="uniE8DE" unicode="toc" 
-d="M405 235v42h43v-42h-43zM405 363h43v-43h-43v43zM405 149v43h43v-43h-43zM64 149v43h299v-43h-299zM64 235v42h299v-42h-299zM64 320v43h299v-43h-299z" />
-    <glyph glyph-name="uniE8DF" unicode="today" 
-d="M149 299h107v-107h-107v107zM405 107v234h-298v-234h298zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-18 0 -30.5 13t-12.5 30v298q0 17 12.5 30t30.5 13h21v43h43v-43h170v43h43v-43h21z" />
-    <glyph glyph-name="uniE8E0" unicode="toll" 
-d="M64 256q0 -42 23.5 -75t61.5 -46v-44q-56 14 -92 60t-36 105t36 105t92 60v-44q-38 -13 -61.5 -46t-23.5 -75zM320 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5zM320 427q70 0 120.5 -50.5t50.5 -120.5
-t-50.5 -120.5t-120.5 -50.5t-120.5 50.5t-50.5 120.5t50.5 120.5t120.5 50.5z" />
-    <glyph glyph-name="uniE8E1" unicode="track_changes" 
-d="M407 407q62 -62 62 -151q0 -88 -62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5h21v-176q22 -12 22 -37q0 -17 -13 -30t-30 -13t-30 13t-13 30q0 25 22 37v45q-28 -8 -46 -30t-18 -52q0 -35 25 -60t60 -25t60 25t25 60q0 33 -25 60l30 30
-q38 -38 38 -90q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5q0 47 30.5 82.5t76.5 43.5v43q-63 -8 -106.5 -56t-43.5 -113q0 -70 50.5 -120.5t120.5 -50.5t120.5 50.5t50.5 120.5q0 71 -50 121z" />
-    <glyph glyph-name="uniE8E2" unicode="translate" 
-d="M339 149h69l-35 93zM395 299l96 -256h-43l-24 64h-101l-24 -64h-43l96 256h43zM275 191l-17 -44l-66 66l-107 -106l-30 30l109 107q-40 44 -64 97h43q21 -40 49 -71q46 51 68 114h-239v43h150v42h42v-42h150v-43h-63q-26 -80 -79 -139l-1 -1z" />
-    <glyph glyph-name="uniE8E3" unicode="trending_down" 
-d="M341 128l49 49l-104 104l-85 -85l-158 158l30 30l128 -128l85 85l134 -134l49 49v-128h-128z" />
-    <glyph glyph-name="uniE8E4" unicode="trending_neutral" 
-d="M469 256l-85 -85v64h-320v42h320v64z" />
-    <glyph glyph-name="uniE8E5" unicode="trending_up" 
-d="M341 384h128v-128l-49 49l-134 -134l-85 85l-128 -128l-30 30l158 158l85 -85l104 104z" />
-    <glyph glyph-name="uniE8E6" unicode="turned_in" 
-d="M363 448q17 0 29.5 -13t12.5 -30v-341l-149 64l-149 -64v341q0 17 12.5 30t29.5 13h214z" />
-    <glyph glyph-name="uniE8E7" unicode="turned_in_not" 
-d="M363 128v277h-214v-277l107 47zM363 448q17 0 29.5 -13t12.5 -30v-341l-149 64l-149 -64v341q0 17 12.5 30t29.5 13h214z" />
-    <glyph glyph-name="uniE8E8" unicode="verified_user" 
-d="M213 149l171 171l-30 30l-141 -140l-55 55l-30 -30zM256 491l192 -86v-128q0 -89 -55 -162.5t-137 -93.5q-82 20 -137 93.5t-55 162.5v128z" />
-    <glyph glyph-name="uniE8E9" unicode="view_agenda" 
-d="M427 448q9 0 15 -6t6 -15v-128q0 -9 -6 -15.5t-15 -6.5h-363q-9 0 -15 6.5t-6 15.5v128q0 9 6 15t15 6h363zM427 235q9 0 15 -6.5t6 -15.5v-128q0 -9 -6 -15t-15 -6h-363q-9 0 -15 6t-6 15v128q0 9 6 15.5t15 6.5h363z" />
-    <glyph glyph-name="uniE8EA" unicode="view_array" 
-d="M171 128v277h192v-277h-192zM384 405h64v-277h-64v277zM85 128v277h64v-277h-64z" />
-    <glyph glyph-name="uniE8EB" unicode="view_carousel" 
-d="M384 384h85v-235h-85v235zM43 149v235h85v-235h-85zM149 107v320h214v-320h-214z" />
-    <glyph glyph-name="uniE8EC" unicode="view_column" 
-d="M341 405h107v-277h-107v277zM85 128v277h107v-277h-107zM213 128v277h107v-277h-107z" />
-    <glyph glyph-name="uniE8ED" unicode="view_day" 
-d="M43 448h405v-64h-405v64zM427 341q9 0 15 -6t6 -15v-128q0 -9 -6 -15t-15 -6h-363q-9 0 -15 6t-6 15v128q0 9 6 15t15 6h363zM43 64v64h405v-64h-405z" />
-    <glyph glyph-name="uniE8EE" unicode="view_headline" 
-d="M85 405h342v-42h-342v42zM85 277v43h342v-43h-342zM85 107v42h342v-42h-342zM85 192v43h342v-43h-342z" />
-    <glyph glyph-name="uniE8EF" unicode="view_list" 
-d="M192 405h256v-85h-256v85zM192 107v85h256v-85h-256zM192 213v86h256v-86h-256zM85 320v85h86v-85h-86zM85 107v85h86v-85h-86zM85 213v86h86v-86h-86z" />
-    <glyph glyph-name="uniE8F0" unicode="view_module" 
-d="M341 405h107v-128h-107v128zM213 277v128h107v-128h-107zM341 128v128h107v-128h-107zM213 128v128h107v-128h-107zM85 128v128h107v-128h-107zM85 277v128h107v-128h-107z" />
-    <glyph glyph-name="uniE8F1" unicode="view_quilt" 
-d="M213 405h235v-128h-235v128zM341 128v128h107v-128h-107zM85 128v277h107v-277h-107zM213 128v128h107v-128h-107z" />
-    <glyph glyph-name="uniE8F2" unicode="view_stream" 
-d="M85 405h363v-128h-363v128zM85 128v128h363v-128h-363z" />
-    <glyph glyph-name="uniE8F3" unicode="view_week" 
-d="M277 405q9 0 15.5 -6t6.5 -15v-256q0 -9 -6.5 -15t-15.5 -6h-64q-9 0 -15 6t-6 15v256q0 9 6 15t15 6h64zM427 405q9 0 15 -6t6 -15v-256q0 -9 -6 -15t-15 -6h-64q-9 0 -15.5 6t-6.5 15v256q0 9 6.5 15t15.5 6h64zM128 405q9 0 15 -6t6 -15v-256q0 -9 -6 -15t-15 -6h-64
-q-9 0 -15 6t-6 15v256q0 9 6 15t15 6h64z" />
-    <glyph glyph-name="uniE8F4" unicode="visibility" 
-d="M256 320q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM256 149q44 0 75.5 31.5t31.5 75.5t-31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5t31.5 -75.5t75.5 -31.5zM256 416q79 0 143 -44t92 -116q-28 -72 -92 -116t-143 -44t-143 44t-92 116
-q28 72 92 116t143 44z" />
-    <glyph glyph-name="uniE8F5" unicode="visibility_off" 
-d="M253 320h3q26 0 45 -19t19 -45v-4zM161 303q-12 -24 -12 -47q0 -44 31.5 -75.5t75.5 -31.5q23 0 47 12l-33 33q-8 -2 -14 -2q-26 0 -45 19t-19 45q0 6 2 14zM43 421l27 27l378 -378l-27 -27q-5 5 -31.5 31t-40.5 40q-43 -18 -93 -18q-79 0 -143 44t-92 116q25 62 80 106
-q-12 12 -33.5 34t-24.5 25zM256 363q-20 0 -39 -8l-46 46q39 15 85 15q79 0 142.5 -44t91.5 -116q-24 -59 -73 -101l-62 62q8 19 8 39q0 44 -31.5 75.5t-75.5 31.5z" />
-    <glyph glyph-name="uniE8F6" unicode="card_giftcard" 
-d="M427 213v128h-109l45 -60l-35 -25q-64 87 -72 98q-8 -11 -72 -98l-35 25l45 60h-109v-128h342zM427 107v42h-342v-42h342zM192 427q-9 0 -15 -6.5t-6 -15.5t6 -15t15 -6t15 6t6 15t-6 15.5t-15 6.5zM320 427q-9 0 -15 -6.5t-6 -15.5t6 -15t15 -6t15 6t6 15t-6 15.5
-t-15 6.5zM427 384q18 0 30 -12.5t12 -30.5v-234q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v234q0 18 12 30.5t30 12.5h47q-4 14 -4 21q0 26 19 45t45 19q33 0 53 -28l11 -15l11 15q20 28 53 28q26 0 45 -19t19 -45q0 -7 -4 -21h47z" />
-    <glyph glyph-name="uniE8F7" unicode="card_membership" 
-d="M427 299v128h-342v-128h342zM427 192v43h-342v-43h342zM427 469q18 0 30 -12t12 -30v-235q0 -18 -12 -30.5t-30 -12.5h-86v-106l-85 42l-85 -42v106h-86q-18 0 -30 12.5t-12 30.5v235q0 18 12 30t30 12h342z" />
-    <glyph glyph-name="uniE8F8" unicode="card_travel" 
-d="M427 213v128h-64v-42h-43v42h-128v-42h-43v42h-64v-128h342zM427 107v42h-342v-42h342zM192 427v-43h128v43h-128zM427 384q18 0 30 -12.5t12 -30.5v-234q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v234q0 18 12 30.5t30 12.5h64v43q0 18 12.5 30t30.5 12
-h128q18 0 30.5 -12t12.5 -30v-43h64z" />
-    <glyph glyph-name="uniE8F9" unicode="work" 
-d="M299 384v43h-86v-43h86zM427 384q18 0 30 -12.5t12 -30.5v-234q0 -18 -12 -30.5t-30 -12.5h-342q-18 0 -30 12.5t-12 30.5v234q0 18 12 30.5t30 12.5h86v43q0 18 12 30t30 12h86q18 0 30 -12t12 -30v-43h86z" />
-    <glyph glyph-name="uniE8FA" unicode="youtube_searched_for" 
-d="M363 213l106 -106l-31 -32l-107 107v16l-6 6q-38 -33 -90 -33q-38 0 -71 19l32 31q19 -8 39 -8q40 0 68 28t28 68t-28 68t-68 28t-68 -28t-28 -68h74l-88 -85l-82 85h53q0 57 41 98t98 41q58 0 98.5 -40.5t40.5 -98.5q0 -51 -34 -90l6 -6h17z" />
-    <glyph glyph-name="uniE8FB" unicode="eject" 
-d="M256 405l142 -213h-284zM107 149h298v-42h-298v42z" />
-    <glyph glyph-name="uniE8FC" unicode="camera_enhance" 
-d="M256 149l-27 59l-58 27l58 26l27 59l27 -59l58 -26l-58 -27zM256 128q44 0 75.5 31.5t31.5 75.5t-31.5 75t-75.5 31t-75.5 -31t-31.5 -75t31.5 -75.5t75.5 -31.5zM192 448h128l39 -43h68q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12.5 -30t-29.5 -13h-342q-17 0 -29.5 13
-t-12.5 30v256q0 17 12.5 29.5t29.5 12.5h68z" />
-    <glyph glyph-name="uniE8FD" unicode="help_outline" 
-d="M256 384q35 0 60 -25t25 -60q0 -27 -32 -55.5t-32 -51.5h-42q0 23 10 39.5t22 24t22 18.5t10 25q0 17 -13 29.5t-30 12.5t-30 -12.5t-13 -29.5h-42q0 35 25 60t60 25zM256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5
-t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM235 128v43h42v-43h-42z" />
-    <glyph glyph-name="uniE8FE" unicode="reorder" 
-d="M64 405h384v-42h-384v42zM64 277v43h384v-43h-384zM64 107v42h384v-42h-384zM64 192v43h384v-43h-384z" />
-    <glyph glyph-name="uniE8FF" unicode="zoom_in" 
-d="M256 299h-43v-43h-21v43h-43v21h43v43h21v-43h43v-21zM203 213q40 0 68 28t28 68t-28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28zM331 213l106 -106l-32 -32l-106 106v17l-6 6q-38 -33 -90 -33q-58 0 -98.5 40t-40.5 98t40.5 98.5t98.5 40.5t98 -40.5t40 -98.5
-q0 -52 -33 -90l6 -6h17z" />
-    <glyph glyph-name="uniE900" unicode="zoom_out" 
-d="M149 320h107v-21h-107v21zM203 213q40 0 68 28t28 68t-28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28zM331 213l106 -106l-32 -32l-106 106v17l-6 6q-38 -33 -90 -33q-58 0 -98.5 40t-40.5 98t40.5 98.5t98.5 40.5t98 -40.5t40 -98.5q0 -52 -33 -90l6 -6h17z" />
-    <glyph glyph-name="uniE902" unicode="http" 
-d="M459 267v21h-43v-21h43zM459 320q13 0 22.5 -9.5t9.5 -22.5v-21q0 -13 -9.5 -22.5t-22.5 -9.5h-43v-43h-32v128h75zM267 288v32h96v-32h-32v-96h-32v96h-32zM149 288v32h96v-32h-32v-96h-32v96h-32zM96 277v43h32v-128h-32v53h-43v-53h-32v128h32v-43h43z" />
-    <glyph glyph-name="uniE903" unicode="event_seat" 
-d="M363 235h-214v170q0 17 13 30t30 13h128q17 0 30 -13t13 -30v-170zM43 299h64v-64h-64v64zM405 299h64v-64h-64v64zM85 64v128h342v-128h-64v64h-214v-64h-64z" />
-    <glyph glyph-name="uniE904" unicode="flight_land" 
-d="M299 204q-82 23 -206 55l-34 10v110l31 -8l20 -50l106 -28v176l41 -11l59 -192l113 -30q13 -4 19.5 -15.5t3.5 -24.5q-4 -13 -15 -19t-24 -3zM53 107h406v-43h-406v43z" />
-    <glyph glyph-name="uniE905" unicode="flight_takeoff" 
-d="M471 306q3 -13 -3.5 -24t-19.5 -15q-124 -33 -206 -55l-113 -30l-34 -10l-56 96l31 8l42 -32l106 28l-88 153l41 11l147 -137l114 30q13 4 24.5 -3t14.5 -20zM53 107h406v-43h-406v43z" />
-    <glyph glyph-name="uniE906" unicode="play_for_work" 
-d="M128 213h43q0 -35 25 -60t60 -25t60 25t25 60h43q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM235 405h42v-119h75l-96 -96l-96 96h75v119z" />
-    <glyph glyph-name="uniE908" unicode="gif" 
-d="M405 288h-64v-21h43v-32h-43v-43h-32v128h96v-32zM192 320q9 0 15 -6t6 -15v-11h-74v-64h42v32h32v-43q0 -9 -6 -15t-15 -6h-64q-9 0 -15 6t-6 15v86q0 9 6 15t15 6h64zM245 320h32v-128h-32v128z" />
-    <glyph glyph-name="uniE909" unicode="indeterminate_check_box" 
-d="M363 235v42h-214v-42h214zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniE90A" unicode="offline_pin" 
-d="M220 213l143 143l-30 30l-113 -113l-41 41l-30 -30zM363 128v43h-214v-43h214zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE90B" unicode="all_out" 
-d="M343 170q34 34 34 82.5t-34 82.5t-82.5 34t-82.5 -34t-34 -82.5t34 -82.5t82.5 -34t82.5 34zM366 358q44 -44 44 -106t-44 -105t-106 -43t-105 43t-43 105t43 106t105 44t106 -44zM90 338v85h85zM175 82h-85v85zM431 167v-85h-85zM346 423h85v-85z" />
-    <glyph glyph-name="uniE90C" unicode="copyright" 
-d="M256 85q70 0 120.5 50.5t50.5 120.5t-50.5 120.5t-120.5 50.5t-120.5 -50.5t-50.5 -120.5t50.5 -120.5t120.5 -50.5zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5zM253 317q-40 0 -40 -58v-6
-q0 -58 40 -58q15 0 25 8.5t10 21.5h38q0 -25 -22 -44q-21 -18 -51 -18q-40 0 -61 24t-21 66v6q0 41 20 64q24 27 62 27q33 0 52 -19q21 -21 21 -49h-38q0 7 -3 13q-5 10 -7 12q-10 10 -25 10z" />
-    <glyph glyph-name="uniE90D" unicode="fingerprint" 
-d="M318 43h-3q-46 12 -79 45q-46 46 -46 111q0 26 19 44.5t46 18.5t46.5 -18.5t19.5 -44.5q0 -17 12.5 -29t31.5 -12t32 12t13 29q0 60 -45.5 103t-109.5 43q-46 0 -84 -23.5t-57 -62.5q-12 -25 -12 -60q0 -40 14 -77q3 -10 -7 -13t-13 6q-16 45 -16 84t15 69q21 45 64.5 72
-t95.5 27q73 0 124.5 -49.5t51.5 -118.5q0 -26 -19.5 -44t-46.5 -18t-46 18t-19 44q0 17 -13 29.5t-32 12.5t-31.5 -12.5t-12.5 -29.5q0 -56 40 -96q28 -28 70 -39q9 -1 7 -13q-2 -8 -10 -8zM265 199q0 -37 27.5 -64t68.5 -27q2 0 9 1t11.5 1t9 -1.5t5.5 -6.5q2 -11 -9 -13
-q-12 -2 -26 -2q-40 0 -66 19q-51 35 -51 93q0 11 11 11q10 0 10 -11zM208 47q-4 0 -7 3q-27 27 -43 57q-23 40 -23 92q0 47 35.5 81t85.5 34t85.5 -34t35.5 -81q0 -10 -11 -10t-11 10q0 39 -29 66.5t-70 27.5t-70 -27.5t-29 -66.5q0 -48 19 -82q13 -23 40 -52q8 -7 0 -15
-q-3 -3 -8 -3zM75 305q-7 0 -10 5t1 11q32 46 80 70q50 26 110 26t110 -26q49 -24 80 -69q6 -10 -3 -15q-10 -6 -15 3q-27 39 -72 62q-46 23 -100 23.5t-100 -23.5q-45 -23 -73 -63q-3 -4 -8 -4zM380 417q-4 0 -5 1q-59 30 -119 30q-65 0 -119 -30q-6 -3 -10.5 0.5t-4.5 9
-t5 9.5q58 32 129 32q65 0 129 -32q7 -4 5 -12t-10 -8z" />
-    <glyph glyph-name="uniE90E" unicode="gavel" 
-d="M82 310l120 -121l-60 -60l-121 120zM263 491l120 -121l-60 -60l-121 120zM112 340l60 60l302 -302l-60 -60zM21 64h256v-43h-256v43z" />
-    <glyph glyph-name="uniE90F" unicode="lightbulb_outline" 
-d="M317 233q46 32 46 87q0 44 -31.5 75.5t-75.5 31.5t-75.5 -31.5t-31.5 -75.5q0 -55 46 -87l18 -13v-49h86v49zM256 469q62 0 105.5 -43.5t43.5 -105.5q0 -78 -64 -122v-49q0 -9 -6 -15t-15 -6h-128q-9 0 -15 6t-6 15v49q-64 44 -64 122q0 62 43.5 105.5t105.5 43.5z
-M192 64v21h128v-21q0 -9 -6 -15t-15 -6h-86q-9 0 -15 6t-6 15z" />
-    <glyph glyph-name="uniE911" unicode="picture_in_picture_alt" 
-d="M448 106v300h-384v-300h384zM491 107q0 -17 -13 -30t-30 -13h-384q-17 0 -30 13t-13 30v299q0 17 13 29.5t30 12.5h384q17 0 30 -12.5t13 -29.5v-299zM405 277v-128h-170v128h170z" />
-    <glyph glyph-name="uniE912" unicode="important_devices" 
-d="M255 320h65l-53 -38l20 -62l-52 39l-53 -39l20 62l-53 38h65l21 64zM427 469q17 0 29.5 -12t12.5 -30v-107h-42v107h-384v-256h277v-43h-43v-43h43v-42h-171v42h43v43h-149q-18 0 -30.5 13t-12.5 30v256q0 18 12.5 30t30.5 12h384zM491 85v150h-107v-150h107zM491 277
-q9 0 15 -6t6 -15v-192q0 -9 -6 -15t-15 -6h-107q-9 0 -15 6t-6 15v192q0 9 6 15t15 6h107z" />
-    <glyph glyph-name="uniE913" unicode="touch_app" 
-d="M402 173q19 -9 19 -29v-4l-16 -113q-1 -12 -10 -19.5t-21 -7.5h-145q-13 0 -22 9l-106 106l17 17q7 7 17 7q1 0 2.5 -0.5t2.5 -0.5l73 -15v229q0 14 9.5 23t22.5 9t22.5 -9t9.5 -23v-128h17q3 0 11 -2zM192 272q-43 28 -43 80q0 40 28 68t68 28t68 -28t28 -68
-q0 -53 -42 -80v80q0 22 -16 37.5t-38 15.5t-37.5 -15.5t-15.5 -37.5v-80z" />
-    <glyph glyph-name="uniE914" unicode="accessible" 
-d="M274 128h44q-8 -37 -37 -61t-68 -24q-44 0 -75 31t-31 75q0 39 24 68t61 37v-44q-19 -7 -31 -23.5t-12 -37.5q0 -26 19 -45t45 -19q21 0 37.5 12t23.5 31zM213 318q0 24 21 38t43 1h1v-1q7 -3 13 -9l28 -31q36 -39 86 -39v-42q-56 0 -106 41v-73h64q17 0 29.5 -13
-t12.5 -30v-117h-42v106h-107q-17 0 -30 13t-13 30v126zM213 427q0 18 12.5 30t30.5 12t30.5 -12t12.5 -30t-12.5 -30.5t-30.5 -12.5t-30.5 12.5t-12.5 30.5z" />
-    <glyph glyph-name="uniE915" unicode="compare_arrows" 
-d="M320 235l-85 85l85 85v-64h149v-42h-149v-64zM192 213v64l85 -85l-85 -85v64h-149v42h149z" />
-    <glyph glyph-name="uniE916" unicode="date_range" 
-d="M405 85v235h-298v-235h298zM405 427q17 0 30 -13t13 -30v-299q0 -17 -13 -29.5t-30 -12.5h-298q-18 0 -30.5 12.5t-12.5 29.5v299q0 17 12.5 30t30.5 13h21v42h43v-42h170v42h43v-42h21zM363 277v-42h-43v42h43zM277 277v-42h-42v42h42zM192 277v-42h-43v42h43z" />
-    <glyph glyph-name="uniE917" unicode="donut_large" 
-d="M277 108q48 7 84.5 43t43.5 84h64q-8 -80 -60 -132.5t-132 -59.5v65zM405 277q-7 48 -43.5 84t-84.5 43v65q80 -8 132 -60t60 -132h-64zM235 404q-50 -8 -89 -51t-39 -97t39 -97t89 -51v-65q-81 8 -136.5 69t-55.5 144t55.5 144t136.5 69v-65z" />
-    <glyph glyph-name="uniE918" unicode="donut_small" 
-d="M277 195q27 8 40 40h152q-8 -77 -60.5 -131t-131.5 -61v152zM317 277q-12 32 -40 40v152q79 -7 131.5 -61t60.5 -131h-152zM235 317q-17 -7 -30 -24t-13 -37t13 -37t30 -24v-152q-81 8 -136.5 69t-55.5 144t55.5 144t136.5 69v-152z" />
-    <glyph glyph-name="uniE919" unicode="line_style" 
-d="M64 427h384v-86h-384v86zM277 256v43h171v-43h-171zM64 256v43h171v-43h-171zM405 85v43h43v-43h-43zM320 85v43h43v-43h-43zM235 85v43h42v-43h-42zM149 85v43h43v-43h-43zM64 85v43h43v-43h-43zM341 171v42h107v-42h-107zM203 171v42h106v-42h-106zM64 171v42h107v-42
-h-107z" />
-    <glyph glyph-name="uniE91A" unicode="line_weight" 
-d="M64 427h384v-86h-384v86zM64 235v64h384v-64h-384zM64 85v22h384v-22h-384zM64 149v43h384v-43h-384z" />
-    <glyph glyph-name="uniE91B" unicode="motorcycle" 
-d="M405 149q26 0 45 19t19 45t-19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19zM167 192h-60v43h60q-7 19 -23.5 30.5t-36.5 11.5q-26 0 -45 -19t-19 -45t19 -45t45 -19q20 0 36.5 12t23.5 31zM415 319q41 -3 69 -33t28 -73q0 -45 -31 -75.5t-76 -30.5t-75.5 30.5t-30.5 75.5
-q0 20 6 38l-59 -59h-35q-8 -37 -36.5 -61t-67.5 -24q-45 0 -76 30.5t-31 75.5t31 76t76 31h247l-43 43h-76v42h94z" />
-    <glyph glyph-name="uniE91C" unicode="opacity" 
-d="M128 213h256q0 55 -38 93l-90 94l-90 -93q-38 -38 -38 -94zM377 341q50 -50 50 -120q0 -71 -50 -121t-121 -50t-121 50t-50 121q0 70 50 120l121 121z" />
-    <glyph glyph-name="uniE91D" unicode="pets" 
-d="M370 195l8.5 -8.5l8.5 -8.5t8.5 -9t8 -9.5t7.5 -9.5t6.5 -10t5 -11t3 -11.5t1 -12t-0.5 -12.5q-11 -42 -50 -50q-7 -1 -48.5 4t-69.5 5h-4q-28 0 -69.5 -5t-48.5 -4q-39 8 -50 50q-3 20 7 41t18.5 30t30.5 31q10 11 26.5 31t26.5 31q18 22 37 28q4 2 7 2q6 1 17 1
-q12 0 17 -1q3 0 7 -2q19 -6 37 -28q9 -11 26 -31t27 -31zM363 309q0 22 15.5 38t37.5 16t37.5 -16t15.5 -38t-15.5 -37.5t-37.5 -15.5t-37.5 15.5t-15.5 37.5zM267 395q0 22 15.5 37.5t37.5 15.5t37.5 -15.5t15.5 -37.5t-15.5 -38t-37.5 -16t-37.5 16t-15.5 38zM139 395
-q0 22 15.5 37.5t37.5 15.5t37.5 -15.5t15.5 -37.5t-15.5 -38t-37.5 -16t-37.5 16t-15.5 38zM43 309q0 22 15.5 38t37.5 16t37.5 -16t15.5 -38t-15.5 -37.5t-37.5 -15.5t-37.5 15.5t-15.5 37.5z" />
-    <glyph glyph-name="uniE91E" unicode="pregnant_woman" 
-d="M341 235v-86h-64v-106h-64v106h-42v150q0 26 19 45t45 19t45 -19t19 -45q42 -17 42 -64zM192 427q0 18 12.5 30t30.5 12t30 -12t12 -30t-12 -30.5t-30 -12.5t-30.5 12.5t-12.5 30.5z" />
-    <glyph glyph-name="uniE91F" unicode="record_voice_over" 
-d="M428 469q62 -65 62 -150.5t-62 -147.5l-35 34q44 51 44 116.5t-44 113.5zM358 398q32 -35 32 -79t-32 -76l-36 36q14 19 14 41.5t-14 41.5zM192 192q54 0 112.5 -23.5t58.5 -61.5v-43h-342v43q0 38 58.5 61.5t112.5 23.5zM107 320q0 35 25 60t60 25t60 -25t25 -60
-t-25 -60t-60 -25t-60 25t-25 60z" />
-    <glyph glyph-name="uniE920" unicode="rounded_corner" 
-d="M448 341v-106h-43v106q0 26 -19 45t-45 19h-106v43h106q44 0 75.5 -31.5t31.5 -75.5zM64 64v43h43v-43h-43zM149 64v43h43v-43h-43zM235 64v43h42v-43h-42zM149 405v43h43v-43h-43zM64 405v43h43v-43h-43zM64 320v43h43v-43h-43zM64 149v43h43v-43h-43zM64 235v42h43v-42
-h-43zM405 149v43h43v-43h-43zM405 107h43v-43h-43v43z" />
-    <glyph glyph-name="uniE921" unicode="rowing" 
-d="M448 64l-64 -64l-64 64v32l-151 151q-7 -1 -20 -1v46q26 -1 54 11.5t46 31.5l30 33q16 16 35 16h1q19 0 33.5 -14t14.5 -34v-123q0 -26 -20 -46l-76 76v49q-20 -17 -49 -30l134 -134h32zM320 491q17 0 30 -13t13 -30t-13 -30t-30 -13t-30 13t-13 30t13 30t30 13zM181 203
-l54 -54h-43l-75 -74l-32 32z" />
-    <glyph glyph-name="uniE922" unicode="timeline" 
-d="M491 341q0 -17 -13 -29.5t-30 -12.5q-8 0 -11 1l-76 -76q2 -6 2 -11q0 -17 -13 -29.5t-30 -12.5t-30 12.5t-13 29.5q0 5 2 11l-55 55q-6 -2 -11 -2t-11 2l-97 -97q2 -6 2 -11q0 -17 -13 -30t-30 -13t-30 13t-13 30t13 29.5t30 12.5q8 0 11 -1l97 97q-1 3 -1 11
-q0 17 12.5 30t29.5 13t30 -13t13 -30q0 -8 -1 -11l54 -54q3 1 11 1t11 -1l76 75q-2 6 -2 11q0 17 13 30t30 13t30 -13t13 -30z" />
-    <glyph glyph-name="uniE923" unicode="update" 
-d="M267 341v-90l74 -45l-15 -26l-91 55v106h32zM448 296h-145l59 60q-44 44 -105.5 44.5t-105.5 -42.5q-43 -44 -43 -104t43 -104t105 -44t106 44q43 43 43 104h43q0 -79 -56 -134q-56 -56 -136 -56t-136 56q-56 55 -56 133.5t56 134.5t135 56t135 -56l58 60v-152z" />
-    <glyph glyph-name="uniE924" unicode="watch_later" 
-d="M346 166l17 28l-96 58v111h-32v-128zM256 469q88 0 150.5 -62.5t62.5 -150.5t-62.5 -150.5t-150.5 -62.5t-150.5 62.5t-62.5 150.5t62.5 150.5t150.5 62.5z" />
-    <glyph glyph-name="uniE925" unicode="pan_tool" 
-d="M491 395v-310q0 -35 -25.5 -60t-60.5 -25h-155q-36 0 -61 25l-168 171q27 26 28 26q7 6 17 6q7 0 13 -3l92 -52v254q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-150h21v203q0 14 9 23t23 9t23 -9t9 -23v-203h21v182q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-182
-h22v118q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5z" />
-    <glyph glyph-name="uniE926" unicode="euro_symbol" 
-d="M320 117q51 0 90 34l38 -38q-54 -49 -128 -49q-62 0 -111.5 36t-69.5 92h-75v43h65q-1 7 -1 21t1 21h-65v43h75q20 56 69.5 92t111.5 36q74 0 128 -49l-38 -38q-39 34 -90 34q-39 0 -72 -20.5t-51 -54.5h123v-43h-137q-2 -14 -2 -21t2 -21h137v-43h-123
-q18 -34 50.5 -54.5t72.5 -20.5z" />
-    <glyph glyph-name="uniE927" unicode="g_translate" 
-d="M448 85v278q0 9 -6 15t-15 6h-188l25 -86h41v22h23v-22h77v-22h-27q-10 -39 -41 -75l58 -57l-15 -16l-58 57l-19 -19l17 -59l-43 -43h150q9 0 15 6t6 15zM298 253q9 -19 24 -36q12 14 20 28.5t10 22.5l3 8h-85l7 -23h21zM282 237l13 -47l12 11q-14 15 -25 36zM237 286
-q0 11 -2 15h-84v-33h47q-3 -12 -14 -22t-31 -10q-21 0 -36 15.5t-15 36.5t15 36.5t36 15.5q19 0 32 -13l2 -1l26 25l-2 1q-25 23 -58 23q-36 0 -61.5 -25.5t-25.5 -61.5t25.5 -61.5t61.5 -25.5q37 0 60.5 24t23.5 61zM427 405q17 0 29.5 -12.5t12.5 -29.5v-278
-q0 -17 -12.5 -29.5t-29.5 -12.5h-171l-21 64h-150q-17 0 -29.5 12.5t-12.5 29.5v278q0 17 12.5 29.5t29.5 12.5h128l19 -64h195z" />
-    <glyph glyph-name="uniE928" unicode="remove_shopping_cart" 
-d="M149 128q17 0 30 -13t13 -30t-13 -29.5t-30 -12.5t-29.5 12.5t-12.5 29.5t12.5 30t29.5 13zM332 235l-192 192h287q9 0 15 -6.5t6 -15.5q0 -5 -3 -10l-76 -138q-12 -22 -37 -22zM158 192h108l-43 43h-50l-19 -35l-1 -3q0 -5 5 -5zM485 27l-27 -27l-61 61q-13 -18 -34 -18
-q-17 0 -30 12.5t-13 29.5q0 22 18 35l-30 29h-159q-17 0 -29.5 13t-12.5 30q0 10 5 20l29 53l-47 99l-94 94l27 27z" />
-    <glyph glyph-name="uniE929" unicode="restore_page" 
-d="M256 128q44 0 75.5 31.5t31.5 75.5t-31.5 75t-75.5 31q-58 0 -90 -49l-27 28v-85h85l-34 34q20 40 66 40q31 0 53 -21.5t22 -52.5t-22 -53t-53 -22q-39 0 -61 32h-37q12 -29 38.5 -46.5t59.5 -17.5zM299 469l128 -128v-256q0 -17 -13 -29.5t-30 -12.5h-256
-q-17 0 -30 12.5t-13 29.5l1 342q0 17 12.5 29.5t29.5 12.5h171z" />
-    <glyph glyph-name="uniE92A" unicode="speaker_notes_off" 
-d="M427 469q17 0 29.5 -12.5t12.5 -29.5v-256q0 -17 -12 -29.5t-29 -13.5l-149 149h105v43h-148l-21 21h169v43h-171v-41l-126 126h340zM128 277h43l-43 43v-43zM171 213v43h-43v-43h43zM27 475l442 -442l-27 -27l-122 122h-192l-85 -85v362l-43 43z" />
-    <glyph glyph-name="uniE92B" unicode="delete_forever" 
-d="M331 427h74v-43h-298v43h74l22 21h106zM180 259l46 -46l-45 -45l30 -30l45 45l45 -45l30 30l-45 45l45 46l-30 30l-45 -46l-45 46zM128 107v256h256v-256q0 -17 -13 -30t-30 -13h-170q-17 0 -30 13t-13 30z" />
-    <glyph glyph-name="uniEB3B" unicode="ac_unit" 
-d="M469 277v-42h-89l69 -69l-30 -31l-99 100h-43v-43l100 -99l-31 -30l-69 69v-89h-42v89l-69 -69l-31 30l100 99v43h-43l-99 -100l-30 31l69 69h-89v42h89l-69 69l30 31l99 -100h43v43l-100 99l31 30l69 -69v89h42v-89l69 69l31 -30l-100 -99v-43h43l99 100l30 -31l-69 -69
-h89z" />
-    <glyph glyph-name="uniEB3C" unicode="airport_shuttle" 
-d="M320 277h107l-86 86h-21v-86zM373 139q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM277 277v86h-85v-86h85zM128 139q14 0 23 9.5t9 22.5t-9 22.5t-23 9.5t-23 -9.5t-9 -22.5t9 -22.5t23 -9.5zM64 277h85v86h-85v-86z
-M363 405l128 -128v-106h-54q0 -26 -19 -45t-45 -19t-45 19t-19 45h-117q0 -26 -19 -45t-45 -19t-45 19t-19 45h-43v192q0 18 12.5 30t30.5 12h299z" />
-    <glyph glyph-name="uniEB3D" unicode="all_inclusive" 
-d="M397 371q48 0 81.5 -34t33.5 -81t-33.5 -81t-81.5 -34t-82 34l-27 24l32 28l25 -21q22 -22 52 -22t51 21t21 51t-21 51t-51 21t-51 -21q-71 -62 -90 -80l-60 -53q-33 -33 -81 -33t-81.5 34t-33.5 81t33.5 81t81.5 34t82 -34l27 -24l-33 -28l-24 21q-22 22 -52 22t-51 -21
-t-21 -51t21 -51t51 -21t51 21q71 62 90 80l60 53q33 33 81 33z" />
-    <glyph glyph-name="uniEB3E" unicode="beach_access" 
-d="M371 324q-50 50 -115.5 66t-127.5 -5q48 6 105.5 -18.5t106.5 -73.5l-122 -122q-49 49 -73.5 106.5t-18.5 105.5q-21 -62 -5 -127.5t66 -115.5l-61 -61q-63 63 -63 152.5t63 152.5q0 1 1 1q70 70 168 62q81 -6 137 -62zM279 201l31 31l137 -138l-31 -30z" />
-    <glyph glyph-name="uniEB3F" unicode="business_center" 
-d="M299 363v42h-86v-42h86zM427 363q17 0 29.5 -13t12.5 -30v-64q0 -17 -12.5 -30t-29.5 -13h-128v43h-86v-43h-128q-18 0 -30 12.5t-12 30.5v64q0 17 12.5 30t29.5 13h85v42l43 43h85l43 -43v-42h86zM213 171h86v21h149v-85q0 -18 -12.5 -30.5t-30.5 -12.5h-298
-q-18 0 -30.5 12.5t-12.5 30.5v85h149v-21z" />
-    <glyph glyph-name="uniEB40" unicode="casino" 
-d="M352 320q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9zM352 128q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9zM256 224q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9zM160 320q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9z
-M160 128q14 0 23 9t9 23t-9 23t-23 9t-23 -9t-9 -23t9 -23t23 -9zM405 448q17 0 30 -13t13 -30v-298q0 -17 -13 -30t-30 -13h-298q-17 0 -30 13t-13 30v298q0 17 13 30t30 13h298z" />
-    <glyph glyph-name="uniEB41" unicode="child_care" 
-d="M160 213h192q-12 -29 -38 -46.5t-58 -17.5t-58 17.5t-38 46.5zM256 107q51 0 90.5 30t52.5 77q1 0 3 -0.5t3 -0.5q17 0 30 13t13 30t-13 30t-30 13q-1 0 -3 -0.5t-3 -0.5q-13 47 -52.5 77t-90.5 30t-90.5 -30t-52.5 -77q-1 0 -3 0.5t-3 0.5q-17 0 -30 -13t-13 -30t13 -30
-t30 -13q1 0 3 0.5t3 0.5q13 -47 52.5 -77t90.5 -30zM489 242q-4 -24 -20 -42.5t-39 -25.5q-22 -47 -69.5 -78.5t-104.5 -31.5t-104 31.5t-69 78.5q-23 7 -39.5 25.5t-20.5 42.5q-2 8 -2 14t2 14q4 24 20.5 42.5t39.5 25.5q17 38 46 62q54 48 127 48q58 0 104.5 -31t68.5 -79
-q23 -7 39.5 -25.5t20.5 -42.5q2 -8 2 -14t-2 -14zM176 288q0 11 8 19t19 8t18.5 -8t7.5 -19t-7.5 -19t-18.5 -8t-19 8t-8 19zM283 288q0 11 7.5 19t18.5 8t19 -8t8 -19t-8 -19t-19 -8t-18.5 8t-7.5 19z" />
-    <glyph glyph-name="uniEB42" unicode="child_friendly" 
-d="M363 85q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM171 85q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5t-22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5zM412 173q25 -23 25 -56q0 -31 -21.5 -52.5t-52.5 -21.5
-q-28 0 -49 18.5t-25 45.5h-45q-4 -27 -24.5 -45.5t-48.5 -18.5q-31 0 -53 21.5t-22 52.5q0 44 39 66l-45 94h-47v43h74l20 -43h311q0 -57 -36 -104zM277 469q71 0 121 -50t50 -120h-171v170z" />
-    <glyph glyph-name="uniEB43" unicode="fitness_center" 
-d="M439 195l30 -31l-45 -45l30 -31l-30 -30l-31 30l-45 -45l-31 30l-30 -30l-31 30l76 76l-183 183l-76 -76l-30 31l30 30l-30 31l45 45l-30 31l30 30l31 -30l45 45l31 -30l30 30l31 -30l-76 -76l183 -183l76 76l30 -31z" />
-    <glyph glyph-name="uniEB44" unicode="free_breakfast" 
-d="M85 107h342v-43h-342v43zM427 341v64h-43v-64h43zM427 448q18 0 30 -12.5t12 -30.5v-64q0 -17 -12 -29.5t-30 -12.5h-43v-64q0 -35 -25 -60.5t-60 -25.5h-128q-35 0 -60.5 25.5t-25.5 60.5v213h342z" />
-    <glyph glyph-name="uniEB45" unicode="golf_course" 
-d="M363 386l-128 -66v-193q46 -2 76 -14t30 -28q0 -17 -37.5 -29.5t-90.5 -12.5t-90.5 12.5t-37.5 29.5q0 25 64 37v-37h43v384zM384 96q0 14 9 23t23 9t23 -9t9 -23t-9 -23t-23 -9t-23 9t-9 23z" />
-    <glyph glyph-name="uniEB46" unicode="hot_tub" 
-d="M313 387q33 -32 27 -79l-1 -9h-41l3 12q5 27 -16 48q-34 34 -28 80l1 9h41l-2 -13q-5 -27 14 -47zM398 387q34 -33 28 -79l-2 -9h-40l2 12q5 27 -14 47l-2 1q-34 34 -28 80l2 9h40l-2 -13q-5 -27 14 -47zM405 85v128h-42v-128h42zM320 85v128h-43v-128h43zM235 85v128
-h-43v-128h43zM149 85v128h-42v-128h42zM238 256h231v-171q0 -17 -12.5 -29.5t-29.5 -12.5h-342q-17 0 -29.5 12.5t-12.5 29.5v171h64v16q0 20 14.5 34t33.5 14q20 0 36 -16l29 -33q4 -5 18 -15zM107 384q0 18 12 30.5t30 12.5t30.5 -12.5t12.5 -30.5t-12.5 -30.5
-t-30.5 -12.5t-30 12.5t-12 30.5z" />
-    <glyph glyph-name="uniEB47" unicode="kitchen" 
-d="M171 256h42v-107h-42v107zM171 405h42v-64h-42v64zM384 320v107h-256v-107h256zM384 85v193h-256v-193h256zM384 469q18 0 30.5 -12t12.5 -30v-342q0 -17 -13 -29.5t-30 -12.5h-256q-17 0 -30 12.5t-13 29.5v342q0 18 12.5 30t30.5 12h256z" />
-    <glyph glyph-name="uniEB48" unicode="pool" 
-d="M299 395q0 22 15.5 37.5t37.5 15.5t37.5 -15.5t15.5 -37.5t-15.5 -38t-37.5 -16t-37.5 16t-15.5 38zM185 256q-12 0 -25 8q-4 3 -16 8l69 69l-21 22q-32 32 -85 32v53q41 0 67 -9.5t50 -33.5l137 -136q-6 -4 -9 -5q-13 -8 -25 -8q-11 0 -24 8q-22 13 -47 13t-47 -13
-q-13 -8 -24 -8zM469 160q-23 0 -46 14q-11 7 -25 7q-13 0 -24 -7q-23 -14 -47 -14q-23 0 -46 14q-11 7 -25 7q-13 0 -24 -7q-23 -14 -47 -14q-23 0 -46 14q-11 7 -25 7q-13 0 -24 -7q-23 -14 -47 -14v43q13 0 24 7q23 14 47 14q23 0 46 -14q11 -7 25 -7q13 0 24 7
-q23 14 47 14q23 0 46 -14q11 -7 25 -7q13 0 24 7q23 14 47 14q23 0 46 -14q11 -7 25 -7v-43zM469 64q-23 0 -46 14q-11 7 -25 7q-13 0 -24 -7q-23 -14 -47 -14q-23 0 -46 14q-11 7 -25 7q-13 0 -24 -7q-23 -14 -47 -14t-47 14q-11 7 -24 7q-14 0 -25 -7q-23 -14 -46 -14v43
-q13 0 24 7q23 14 47 14q23 0 46 -14q11 -7 25 -7q13 0 24 7q23 14 47 14t47 -14q11 -7 24 -7q14 0 25 7q23 14 46 14q24 0 47 -14q11 -7 24 -7v-43z" />
-    <glyph glyph-name="uniEB49" unicode="room_service" 
-d="M295 346q63 -13 106 -61.5t47 -113.5h-384q4 65 47 113.5t106 61.5q-4 10 -4 17q0 17 13 29.5t30 12.5t30 -12.5t13 -29.5q0 -7 -4 -17zM43 149h426v-42h-426v42z" />
-    <glyph glyph-name="uniEB4A" unicode="smoke_free" 
-d="M363 172l-63 63h63v-63zM309 326q-29 0 -50 21.5t-21 50.5t21 50t50 21v-32q-17 0 -28 -10.5t-11 -26.5q0 -17 11.5 -30t27.5 -13h33q30 0 52 -19.5t22 -47.5v-34h-32v27q0 20 -12.5 31.5t-29.5 11.5h-33zM402 408q30 -14 48.5 -43t18.5 -65v-44h-32v44q0 36 -24.5 61.5
-t-60.5 25.5v32q16 0 27.5 11.5t11.5 28.5h32q0 -30 -21 -51zM384 235h32v-64h-32v64zM437 235h32v-64h-32v64zM43 384l26 27l363 -363l-27 -27l-149 150h-213v64h149z" />
-    <glyph glyph-name="uniEB4B" unicode="smoking_rooms" 
-d="M342 294q31 0 52.5 -19t21.5 -48v-35h-32v28q0 20 -12.5 31.5t-29.5 11.5h-33q-29 0 -50 21.5t-21 50.5t21 50t50 21v-32q-17 0 -28 -10.5t-11 -26.5q0 -17 11.5 -30t27.5 -13h33zM402 347q30 -14 48.5 -43t18.5 -64v-48h-32v48q0 36 -24.5 61t-60.5 25v32
-q16 0 27.5 11.5t11.5 28.5q0 16 -11.5 27.5t-27.5 11.5v32q29 0 50 -21t21 -50q0 -30 -21 -51zM384 171h32v-64h-32v64zM437 171h32v-64h-32v64zM43 171h320v-64h-320v64z" />
-    <glyph glyph-name="uniEB4C" unicode="spa" 
-d="M330 307q-42 -23 -74 -57q-32 34 -74 57q8 95 75 162q67 -67 73 -162zM43 299q68 0 124 -33t89 -84q33 51 89 84t124 33q0 -84 -47.5 -151t-123.5 -94q-17 -6 -42 -11q-21 3 -42 11q-76 27 -123.5 94t-47.5 151z" />
-    <glyph glyph-name="u10FFFD" unicode="goat" 
-d="M511 318q1 -1 1 -2.5t-1 -2.5l-25 -32q-2 -2 -4 -2l-15 3l-7 -22q-2 -4 -6.5 -4t-6.5 4l-14 30l-23 5l-47 -112l17 -136q0 -4 -4 -4h-20q-2 0 -4 3l-20 81l-10 17l-25 -98q0 -3 -4 -3h-21q-4 0 -4 4l23 135h-135l-35 -66l8 -68q2 -5 -4 -5h-20q-3 0 -4 2l-28 102l-34 -39
-l6 -60q2 -5 -4 -5h-22q-4 0 -4 2l-13 56l21 82v144q-23 9 -23 30h274q48 -1 95 33q-8 22 6 36q28 -20 36 -25q7 -4 11.5 1.5t2.5 12.5q-9 28 -45 42q-1 0 -3 1q-12 3 -10 8q0 3 4 3q29 -4 49.5 -22.5t27.5 -35.5l4 -3q3 -4 6.5 -8t6 -11.5t1.5 -15.5q0 -5 2 -7z" />
-    <glyph glyph-name=".notdef" 
-d="M17 0v341h136v-341h-136zM34 17h102v307h-102v-307z" />
-    <glyph glyph-name="glyph1" horiz-adv-x="0" 
- />
-    <glyph glyph-name="glyph2" 
- />
-    <glyph glyph-name="zero" unicode="0" 
-d="M0 0z" />
-    <glyph glyph-name="one" unicode="1" 
-d="M0 0z" />
-    <glyph glyph-name="two" unicode="2" 
-d="M0 0z" />
-    <glyph glyph-name="three" unicode="3" 
-d="M0 0z" />
-    <glyph glyph-name="four" unicode="4" 
-d="M0 0z" />
-    <glyph glyph-name="five" unicode="5" 
-d="M0 0z" />
-    <glyph glyph-name="six" unicode="6" 
-d="M0 0z" />
-    <glyph glyph-name="seven" unicode="7" 
-d="M0 0z" />
-    <glyph glyph-name="eight" unicode="8" 
-d="M0 0z" />
-    <glyph glyph-name="nine" unicode="9" 
-d="M0 0z" />
-    <glyph glyph-name="underscore" unicode="_" 
-d="M0 0z" />
-    <glyph glyph-name="a" unicode="a" 
-d="M0 0z" />
-    <glyph glyph-name="b" unicode="b" 
-d="M0 0z" />
-    <glyph glyph-name="c" unicode="c" 
-d="M0 0z" />
-    <glyph glyph-name="d" unicode="d" 
-d="M0 0z" />
-    <glyph glyph-name="e" unicode="e" 
-d="M0 0z" />
-    <glyph glyph-name="f" unicode="f" 
-d="M0 0z" />
-    <glyph glyph-name="g" unicode="g" 
-d="M0 0z" />
-    <glyph glyph-name="h" unicode="h" 
-d="M0 0z" />
-    <glyph glyph-name="i" unicode="i" 
-d="M0 0z" />
-    <glyph glyph-name="j" unicode="j" 
-d="M0 0z" />
-    <glyph glyph-name="k" unicode="k" 
-d="M0 0z" />
-    <glyph glyph-name="l" unicode="l" 
-d="M0 0z" />
-    <glyph glyph-name="m" unicode="m" 
-d="M0 0z" />
-    <glyph glyph-name="n" unicode="n" 
-d="M0 0z" />
-    <glyph glyph-name="o" unicode="o" 
-d="M0 0z" />
-    <glyph glyph-name="p" unicode="p" 
-d="M0 0z" />
-    <glyph glyph-name="q" unicode="q" 
-d="M0 0z" />
-    <glyph glyph-name="r" unicode="r" 
-d="M0 0z" />
-    <glyph glyph-name="s" unicode="s" 
-d="M0 0z" />
-    <glyph glyph-name="t" unicode="t" 
-d="M0 0z" />
-    <glyph glyph-name="u" unicode="u" 
-d="M0 0z" />
-    <glyph glyph-name="v" unicode="v" 
-d="M0 0z" />
-    <glyph glyph-name="w" unicode="w" 
-d="M0 0z" />
-    <glyph glyph-name="x" unicode="x" 
-d="M0 0z" />
-    <glyph glyph-name="y" unicode="y" 
-d="M0 0z" />
-    <glyph glyph-name="z" unicode="z" 
-d="M0 0z" />
-    <glyph glyph-name="uniEC2E" unicode="&#xec2e;" 
-d="M142 313zM323 220q41 -17 68.5 -53t33.5 -82h-41q-8 47 -44 78t-84 31t-84.5 -31t-43.5 -78h-42q6 45 33.5 81.5t68.5 54.5q-21 16 -33.5 40t-12.5 52q0 47 33 80t80.5 33t80.5 -33t33 -81q0 -27 -12.5 -51.5t-33.5 -40.5zM183 313q0 -30 21.5 -51.5t51.5 -21.5
-t51.5 21.5t21.5 51.5t-21.5 51.5t-51.5 21.5t-51.5 -21.5t-21.5 -51.5v0z" />
-    <glyph glyph-name="uniEDDE" unicode="&#xedde;" 
-d="M405 427h-53q-31.999 -1.00098 -53 -22q-21 -21 -22 -53v-53h-42v-64h42v-150h64v150h64v64h-64v42q1.00098 9 7 15q6 6 15 7h42v64zM427 469q18 0 30 -12t12 -30v-342q0 -18 -12 -30t-30 -12h-342q-18 0 -30 12t-12 30v342q0 18 12 30t30 12h342z" />
-    <glyph glyph-name="uniEDDF" unicode="&#xeddf;" 
-d="M405 107v121q0 31.999 -21.5 53q-21.499 21 -52.5 22q-15 0 -30 -8q-15 -7.99902 -24 -22v26h-64v-192h64v113q1.00098 13.001 10 22q9 9 22.5 9t22.5 -9t9 -22v-113h64zM139 335q16.001 0 27 11q10.999 10.999 11 27.5q0 16.5 -11 27.5q-10.999 10.999 -27.5 11
-q-16.5 0 -27.5 -11q-10.999 -10.999 -11 -27.5q0 -16.5 11 -27.5q10.999 -10.999 28 -11zM171 107v192h-64v-192h64zM427 469q18 0 30 -12t12 -30v-342q0 -18 -12 -30t-30 -12h-342q-18 0 -30 12t-12 30v342q0 18 12 30t30 12h342z" />
-    <glyph glyph-name="uniEDE0" unicode="&#xede0;" 
-d="M427 469q18 0 30 -12t12 -30v-342q0 -18 -12 -30t-30 -12h-342q-18 0 -30 12t-12 30v342q0 18 12 30t30 12h342zM427 256h-43v43h-21v-43h-43v-21h43v-43h21v43h43v21zM192 271v-36h61q-1.99902 -13.001 -15.5 -29q-13.5 -16.001 -45.5 -17q-28.001 1.00098 -46.5 20
-q-18.499 19.001 -18.5 47q0 28.001 18.5 47q18.499 19.001 46.5 20q16.001 0 26.5 -5.5q10.501 -5.50098 16.5 -11.5l29 28q-28.001 28.001 -72 29q-46.001 -1.00098 -76 -31q-30 -30 -30 -76q0 -46.001 30 -76q30 -30 76 -30q46.001 0 74 28q28.001 28.001 28 75
-q1.00098 10.001 -2 18h-100z" />
-    <glyph glyph-name="uniEDE1" unicode="&#xede1;" 
-d="M378 309q7.99902 6 15.5 14q7.49805 7.99707 11.5 16q-13.001 -7.00098 -30 -9q16.001 10.999 24 32q-16.001 -10.001 -37 -14q-28.999 28.999 -66.5 11.5q-37.5 -17.501 -31.5 -63.5q-40.999 3 -69 19.5t-49 39.5q-10.999 -21 -4.5 -44q6.49902 -22.999 21.5 -32
-q-13.999 1.00098 -24 7q1.00098 -24 13 -37.5q12 -13.5 31 -19.5q-12 -3 -24 -1q10.999 -34.999 52 -40q-15 -13.001 -38 -19.5q-22.999 -6.49902 -45 -3.5q18 -12 40 -19.5q22.001 -7.5 51 -6.5q72 4 114.5 49.5q42.499 45.499 44.5 120.5zM427 465q18 0 30 -12t12 -30
-v-342q0 -18 -12 -30t-30 -12h-342q-18 0 -30 12t-12 30v342q0 18 12 30t30 12h342z" />
-    <glyph glyph-name="uniEDE0" unicode="&#xede0;" 
-d="M427 469q18 0 30 -12t12 -30v-342q0 -18 -12 -30t-30 -12h-342q-18 0 -30 12t-12 30v342q0 18 12 30t30 12h342zM427 256h-43v43h-21v-43h-43v-21h43v-43h21v43h43v21zM192 271v-36h61q-2 -13 -15 -29q-14 -16 -46 -17q-1.13636 -0.0454545 -2.26446 -0.0454545
-q-23.6901 0 -43.7355 20.0455q-19 19 -19 47t18 47q18 18 47 20q2.14286 0.142857 4.20408 0.142857q12.3673 0 21.7959 -5.14286q11 -6 17 -12l29 28q-28 28 -72 29q-1.33333 0.030303 -2.65565 0.030303q-42.314 0 -73.3444 -31.0303q-30 -30 -30 -76t30 -76t76 -30t74 28
-t28 75q0 13 -2 18h-100z" />
-  </font>
-</defs></svg>
diff --git a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.ttf b/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.ttf
deleted file mode 100644
index 567bc7822e146735ca48da310f6839b1f39ce3ce..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 139928
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

diff --git a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.woff b/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.woff
deleted file mode 100644
index ceb41a11158b2497932b035bc1c46258beaa8130..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 64752
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%0Aud;qlTX|+$)sw}UZ`S|6^h3<*)QbDM
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

diff --git a/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.woff2 b/plugins/easy_mindmup/assets/fonts/EasyMaterialIcons-Regular.woff2
deleted file mode 100644
index 6fbc47406ef0bcbe8b57b6da13670dcb60fd0f2d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 80288
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
L?Fx7j`H%wurg=M9

diff --git a/plugins/easy_mindmup/assets/images/person.gif b/plugins/easy_mindmup/assets/images/person.gif
deleted file mode 100644
index a0e72aff4e540308d048fd10a07f48a64d32b654..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 875
zcmZ?wbhEHb6l4%#c+LO<jEsy-Oiawo%q%P{tgNhTY;5f8>>L~%oSd9oTwL7T+&nxy
zyu7@8e0==;`~m_3f`WoVLPEmA!XhFfqN1W=Vq)Ur;t~=Pl9G~AQc}{=(lRnKva+&r
za&q$W@(KzHii(O#N=nMg$|@=<s;a7LYHI50>KYmvnwpwgT3XuL+B!Nqy1Kf0dV2c$
z`UVCDhK7blMn=ZQ#wI2vrlzK5W@hH*<`xzfmX?-QR#w*5);2aawzjr*c6Rpm_6`mX
zj*gB_PEO9w&Mq!4uCA_bZf@@G?j9Z<o}QjwUS8hb-abA)zP`SGet!P`{s932fq{WR
zK|#U6!66|bp`oE+VPWCn;SmuLk&%&6QBl#+(J?VGv9YmnadGkS@d*hDiHV6xNlD4c
z$tfu*si~=HX=&-{=@}UrnVFecSy|cH**Q5mxw*M{d3pKy`2__9g@uJhMMcHM#U&*r
zrKP21Wo6~%<rNhbm6erMRaMp1)ipIWwY9Z%b#?Xi^$iUTjg5^>O-;?s%`Gi0t*xzX
zZEfxC?HwH*ot>RsU0vPX-90@$y}iACeSQ7?{Szikm^g9bq)C$|Po6ww%9N>7r%szT
zZTj@-GiJ<~IdkT$S+i!(o;_#IoVj!7&YL%H{`~n17A#n}aN(jwixw|lykyCerAwDC
zTefWZ^5rX5tXR2n<*HSyR<B;YX3d(lYuBz@w{HFV^&2*9*tl`yrcIkRZ{ECR%a*NM
zw{F|EZTt4^J9g~YxpU{PUAuPg-o0nfp1phb?%TI-|Ni|44jedm@Zh0ChYlY;eB{WH
zqeqV(J9g~&@#7~>oH%*%<f&7qPM<z~=FFM1XV0EHckcZ8^A|2$xOnm6rAwDCU%q_h
z%9X2EuU@-$?fUiWH*VaxdGqG2TeoiCzJ2G;ox6AM-n)12{{8z89z1yX@ZqCJj~+jM
z{N%}#r%#_gd-m-4^XD&Kym<NY<*Qe(UcY|*=FOY8Z{NOq_wN1s_a8od`1tYTr%#_g
zfByXC%a^ZTzkd7n?fdudKYsl9`Sa(mU%!6;{{83ApTB?q{`>du|NsArKUo;L82&Tp
zfN}yTPcU$JF#P9~`LVv+v5A9SDyG6<p;H^LtW(O14G)fVaOfwUvDmoiK)0NH8K-B^
lBabF&U8xi!1J0xU0<L;3lEO=l&9*3hb?4+}^>Ymj)&PIyq38er

diff --git a/plugins/easy_mindmup/assets/javascripts/after_change.js b/plugins/easy_mindmup/assets/javascripts/after_change.js
deleted file mode 100644
index 8a653fa..0000000
--- a/plugins/easy_mindmup/assets/javascripts/after_change.js
+++ /dev/null
@@ -1,70 +0,0 @@
-(function () {
-  /**
-   * Class responsible for all callbacks after any change in model
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function AfterChange(ysy) {
-    this.ysy = ysy;
-    this.init();
-  }
-
-  AfterChange.prototype.init = function () {
-    var self = this;
-    var executeByEvent = function (method, args) {
-      if (!self[method]) return;
-      return self[method].apply(self, args);
-    };
-    this.ysy.eventBus.register("TreeLoaded", /** @param {RootIdea} idea*/function (idea) {
-      idea.addEventListener('changed', function (method, args) {
-        if (method === "batch") {
-          if (args && args.length) {
-            for (var i = 0; i < args.length; i++) {
-              var arg = args[i];
-              if (arg && arg.length) {
-                executeByEvent(arg[0], arg.slice(1));
-              }
-            }
-          }
-        } else {
-          executeByEvent(method, args);
-        }
-      }, 5);
-    });
-  };
-  AfterChange.prototype.removeSubIdea = function (id) {
-    var node = this.ysy.getLayoutNode(id);
-    if (!node) return;
-    var saver = this.ysy.saver;
-    if (saver.deleteStack) {
-      saver.deleteStack.push(new window.easyMindMupClasses.ModelEntity().extend(node));
-    }
-  };
-  AfterChange.prototype.paste = function (parentIdeaId, jsonToPaste, newIdeaId) {
-    this._upgradeToModelEntity(newIdeaId);
-  };
-  AfterChange.prototype.insertIntermediate = function (inFrontOfIdeaId, title, newIdeaId) {
-    var idea = this._upgradeToModelEntity(newIdeaId);
-    idea.attr.isFresh = true;
-  };
-  AfterChange.prototype.addSubIdea = function (parentId, ideaTitle, ideaId) {
-    var idea = this._upgradeToModelEntity(ideaId);
-    idea.attr.isFresh = true;
-  };
-  /**
-   * Function, which converts Object generated by MindMup component into ModelEntity
-   * @param {number} ideaId
-   * @private
-   */
-  AfterChange.prototype._upgradeToModelEntity = function (ideaId) {
-    /** @type {MindMup} */
-    var ysy = this.ysy;
-    // var rootIdea = ysy.idea;
-    var idea = ysy.util.findWhere(ysy.idea, function (/** @type {ModelEntity} */ node) {
-      return node.id === ideaId;
-    });
-    return ysy.upgradeToModelEntity(idea);
-  };
-
-  window.easyMindMupClasses.AfterChange = AfterChange;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/autosave.js b/plugins/easy_mindmup/assets/javascripts/autosave.js
deleted file mode 100644
index 30771e1..0000000
--- a/plugins/easy_mindmup/assets/javascripts/autosave.js
+++ /dev/null
@@ -1,81 +0,0 @@
-(function () {
-  /**
-   * Autosave feature - there are three phases - long, render and short
-   * 'hidden' period is there for off-screen detection to prevent saving in background
-   * In 'short' period, any user action triggers Save.
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Autosave(ysy) {
-    this.phase = null;
-    this.ysy = ysy;
-    this.shortTimeout = 0;
-    this.longTimeout = 0;
-    this.init();
-  }
-
-  Autosave.prototype.longPeriod = 10 * 60 * 1000;
-  Autosave.prototype.shortPeriod = 2 * 60 * 1000;
-  // Autosave.prototype.longPeriod = 3 * 1000;
-  // Autosave.prototype.shortPeriod = 2 * 1000;
-
-  Autosave.prototype.init = function () {
-    var self = this;
-    var ysy = this.ysy;
-    var testing = false;
-    /** called when change in mindMap is detected and at the end of short period */
-    var changeWatcher = function () {
-      if (self.phase !== 'short') return;
-      // probably unnecessary, but can prevent multiple firing
-      ysy.idea.removeEventListener('changed', self.changeWatcher);
-      if (testing) {
-        ysy.log.debug(new Date().toISOString() + " saving", "autosave");
-        startLongPhase(); // "TreeLoaded" event already calls startLongPhase()
-      } else {
-        ysy.saver.save(true);
-      }
-    };
-    self.changeWatcher = changeWatcher;
-
-    var startShortPhase = function () {
-      if (self.phase === 'short') return;
-      if (self.longTimeout) {
-        window.clearTimeout(self.longTimeout);
-        self.longTimeout = 0;
-      }
-      self.phase = 'short';
-      ysy.log.debug("short period", "autosave");
-      ysy.idea.removeEventListener('changed', changeWatcher);
-      ysy.idea.addEventListener('changed', changeWatcher);
-      self.shortTimeout = setTimeout(changeWatcher, self.shortPeriod);
-    };
-    var userReturned = function () {
-      document.removeEventListener("visibilitychange", userReturned);
-      startShortPhase();
-    };
-    var startHiddenPhase = function () {
-      if (document.hidden !== true) return startShortPhase();
-      self.phase = 'hidden';
-      ysy.log.debug("hidden period", "autosave");
-      document.addEventListener("visibilitychange", userReturned);
-    };
-    var startLongPhase = function () {
-      if (self.shortTimeout) {
-        window.clearTimeout(self.shortTimeout);
-        self.shortTimeout = 0;
-      }
-      if (self.longTimeout) {
-        window.clearTimeout(self.longTimeout);
-      }
-      self.phase = 'long';
-      ysy.log.debug("long period", "autosave");
-      self.longTimeout = setTimeout(startHiddenPhase, self.longPeriod);
-    };
-
-    ysy.eventBus.register("IdeaConstructed", function () {
-      startLongPhase();
-    });
-  };
-  window.easyMindMupClasses.Autosave = Autosave;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/backup/last_state.js b/plugins/easy_mindmup/assets/javascripts/backup/last_state.js
deleted file mode 100644
index 4fb3686..0000000
--- a/plugins/easy_mindmup/assets/javascripts/backup/last_state.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * Created by hosekp on 11/8/16.
- */
-
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function LastStateChecker(ysy) {
-    this.ysy = ysy;
-  }
-
-  /** @type {Array.<String>} */
-  LastStateChecker.prototype.lastStateKeys = null;
-  LastStateChecker.prototype.getDiffMessages = function (diff, idea, isOld, constructs) {
-    if (diff && diff.attr && diff.attr.data) {
-      var dataDiff = diff.attr.data;
-      var dataKeys = _.intersection(_.keys(dataDiff), this.lastStateKeys);
-      if (dataKeys.length) {
-        var changedKeys = [];
-        var changedValues = {};
-        for (var i = 0; i < dataKeys.length; i++) {
-          var key = dataKeys[i];
-          changedKeys.push(key);
-          changedValues[key] = dataDiff[key];
-          // subMessages.push(key + ": " + oldDataDiff[key] + " => " + newDataDiff[key]);
-        }
-        var id = idea.attr.data.id;
-        if (!constructs[id]) {
-          constructs[id] = {
-            isProject: idea.attr.isProject,
-            name: idea.title,
-            changed: true
-          }
-        }
-        if (constructs[id].changedKeys) {
-          constructs[id].changedKeys = _.uniq(constructs[id].changedKeys.concat(changedKeys));
-        } else {
-          constructs[id].changedKeys = changedKeys;
-        }
-        if (isOld) {
-          constructs[id].oldValues = changedValues;
-        } else {
-          constructs[id].newValues = changedValues;
-        }
-      }
-    }
-    if (diff.ideas) {
-      var ideasDiff = diff.ideas;
-      dataKeys = _.keys(ideasDiff);
-      for (i = 0; i < dataKeys.length; i++) {
-        var rank = dataKeys[i];
-        var child = ideasDiff[rank];
-        if (child.id) {
-          id = this.ysy.getData(child).id;
-          if (!constructs[id]) {
-            constructs[id] = {
-              entityType: child.attr.entityType,
-              name: child.title
-            }
-          }
-          if (isOld) {
-            constructs[id].fromId = idea.attr.data.id;
-            constructs[id].from = idea.title;
-          } else {
-            constructs[id].toId = idea.attr.data.id;
-            constructs[id].to = idea.title;
-          }
-        } else {
-          this.getDiffMessages(ideasDiff[rank], idea.ideas[rank], isOld, constructs);
-        }
-      }
-    }
-  };
-  LastStateChecker.prototype.processLastStateMessages = function (constructs) {
-    var ids = _.keys(constructs);
-    var messages = [];
-    for (var i = 0; i < ids.length; i++) {
-      var id = ids[i];
-      var construct = constructs[id];
-      var message;
-      if (construct.changedKeys) {
-        if (construct.from || construct.to) {
-          message = _.extend({}, construct);
-        } else {
-          message = construct;
-        }
-        if (!construct.oldValues) construct.oldValues = {};
-        if (!construct.newValues) construct.newValues = {};
-        var changes = [];
-        for (var j = 0; j < construct.changedKeys.length; j++) {
-          var key = construct.changedKeys[j];
-          changes.push(key + ": " + construct.oldValues[key] + " => " + construct.newValues[key]);
-        }
-        message.changes = changes;
-        messages.push(message);
-      }
-      if (construct.from || construct.to) {
-        construct.missing = construct.from && !construct.to;
-        construct.present = !construct.from && construct.to;
-        construct.moved = construct.from && construct.to;
-        messages.push(construct);
-      }
-    }
-    return messages;
-  };
-  LastStateChecker.prototype.prepareLastStateMessages = function (diff, last, initedData) {
-    if (this.lastStateKeys == null)throw "lastStateKeys is not defined";
-    if (!diff) return false;
-    if (!last) return false;
-    var constructs = {};
-    this.getDiffMessages(diff.oldDiff, last, true, constructs);
-    this.getDiffMessages(diff.newDiff, initedData, false, constructs);
-    var messagePacks = this.processLastStateMessages(constructs);
-    if (messagePacks.length === 0) return false;
-    var template = this.ysy.settings.templates.reloadErrors;
-    var errorsHtml = Mustache.render(template, messagePacks);
-    this.ysy.util.showMessage(errorsHtml, "warning");
-    // this.openLastStateModal(errorsHtml, initedData);
-    return true;
-  };
-  /**
-   *
-   * @param {RootIdea} last
-   * @param {RootIdea} serverState
-   */
-  LastStateChecker.prototype.openStoredModal = function (last, serverState) {
-    var $target = this.ysy.util.getModal("form-modal", "50%");
-    //var template = ysy.settings.templates.lastStateModal;
-    var self = this;
-    var template = self.ysy.settings.templates.storedModal;
-    //var obj = $.extend({}, ysy.view.getLabel("reloadModal"),{errors:errors});
-    //var rendered = Mustache.render(template, {});
-    $target.html(template);
-    var labels = {};
-    $target.find("button").each(function(){
-      labels[this.id]=$(this).text();
-    }).remove();
-    var loadServerIdea = function () {
-      self.ysy.setIdea(serverState);
-      $target.dialog("close");
-    };
-    showModal("form-modal");
-    $target.dialog({
-      buttons: [
-        {
-          id: "last_state_modal_local",
-          text: labels["last_state_modal_local"],
-          class: "wbs-last-modal-button button-1",
-          click: function () {
-            $target.dialog("close");
-            self.ysy.setIdea(MAPJS.content(last));
-          }
-        },
-        {
-          id: "last_state_modal_server",
-          text: labels["last_state_modal_server"],
-          class: "wbs-last-modal-button button-2",
-          click: loadServerIdea
-        }
-      ]
-    })
-        .on('dialogclose', loadServerIdea);
-    $("#last_state_modal_yes").focus();
-  };
-
-  window.easyMindMupClasses.LastStateChecker = LastStateChecker;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/content_patch.js b/plugins/easy_mindmup/assets/javascripts/content_patch.js
deleted file mode 100644
index 373c849..0000000
--- a/plugins/easy_mindmup/assets/javascripts/content_patch.js
+++ /dev/null
@@ -1,35 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function ContentPatch(ysy) {
-    this.patch(ysy);
-  }
-
-  /**
-   *
-   * @param {MindMup} ysy
-   */
-  ContentPatch.prototype.patch = function (ysy) {
-    ysy.eventBus.register("TreeLoaded", /** @param {RootIdea} contentAggregate*/ function (contentAggregate) {
-      var commandProcessors = contentAggregate.getCommandProcessors();
-      contentAggregate.clone = function (subIdeaId) {
-        var toClone = (subIdeaId && subIdeaId != contentAggregate.id && contentAggregate.findSubIdeaById(subIdeaId)) || contentAggregate;
-        var cloned = JSON.parse(JSON.stringify(toClone));
-        ysy.util.traverse(cloned, function (node) {
-          ysy.getData(node).id = null;
-        });
-        return cloned;
-      };
-      commandProcessors.setData = function (originId, idea, obj) {
-        ysy.setData(idea, obj);
-      };
-      commandProcessors.setCustomData = function (originId, idea, obj) {
-        ysy.setCustomData(idea, obj);
-      };
-    });
-  };
-  window.easyMindMupClasses.ContentPatch = ContentPatch;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/data.js b/plugins/easy_mindmup/assets/javascripts/data.js
deleted file mode 100644
index ebaa060..0000000
--- a/plugins/easy_mindmup/assets/javascripts/data.js
+++ /dev/null
@@ -1,36 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function DataStorage(ysy) {
-    /**
-     *
-     * @type {MindMup}
-     */
-    this.ysy = ysy;
-    this.dataArrays = {};
-  }
-
-  /**
-   *
-   * @param {String} key
-   * @param {Array} array
-   */
-  DataStorage.prototype.save = function (key, array) {
-    array = array || [];
-    this.dataArrays[key] = array;
-    this.ysy.eventBus.fireEvent("dataFilled", key, array);
-  };
-  /**
-   *
-   * @param {String} key
-   * @return {Array}
-   */
-  DataStorage.prototype.get = function (key) {
-    return this.dataArrays[key];
-  };
-
-  window.easyMindMupClasses.DataStorage = DataStorage;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/dom_patch.js b/plugins/easy_mindmup/assets/javascripts/dom_patch.js
deleted file mode 100644
index e61fafa..0000000
--- a/plugins/easy_mindmup/assets/javascripts/dom_patch.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Created by hosekp on 11/8/16.
- */
-
-/**
- * Hammer-drag Event
- * @typedef {Object} HammerEvent
- * @property {{left:number,top:number}} finalPosition
- * @property {{deltaX:number,deltaY:number,center:{}}} gesture
- * @property {boolean} fakedEvent
- */
-
-(function () {
-  /**
-   * Patch class for mindmup/dom-map-view.js
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function DomPatch(ysy) {
-    this.ysy = ysy;
-    this.patch(ysy);
-    this.deltaX = 0;
-    this.deltaY = 0;
-    this.init(ysy);
-  }
-
-  /**
-   *
-   * @param {MindMup} ysy
-   */
-  DomPatch.prototype.patch = function (ysy) {
-    jQuery.fn.scrollWhenDragging = function (scrollPredicate) {
-      'use strict';
-      return this.each(function () {
-        var element = $(this),
-            dragOrigin,
-            lastGesture,
-            isOut;
-        var dragStartFunc = function (withNode, event) {
-          if (scrollPredicate()) {
-            withNode = withNode === true;
-            $("body").addClass("mindmup-noselect");
-            dragOrigin = {
-              top: $(window).scrollTop(),
-              left: element.scrollLeft(),
-              withNode: withNode
-            };
-            if (event) {
-              dragOrigin.top += event.gesture.deltaY;
-              dragOrigin.left += event.gesture.deltaX;
-            }
-            isOut = false;
-            element.on('mouseleave.bg_drag', function () {
-              isOut = true;
-              // console.log("OUT");
-            }).on('mouseenter.bg_drag', function () {
-              isOut = false;
-              // console.log("IN");
-              dragOrigin = {
-                top: $(window).scrollTop() + lastGesture.deltaY,
-                left: element.scrollLeft() + lastGesture.deltaX,
-                withNode: withNode
-              };
-            });
-          }
-        };
-        var dragFunc = function (e) {
-          if (e.gesture && e.gesture.srcEvent) {
-            if (isOut) {
-              lastGesture = e.gesture;
-              return;
-            }
-            if (dragOrigin && dragOrigin.withNode && !e.gesture.srcEvent.ctrlKey) {
-              return dragEndFunc();
-            }
-            if (!dragOrigin && e.gesture.srcEvent.ctrlKey) {
-              dragStartFunc(true, e);
-            }
-            if (dragOrigin) {
-              $("html, body").scrollTop(dragOrigin.top - e.gesture.deltaY);
-              element.scrollLeft(dragOrigin.left - e.gesture.deltaX);
-            }
-          }
-        };
-        var dragEndFunc = function () {
-          isOut = false;
-          $("body").removeClass("mindmup-noselect");
-          element.off('mouseleave.bg_drag').off("mouseenter.bg_drag");
-          dragOrigin = undefined;
-        };
-        element
-            .on("dragstart", dragStartFunc)
-            .on('drag', dragFunc)
-            .on('dragend', dragEndFunc);
-      });
-    };
-    jQuery.fn.updateStage = function () {
-      'use strict';
-      var data = this.data(),
-          size = {
-            'min-width': Math.floor(data.width - data.offsetX),
-            'min-height': Math.floor(data.height - data.offsetY),
-            'width': Math.floor(data.width - data.offsetX),
-            'height': Math.floor(data.height - data.offsetY),
-            'transform-origin': 'top left',
-            'transform': 'translate3d(' + Math.floor(data.offsetX) + 'px, ' + Math.floor(data.offsetY) + 'px, 0)'
-          };
-      if (data.scale && data.scale !== 1) {
-        size.transform = 'scale(' + data.scale + ') translate(' + Math.floor(data.offsetX) + 'px, ' + Math.floor(data.offsetY) + 'px)';
-      }
-      this.css(size);
-      var viewHeight = Math.floor(data.height) * data.scale;
-      ysy.$container.height(viewHeight);
-      return this;
-    };
-  };
-
-  /** @param {MindMup} ysy */
-  DomPatch.prototype.init = function (ysy) {
-    var self = this;
-    ysy.eventBus.register("MapInited", function (mapModel) {
-      mapModel.addEventListener('nodeCreated', function (node) {
-        var $element = ysy.getNodeElement(node);
-        if (node.level !== 1) return;
-        $element.on('mm:stop-dragging', function (/** @type {HammerEvent} */evt) {
-          if (!evt.fakedEvent && evt.gesture && !evt.isPropagationStopped()) {
-            self.deltaX -= evt.gesture.deltaX;
-            self.deltaY -= evt.gesture.deltaY;
-            ysy.storage.extra.save(ysy.idea);
-          }
-        });
-      }, -1);
-    });
-    ysy.eventBus.register("TreeLoaded", function () {
-      if (self.deltaX !== 0 || self.deltaY !== 0) {
-        self.focusOnCenter();
-      }
-    });
-  };
-  /**
-   *
-   * @param {{deltaX:number,deltaY:number}} data
-   */
-  DomPatch.prototype.loadRootPosition = function (data) {
-    if (!data) return;
-    if (data.deltaX) this.deltaX = parseFloat(data.deltaX);
-    if (data.deltaY) this.deltaY = parseFloat(data.deltaY);
-  };
-  DomPatch.prototype.resetRootPosition = function () {
-    this.deltaX = 0;
-    this.deltaY = 0;
-    this.ysy.storage.extra.save(this.ysy.idea);
-  };
-  DomPatch.prototype.focusOnCenter = function () {
-    var $stage = this.ysy.$container.find('[data-mapjs-role="stage"]');
-    var $central = $stage.find("#node_central");
-    if ($central.length === 0) {
-      $central = $('<div id="node_central"></div>').appendTo($stage);
-    }
-    $central.css({left: this.deltaX, top: this.deltaY});
-    $central.data({x: this.deltaX, y: this.deltaY, height: 40, width: 100});
-    this.ysy.mapModel.dispatchEvent('nodeFocusRequested', ["central"]);
-  };
-
-  DomPatch.prototype.curvedPath = function (parent, child) {
-    'use strict';
-    var calculateConnector = function (parent, child) {
-          var childHorizontalOffset = parent.left < child.left ? 0 : 1;
-          return {
-            from: {
-              x: parent.left + 0.5 * parent.width,
-              y: parent.top + 0.5 * parent.height
-            },
-            to: {
-              x: child.left + childHorizontalOffset * child.width,
-              y: child.top + 0.5 * child.height
-            }
-          };
-        },
-        position = {
-          left: Math.min(parent.left, child.left),
-          top: Math.min(parent.top, child.top)
-        },
-        calculatedConnector;
-    position.width = Math.max(parent.left + parent.width, child.left + child.width, position.left + 1) - position.left;
-    position.height = Math.max(parent.top + parent.height, child.top + child.height, position.top + 1) - position.top;
-
-    calculatedConnector = calculateConnector(parent, child);
-    return {
-      'd': 'M' + Math.round(calculatedConnector.from.x - position.left) + ',' + Math.round(calculatedConnector.from.y - position.top) +
-      'Q' + Math.round(calculatedConnector.from.x - position.left) + ',' + Math.round(calculatedConnector.to.y - position.top) + ' ' + Math.round(calculatedConnector.to.x - position.left) + ',' + Math.round(calculatedConnector.to.y - position.top),
-      // 'conn': calculatedConnector,
-      'position': position
-    };
-  };
-  window.easyMindMupClasses.DomPatch = DomPatch;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/easy_wbs.js b/plugins/easy_mindmup/assets/javascripts/easy_wbs.js
deleted file mode 100644
index 2c03f2d..0000000
--- a/plugins/easy_mindmup/assets/javascripts/easy_wbs.js
+++ /dev/null
@@ -1 +0,0 @@
-//= require_tree .
diff --git a/plugins/easy_mindmup/assets/javascripts/event_bus.js b/plugins/easy_mindmup/assets/javascripts/event_bus.js
deleted file mode 100644
index b27d0f3..0000000
--- a/plugins/easy_mindmup/assets/javascripts/event_bus.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Created by hosekp on 11/10/16.
- */
-(function () {
-  /**
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function EventBus(ysy) {
-    this.ysy = ysy;
-    this.registeredMap = {};
-  }
-
-  /**
-   * send event to all of the listeners of specified event
-   * @param {String} event
-   * @param {...any}
-   */
-  EventBus.prototype.fireEvent = function (event) {
-    var proFunctions = this.registeredMap[event];
-    if (!proFunctions) return;
-    var slicedArgs = Array.prototype.slice.call(arguments, 1);
-    for (var i = 0; i < proFunctions.length; i++) {
-      proFunctions[i].apply(this, slicedArgs);
-    }
-  };
-  /**
-   * Register listener of specified event
-   * @param {String} event
-   * @param {Function} func
-   */
-  EventBus.prototype.register = function (event, func) {
-    var eventList = this.registeredMap[event];
-    if (!eventList) this.registeredMap[event] = eventList = [];
-    for (var i = 0; i < eventList.length; i++) {
-      if (eventList[i] === func) {
-        return;
-      }
-    }
-    eventList.push(func);
-  };
-  /**
-   *
-   * @param {String} event
-   * @param {Function} func
-   */
-  EventBus.prototype.unregister = function (event, func) {
-    var eventList = this.registeredMap[event];
-    if (!eventList) return;
-    for (var i = 0; i < eventList.length; i++) {
-      if (eventList[i] === func) {
-        eventList.splice(i, 1);
-        return;
-      }
-    }
-  };
-  window.easyMindMupClasses.EventBus = EventBus;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/expand_all.js b/plugins/easy_mindmup/assets/javascripts/expand_all.js
deleted file mode 100644
index ee8d25f..0000000
--- a/plugins/easy_mindmup/assets/javascripts/expand_all.js
+++ /dev/null
@@ -1,63 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function ExpandAllButton(ysy,$parent) {
-    /**
-     *
-     * @type {boolean}
-     */
-    this.expanded=false;
-    this.ysy = ysy;
-    this.init(ysy,$parent);
-  }
-
-  ExpandAllButton.prototype.id = "expandAllButton";
-
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @return {ExpandAllButton}
-   */
-  ExpandAllButton.prototype.init= function (ysy,$parent) {
-    var self = this;
-    ysy.repainter.redrawMe(this);
-    this.$element = $parent.find(".mindmup-expand-all");
-    this.$element.click(function () {
-      self.expanded = !self.expanded;
-      if(self.expanded){
-        self.collapseAll();
-      }else{
-        self.expandAll();
-      }
-      // self.toggle(self.expanded);
-      ysy.repainter.redrawMe(self);
-    });
-    return this;
-  };
-  ExpandAllButton.prototype.expandAll= function () {
-    this.ysy.util.traverse(this.ysy.idea, function (node) {
-      if(_.isEmpty(node.ideas)) return;
-      node.attr.collapsed = false;
-    });
-    this.ysy.idea.dispatchEvent("changed");
-  };
-  ExpandAllButton.prototype.collapseAll= function () {
-    var rootIdea = this.ysy.idea;
-    this.ysy.util.traverse(rootIdea, function (node) {
-      if(_.isEmpty(node.ideas)) return;
-      node.attr.collapsed = true;
-    });
-    rootIdea.attr.collapsed = false;
-    rootIdea.dispatchEvent("changed");
-  };
-  ExpandAllButton.prototype._render= function () {
-    this.$element.find(".mindmup-button-expand-all").toggle(this.expanded);
-    this.$element.find(".mindmup-button-collapse-all").toggle(!this.expanded);
-  };
-  window.easyMindMupClasses.ExpandAllButton = ExpandAllButton;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/external.js b/plugins/easy_mindmup/assets/javascripts/external.js
deleted file mode 100644
index 00f9b85..0000000
--- a/plugins/easy_mindmup/assets/javascripts/external.js
+++ /dev/null
@@ -1,1690 +0,0 @@
-(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.10.0",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,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,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r<i.length;r++)e.options[i[r][0]]&&i[r][1].apply(e.element,n)}},hasScroll:function(t,n){if(e(t).css("overflow")==="hidden")return!1;var r=n&&n==="left"?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)}})})(jQuery);(function(e,t){var n=0,r=Array.prototype.slice,i=e.cleanData;e.cleanData=function(t){for(var n=0,r;(r=t[n])!=null;n++)try{e(r).triggerHandler("remove")}catch(s){}i(t)},e.widget=function(t,n,r){var i,s,o,u,a={},f=t.split(".")[0];t=t.split(".")[1],i=f+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[f]=e[f]||{},s=e[f][t],o=e[f][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,r){if(!e.isFunction(r)){a[t]=r;return}a[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=i,s=r.apply(this,arguments),this._super=t,this._superApply=n,s}}()}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix:t},a,{constructor:o,namespace:f,widgetName:t,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o)},e.widget.extend=function(n){var i=r.call(arguments,1),s=0,o=i.length,u,a;for(;s<o;s++)for(u in i[s])a=i[s][u],i[s].hasOwnProperty(u)&&a!==t&&(e.isPlainObject(a)?n[u]=e.isPlainObject(n[u])?e.widget.extend({},n[u],a):e.widget.extend({},a):n[u]=a);return n},e.widget.bridge=function(n,i){var s=i.prototype.widgetFullName||n;e.fn[n]=function(o){var u=typeof o=="string",a=r.call(arguments,1),f=this;return o=!u&&a.length?e.widget.extend.apply(null,[o].concat(a)):o,u?this.each(function(){var r,i=e.data(this,s);if(!i)return e.error("cannot call methods on "+n+" prior to initialization; "+"attempted to call method '"+o+"'");if(!e.isFunction(i[o])||o.charAt(0)==="_")return e.error("no such method '"+o+"' for "+n+" widget instance");r=i[o].apply(i,a);if(r!==i&&r!==t)return f=r&&r.jquery?f.pushStack(r.get()):r,!1}):this.each(function(){var t=e.data(this,s);t?t.option(o||{})._init():e.data(this,s,new i(o,this))}),f}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),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.widgetName).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(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u<s.length-1;u++)o[s[u]]=o[s[u]]||{},o=o[s[u]];n=s.pop();if(r===t)return o[n]===t?null:o[n];o[n]=r}else{if(r===t)return this.options[n]===t?null:this.options[n];i[n]=r}}return this._setOptions(i),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,e==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(t,n,r){var i,s=this;typeof t!="boolean"&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,o){function u(){if(!t&&(s.options.disabled===!0||e(this).hasClass("ui-state-disabled")))return;return(typeof o=="string"?s[o]:o).apply(s,arguments)}typeof o!="string"&&(u.guid=o.guid=o.guid||u.guid||e.guid++);var a=r.match(/^(\w+)\s*(.*)$/),f=a[1]+s.eventNamespace,l=a[2];l?i.delegate(l,f,u):n.bind(f,u)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function n(){return(typeof e=="string"?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,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,n,r){var i,s,o=this.options[t];r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],s=n.originalEvent;if(s)for(i in s)i in n||(n[i]=s[i]);return this.element.trigger(n,r),!(e.isFunction(o)&&o.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,s){typeof i=="string"&&(i={effect:i});var o,u=i?i===!0||typeof i=="number"?n:i.effect||n:t;i=i||{},typeof i=="number"&&(i={duration:i}),o=!e.isEmptyObject(i),i.complete=s,i.delay&&r.delay(i.delay),o&&e.effects&&e.effects.effect[u]?r[t](i):u!==t&&r[u]?r[u](i.duration,i.easing,s):r.queue(function(n){e(this)[t](),s&&s.call(r[0]),n()})}})})(jQuery);(function(e,t){var n=!1;e(document).mouseup(function(){n=!1}),e.widget("ui.mouse",{version:"1.10.0",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(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(n)return;this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var r=this,i=t.which===1,s=typeof this.options.cancel=="string"&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;if(!i||s||!this._mouseCapture(t))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)){this._mouseStarted=this._mouseStart(t)!==!1;if(!this._mouseStarted)return t.preventDefault(),!0}return!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),n=!0,!0},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button?this._mouseUp(t):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 e(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)),!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}})})(jQuery);(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}function d(t){var n=t[0];return n.nodeType===9?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(n)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width<t.element[0].scrollWidth,s=r==="scroll"||r==="auto"&&t.height<t.element[0].scrollHeight;return{width:i?e.position.scrollbarWidth():0,height:s?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),r=e.isWindow(n[0]);return{element:n,isWindow:r,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:r?n.width():n.outerWidth(),height:r?n.height():n.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return c.apply(this,arguments);t=e.extend({},t);var n,l,v,m,g,y,b=e(t.of),w=e.position.getWithinInfo(t.within),E=e.position.getScrollInfo(w),S=(t.collision||"flip").split(" "),x={};return y=d(b),b[0].preventDefault&&(t.at="left top"),l=y.width,v=y.height,m=y.offset,g=e.extend({},m),e.each(["my","at"],function(){var e=(t[this]||"").split(" "),n,r;e.length===1&&(e=o.test(e[0])?e.concat(["center"]):u.test(e[0])?["center"].concat(e):["center","center"]),e[0]=o.test(e[0])?e[0]:"center",e[1]=u.test(e[1])?e[1]:"center",n=a.exec(e[0]),r=a.exec(e[1]),x[this]=[n?n[0]:0,r?r[0]:0],t[this]=[f.exec(e[0])[0],f.exec(e[1])[0]]}),S.length===1&&(S[1]=S[0]),t.at[0]==="right"?g.left+=l:t.at[0]==="center"&&(g.left+=l/2),t.at[1]==="bottom"?g.top+=v:t.at[1]==="center"&&(g.top+=v/2),n=h(x.at,l,v),g.left+=n[0],g.top+=n[1],this.each(function(){var o,u,a=e(this),f=a.outerWidth(),c=a.outerHeight(),d=p(this,"marginLeft"),y=p(this,"marginTop"),T=f+d+p(this,"marginRight")+E.width,N=c+y+p(this,"marginBottom")+E.height,C=e.extend({},g),k=h(x.my,a.outerWidth(),a.outerHeight());t.my[0]==="right"?C.left-=f:t.my[0]==="center"&&(C.left-=f/2),t.my[1]==="bottom"?C.top-=c:t.my[1]==="center"&&(C.top-=c/2),C.left+=k[0],C.top+=k[1],e.support.offsetFractions||(C.left=s(C.left),C.top=s(C.top)),o={marginLeft:d,marginTop:y},e.each(["left","top"],function(r,i){e.ui.position[S[r]]&&e.ui.position[S[r]][i](C,{targetWidth:l,targetHeight:v,elemWidth:f,elemHeight:c,collisionPosition:o,collisionWidth:T,collisionHeight:N,offset:[n[0]+k[0],n[1]+k[1]],my:t.my,at:t.at,within:w,elem:a})}),t.using&&(u=function(e){var n=m.left-C.left,s=n+l-f,o=m.top-C.top,u=o+v-c,h={target:{element:b,left:m.left,top:m.top,width:l,height:v},element:{element:a,left:C.left,top:C.top,width:f,height:c},horizontal:s<0?"left":n>0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};l<f&&i(n+s)<l&&(h.horizontal="center"),v<c&&i(o+u)<v&&(h.vertical="middle"),r(i(n),i(s))>r(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p<i(a))e.left+=l+c+h}else if(f>0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)<f)e.left+=l+c+h}},top:function(e,t){var n=t.within,r=n.offset.top+n.scrollTop,s=n.height,o=n.isWindow?n.scrollTop:n.offset.top,u=e.top-t.collisionPosition.marginTop,a=u-o,f=u+t.collisionHeight-s-o,l=t.my[1]==="top",c=l?-t.elemHeight:t.my[1]==="bottom"?t.elemHeight:0,h=t.at[1]==="top"?t.targetHeight:t.at[1]==="bottom"?-t.targetHeight:0,p=-2*t.offset[1],d,v;a<0?(v=e.top+c+h+p+t.collisionHeight-s-r,e.top+c+h+p>a&&(v<0||v<i(a))&&(e.top+=c+h+p)):f>0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)<f)&&(e.top+=c+h+p))}},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,n,r,i,s,o=document.getElementsByTagName("body")[0],u=document.createElement("div");t=document.createElement(o?"div":"body"),r={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&e.extend(r,{position:"absolute",left:"-1000px",top:"-1000px"});for(s in r)t.style[s]=r[s];t.appendChild(u),n=o||document.documentElement,n.insertBefore(t,n.firstChild),u.style.cssText="position: absolute; left: 10.7432222px;",i=e(u).offset().left,e.support.offsetFractions=i>10&&i<11,t.innerHTML="",n.removeChild(t)}()})(jQuery);(function(e,t){e.widget("ui.draggable",e.ui.mouse,{version:"1.10.0",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(){this.options.helper==="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(n.iframeFix===!0?"iframe":n.iframeFix).each(function(){e("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=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(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!=="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!=="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n,r=this,i=!1,s=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),n=this.element[0];while(n&&(n=n.parentNode))n===document&&(i=!0);return!i&&this.options.helper==="original"?!1:(this.options.revert==="invalid"&&!s||this.options.revert==="valid"&&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(){r._trigger("stop",t)!==!1&&r._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1)},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),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){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper==="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo==="parent"?this.element[0].parentNode:n.appendTo),r[0]!==this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(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)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_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,n,r,i=this.options;i.containment==="parent"&&(i.containment=this.helper[0].parentNode);if(i.containment==="document"||i.containment==="window")this.containment=[i.containment==="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,i.containment==="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(i.containment==="document"?0:e(window).scrollLeft())+e(i.containment==="document"?document:window).width()-this.helperProportions.width-this.margins.left,(i.containment==="document"?0:e(window).scrollTop())+(e(i.containment==="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(i.containment)&&i.containment.constructor!==Array){n=e(i.containment),r=n[0];if(!r)return;t=e(r).css("overflow")!=="hidden",this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else i.containment.constructor===Array&&(this.containment=i.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t==="absolute"?1:-1,i=this.cssPosition!=="absolute"||this.scrollParent[0]!==document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,s=/(html|body)/i.test(i[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():s?0:i.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():s?0:i.scrollLeft())*r}},_generatePosition:function(t){var n,r,i,s,o=this.options,u=this.cssPosition!=="absolute"||this.scrollParent[0]!==document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(u[0].tagName),f=t.pageX,l=t.pageY;return this.originalPosition&&(this.containment&&(this.relative_container?(r=this.relative_container.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,t.pageX-this.offset.click.left<n[0]&&(f=n[0]+this.offset.click.left),t.pageY-this.offset.click.top<n[1]&&(l=n[1]+this.offset.click.top),t.pageX-this.offset.click.left>n[2]&&(f=n[2]+this.offset.click.left),t.pageY-this.offset.click.top>n[3]&&(l=n[3]+this.offset.click.top)),o.grid&&(i=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-o.grid[1]:i+o.grid[1]:i,s=o.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,f=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():a?0:u.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():a?0:u.scrollLeft())}},_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},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r]),t==="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,n,r)},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,n){var r=e(this).data("ui-draggable"),i=r.options,s=e.extend({},n,{item:r.element});r.sortables=[],e(i.connectToSortable).each(function(){var n=e.data(this,"ui-sortable");n&&!n.options.disabled&&(r.sortables.push({instance:n,shouldRevert:n.options.revert}),n.refreshPositions(),n._trigger("activate",t,s))})},stop:function(t,n){var r=e(this).data("ui-draggable"),i=e.extend({},n,{item:r.element});e.each(r.sortables,function(){this.instance.isOver?(this.instance.isOver=0,r.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,r.options.helper==="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,i))})},drag:function(t,n){var r=e(this).data("ui-draggable"),i=this;e.each(r.sortables,function(){var s=!1,o=this;this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(s=!0,e.each(r.sortables,function(){return this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&e.ui.contains(o.instance.element[0],this.instance.element[0])&&(s=!1),s})),s?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(i).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return n.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=r.offset.click.top,this.instance.offset.click.left=r.offset.click.left,this.instance.offset.parent.left-=r.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=r.offset.parent.top-this.instance.offset.parent.top,r._trigger("toSortable",t),r.dropped=this.instance.element,r.currentItem=r.element,this.instance.fromOutside=r),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),r._trigger("fromSortable",t),r.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(){var t=e("body"),n=e(this).data("ui-draggable").options;t.css("cursor")&&(n._cursor=t.css("cursor")),t.css("cursor",n.cursor)},stop:function(){var t=e(this).data("ui-draggable").options;t._cursor&&e("body").css("cursor",t._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n){var r=e(n.helper),i=e(this).data("ui-draggable").options;r.css("opacity")&&(i._opacity=r.css("opacity")),r.css("opacity",i.opacity)},stop:function(t,n){var r=e(this).data("ui-draggable").options;r._opacity&&e(n.helper).css("opacity",r._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(){var t=e(this).data("ui-draggable");t.scrollParent[0]!==document&&t.scrollParent[0].tagName!=="HTML"&&(t.overflowOffset=t.scrollParent.offset())},drag:function(t){var n=e(this).data("ui-draggable"),r=n.options,i=!1;if(n.scrollParent[0]!==document&&n.scrollParent[0].tagName!=="HTML"){if(!r.axis||r.axis!=="x")n.overflowOffset.top+n.scrollParent[0].offsetHeight-t.pageY<r.scrollSensitivity?n.scrollParent[0].scrollTop=i=n.scrollParent[0].scrollTop+r.scrollSpeed:t.pageY-n.overflowOffset.top<r.scrollSensitivity&&(n.scrollParent[0].scrollTop=i=n.scrollParent[0].scrollTop-r.scrollSpeed);if(!r.axis||r.axis!=="y")n.overflowOffset.left+n.scrollParent[0].offsetWidth-t.pageX<r.scrollSensitivity?n.scrollParent[0].scrollLeft=i=n.scrollParent[0].scrollLeft+r.scrollSpeed:t.pageX-n.overflowOffset.left<r.scrollSensitivity&&(n.scrollParent[0].scrollLeft=i=n.scrollParent[0].scrollLeft-r.scrollSpeed)}else{if(!r.axis||r.axis!=="x")t.pageY-e(document).scrollTop()<r.scrollSensitivity?i=e(document).scrollTop(e(document).scrollTop()-r.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<r.scrollSensitivity&&(i=e(document).scrollTop(e(document).scrollTop()+r.scrollSpeed));if(!r.axis||r.axis!=="y")t.pageX-e(document).scrollLeft()<r.scrollSensitivity?i=e(document).scrollLeft(e(document).scrollLeft()-r.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<r.scrollSensitivity&&(i=e(document).scrollLeft(e(document).scrollLeft()+r.scrollSpeed))}i!==!1&&e.ui.ddmanager&&!r.dropBehaviour&&e.ui.ddmanager.prepareOffsets(n,t)}}),e.ui.plugin.add("draggable","snap",{start:function(){var t=e(this).data("ui-draggable"),n=t.options;t.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var n=e(this),r=n.offset();this!==t.element[0]&&t.snapElements.push({item:this,width:n.outerWidth(),height:n.outerHeight(),top:r.top,left:r.left})})},drag:function(t,n){var r,i,s,o,u,a,f,l,c,h,p=e(this).data("ui-draggable"),d=p.options,v=d.snapTolerance,m=n.offset.left,g=m+p.helperProportions.width,y=n.offset.top,b=y+p.helperProportions.height;for(c=p.snapElements.length-1;c>=0;c--){u=p.snapElements[c].left,a=u+p.snapElements[c].width,f=p.snapElements[c].top,l=f+p.snapElements[c].height;if(!(u-v<m&&m<a+v&&f-v<y&&y<l+v||u-v<m&&m<a+v&&f-v<b&&b<l+v||u-v<g&&g<a+v&&f-v<y&&y<l+v||u-v<g&&g<a+v&&f-v<b&&b<l+v)){p.snapElements[c].snapping&&p.options.snap.release&&p.options.snap.release.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[c].item})),p.snapElements[c].snapping=!1;continue}d.snapMode!=="inner"&&(r=Math.abs(f-b)<=v,i=Math.abs(l-y)<=v,s=Math.abs(u-g)<=v,o=Math.abs(a-m)<=v,r&&(n.position.top=p._convertPositionTo("relative",{top:f-p.helperProportions.height,left:0}).top-p.margins.top),i&&(n.position.top=p._convertPositionTo("relative",{top:l,left:0}).top-p.margins.top),s&&(n.position.left=p._convertPositionTo("relative",{top:0,left:u-p.helperProportions.width}).left-p.margins.left),o&&(n.position.left=p._convertPositionTo("relative",{top:0,left:a}).left-p.margins.left)),h=r||i||s||o,d.snapMode!=="outer"&&(r=Math.abs(f-y)<=v,i=Math.abs(l-b)<=v,s=Math.abs(u-m)<=v,o=Math.abs(a-g)<=v,r&&(n.position.top=p._convertPositionTo("relative",{top:f,left:0}).top-p.margins.top),i&&(n.position.top=p._convertPositionTo("relative",{top:l-p.helperProportions.height,left:0}).top-p.margins.top),s&&(n.position.left=p._convertPositionTo("relative",{top:0,left:u}).left-p.margins.left),o&&(n.position.left=p._convertPositionTo("relative",{top:0,left:a-p.helperProportions.width}).left-p.margins.left)),!p.snapElements[c].snapping&&(r||i||s||o||h)&&p.options.snap.snap&&p.options.snap.snap.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[c].item})),p.snapElements[c].snapping=r||i||s||o||h}}}),e.ui.plugin.add("draggable","stack",{start:function(){var t,n=e(this).data("ui-draggable").options,r=e.makeArray(e(n.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});if(!r.length)return;t=parseInt(r[0].style.zIndex,10)||0,e(r).each(function(e){this.style.zIndex=t+e}),this[0].style.zIndex=t+r.length}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n){var r=e(n.helper),i=e(this).data("ui-draggable").options;r.css("zIndex")&&(i._zIndex=r.css("zIndex")),r.css("zIndex",i.zIndex)},stop:function(t,n){var r=e(this).data("ui-draggable").options;r._zIndex&&e(n.helper).css("zIndex",r._zIndex)}})})(jQuery);jQuery.effects||function(e,t){var n="ui-effects-";e.effects={effect:{}},function(e,t){function h(e,t,n){var r=u[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max<e?r.max:e)}function p(t){var n=s(),r=n._rgba=[];return t=t.toLowerCase(),c(i,function(e,i){var s,u=i.re.exec(t),a=u&&i.parse(u),f=i.space||"rgba";if(a)return s=n[f](a),n[o[f].cache]=s[o[f].cache],r=n._rgba=s._rgba,!1}),r.length?(r.join()==="0,0,0,0"&&e.extend(r,l.transparent),n):l[t]}function d(e,t,n){return n=(n+1)%1,n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}var n="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,i=[{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[e[1]*2.55,e[2]*2.55,e[3]*2.55,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]]}}],s=e.Color=function(t,n,r,i){return new e.Color.fn.parse(t,n,r,i)},o={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"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},a=s.support={},f=e("<p>")[0],l,c=e.each;f.style.cssText="background-color:rgba(1,1,1,.5)",a.rgba=f.style.backgroundColor.indexOf("rgba")>-1,c(o,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),s.fn=e.extend(s.prototype,{parse:function(n,r,i,u){if(n===t)return this._rgba=[null,null,null,null],this;if(n.jquery||n.nodeType)n=e(n).css(r),r=t;var a=this,f=e.type(n),d=this._rgba=[];r!==t&&(n=[n,r,i,u],f="array");if(f==="string")return this.parse(p(n)||l._default);if(f==="array")return c(o.rgba.props,function(e,t){d[t.idx]=h(n[t.idx],t)}),this;if(f==="object")return n instanceof s?c(o,function(e,t){n[t.cache]&&(a[t.cache]=n[t.cache].slice())}):c(o,function(t,r){var i=r.cache;c(r.props,function(e,t){if(!a[i]&&r.to){if(e==="alpha"||n[e]==null)return;a[i]=r.to(a._rgba)}a[i][t.idx]=h(n[e],t,!0)}),a[i]&&e.inArray(null,a[i].slice(0,3))<0&&(a[i][3]=1,r.from&&(a._rgba=r.from(a[i])))}),this},is:function(e){var t=s(e),n=!0,r=this;return c(o,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],c(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return c(o,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=s(e),r=n._space(),i=o[r],a=this.alpha()===0?s("transparent"):this,f=a[i.cache]||i.to(a._rgba),l=f.slice();return n=n[i.cache],c(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],a=u[r.type]||{};if(o===null)return;s===null?l[i]=o:(a.mod&&(o-s>a.mod/2?s+=a.mod:s-o>a.mod/2&&(s-=a.mod)),l[i]=h((o-s)*t+s,r))}),this[r](l)},blend:function(t){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=s(t)._rgba;return s(e.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var t="rgba(",n=e.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),t="rgb("),t+n.join()+")"},toHslaString:function(){var t="hsla(",n=e.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),t="hsl("),t+n.join()+")"},toHexString:function(t){var n=this._rgba.slice(),r=n.pop();return t&&n.push(~~(r*255)),"#"+e.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),s.fn.parse.prototype=s.fn,o.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,u===0?c=0:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},o.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(d(o,s,t+1/3)*255),Math.round(d(o,s,t)*255),Math.round(d(o,s,t-1/3)*255),i]},c(o,function(n,i){var o=i.props,u=i.cache,a=i.to,f=i.from;s.fn[n]=function(n){a&&!this[u]&&(this[u]=a(this._rgba));if(n===t)return this[u].slice();var r,i=e.type(n),l=i==="array"||i==="object"?n:arguments,p=this[u].slice();return c(o,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=p[t.idx]),p[t.idx]=h(n,t)}),f?(r=s(f(p)),r[u]=p,r):s(p)},c(o,function(t,i){if(s.fn[t])return;s.fn[t]=function(s){var o=e.type(s),u=t==="alpha"?this._hsla?"hsla":"rgba":n,a=this[u](),f=a[i.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=e.type(s)),s==null&&i.empty?this:(o==="string"&&(l=r.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[i.idx]=s,this[u](a)))}})}),s.hook=function(t){var n=t.split(" ");c(n,function(t,n){e.cssHooks[n]={set:function(t,r){var i,o,u="";if(r!=="transparent"&&(e.type(r)!=="string"||(i=p(r)))){r=s(i||r);if(!a.rgba&&r._rgba[3]!==1){o=n==="backgroundColor"?t.parentNode:t;while((u===""||u==="transparent")&&o&&o.style)try{u=e.css(o,"backgroundColor"),o=o.parentNode}catch(f){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{t.style[n]=r}catch(f){}}},e.fx.step[n]=function(t){t.colorInit||(t.start=s(t.elem,n),t.end=s(t.end),t.colorInit=!0),e.cssHooks[n].set(t.elem,t.start.transition(t.end,t.pos))}})},s.hook(n),e.cssHooks.borderColor={expand:function(e){var t={};return c(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},l=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"}}(jQuery),function(){function i(t){var n,r,i=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,s={};if(i&&i.length&&i[0]&&i[i[0]]){r=i.length;while(r--)n=i[r],typeof i[n]=="string"&&(s[e.camelCase(n)]=i[n])}else for(n in i)typeof i[n]=="string"&&(s[n]=i[n]);return s}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={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,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").addBack():r;f=f.map(function(){var t=e(this);return{el:t,start:i(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=e.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function r(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function i(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]}e.extend(e.effects,{version:"1.10.0",save:function(e,t){for(var r=0;r<t.length;r++)t[r]!==null&&e.data(n+t[r],e[0].style[t[r]])},restore:function(e,r){var i,s;for(s=0;s<r.length;s++)r[s]!==null&&(i=e.data(n+r[s]),i===t&&(i=""),e.css(r[s],i))},setMode:function(e,t){return t==="toggle"&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var n,r;switch(e[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=e[0]/t.height}switch(e[1]){case"left":r=0;break;case"center":r=.5;break;case"right":r=1;break;default:r=e[1]/t.width}return{x:r,y:n}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var n={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},r=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function o(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,o=t.mode;(r.is(":hidden")?o==="hide":o==="show")?u():s.call(r[0],t,u)}var t=r.apply(this,arguments),n=t.mode,i=t.queue,s=e.effects.effect[t.effect];return e.fx.off||!s?n?this[n](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):i===!1?this.each(o):this.queue(i||"fx",o)},_show:e.fn.show,show:function(e){if(i(e))return this._show.apply(this,arguments);var t=r.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(i(e))return this._hide.apply(this,arguments);var t=r.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(i(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=r.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=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 e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m<l;m++)g={},g[d]=(v?"-=":"+=")+f,r.animate(g,h,p).animate(y,h,p),f=o?f*2:f/2;o&&(g={opacity:0},g[d]=(v?"-=":"+=")+f,r.animate(g,h,p)),r.queue(function(){o&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}),w>1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h<r;h++){v=a.top+h*l,g=h-(r-1)/2;for(p=0;p<i;p++)d=a.left+p*f,m=p-(i-1)/2,s.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p<a;p++)r.animate({opacity:l},f,t.easing),l=1-l;r.animate({opacity:l},f,t.easing),r.queue(function(){o&&r.hide(),n()}),h>1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m<a;m++)r.animate(d,l,t.easing).animate(v,l,t.easing);r.animate(d,l,t.easing).animate(p,l/2,t.easing).queue(function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}),y>1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery);(function(){function b(){return b}function c(b,d){var e=c.resolve(b),f=c.modules[e];if(!f)throw new Error('failed to require "'+b+'" from '+d);return f.exports||(f.exports={},f.call(f.exports,f,f.exports,c.relative(e),a)),f.exports}var a=this;c.modules={},c.resolve=function(a){var b=a,d=a+".js",e=a+"/index.js";return c.modules[d]&&d||c.modules[e]&&e||b},c.register=function(a,b){c.modules[a]=b},c.relative=function(a){return function(d){if("debug"==d)return b;if("."!=d.charAt(0))return c(d);var e=a.split("/"),f=d.split("/");e.pop();for(var g=0;g<f.length;g++){var h=f[g];".."==h?e.pop():"."!=h&&e.push(h)}return c(e.join("/"),a)}},c.register("color.js",function(a,b,c,d){var e=c("color-convert"),f=c("color-string");a.exports=function(a){return new g(a)};var g=function(a){this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],cmyk:[0,0,0,0],alpha:1};if(typeof a=="string"){var b=f.getRgba(a);b?this.setValues("rgb",b):(b=f.getHsla(a))&&this.setValues("hsl",b)}else if(typeof a=="object"){var b=a;b.r!==undefined||b.red!==undefined?this.setValues("rgb",b):b.l!==undefined||b.lightness!==undefined?this.setValues("hsl",b):b.v!==undefined||b.value!==undefined?this.setValues("hsv",b):(b.c!==undefined||b.cyan!==undefined)&&this.setValues("cmyk",b)}};g.prototype={rgb:function(a){return this.setSpace("rgb",arguments)},hsl:function(a){return this.setSpace("hsl",arguments)},hsv:function(a){return this.setSpace("hsv",arguments)},cmyk:function(a){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var a=this.values.rgb;return a.push(this.values.alpha),a},hslaArray:function(){var a=this.values.hsl;return a.push(this.values.alpha),a},alpha:function(a){return a===undefined?this.values.alpha:(this.setValues("alpha",a),this)},red:function(a){return this.setChannel("rgb",0,a)},green:function(a){return this.setChannel("rgb",1,a)},blue:function(a){return this.setChannel("rgb",2,a)},hue:function(a){return this.setChannel("hsl",0,a)},saturation:function(a){return this.setChannel("hsl",1,a)},lightness:function(a){return this.setChannel("hsl",2,a)},saturationv:function(a){return this.setChannel("hsv",1,a)},value:function(a){return this.setChannel("hsv",2,a)},cyan:function(a){return this.setChannel("cmyk",0,a)},magenta:function(a){return this.setChannel("cmyk",1,a)},yellow:function(a){return this.setChannel("cmyk",2,a)},black:function(a){return this.setChannel("cmyk",3,a)},hexString:function(){return f.hexString(this.values.rgb)},rgbString:function(){return f.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return f.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return f.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return f.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return f.hslaString(this.values.hsl,this.values.alpha)},keyword:function(){return f.keyword(this.values.rgb,this.values.alpha)},luminosity:function(){var a=this.values.rgb;for(var b=0;b<a.length;b++){var c=a[b]/255;a[b]=c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4)}return.2126*a[0]+.7152*a[1]+.0722*a[2]},contrast:function(a){var b=this.luminosity(),c=a.luminosity();return b>c?(b+.05)/(c+.05):(c+.05)/(b+.05)},dark:function(){var a=this.values.rgb,b=(a[0]*299+a[1]*587+a[2]*114)/1e3;return b<128},light:function(){return!this.dark()},negate:function(){var a=[];for(var b=0;b<3;b++)a[b]=255-this.values.rgb[b];return this.setValues("rgb",a),this},lighten:function(a){return this.values.hsl[2]+=this.values.hsl[2]*a,this.setValues("hsl",this.values.hsl),this},darken:function(a){return this.values.hsl[2]-=this.values.hsl[2]*a,this.setValues("hsl",this.values.hsl),this},saturate:function(a){return this.values.hsl[1]+=this.values.hsl[1]*a,this.setValues("hsl",this.values.hsl),this},desaturate:function(a){return this.values.hsl[1]-=this.values.hsl[1]*a,this.setValues("hsl",this.values.hsl),this},greyscale:function(){var a=this.values.rgb,b=a[0]*.3+a[1]*.59+a[2]*.11;return this.setValues("rgb",[b,b,b]),this},clearer:function(a){return this.setValues("alpha",this.values.alpha-this.values.alpha*a),this},opaquer:function(a){return this.setValues("alpha",this.values.alpha+this.values.alpha*a),this},rotate:function(a){var b=this.values.hsl[0];return b=(b+a)%360,b=b<0?360+b:b,this.values.hsl[0]=b,this.setValues("hsl",this.values.hsl),this},mix:function(a,b){b=1-(b||.5);var c=b*2-1,d=this.alpha()-a.alpha(),e=((c*d==-1?c:(c+d)/(1+c*d))+1)/2,f=1-e,g=this.rgbArray(),h=a.rgbArray();for(var i=0;i<g.length;i++)g[i]=g[i]*e+h[i]*f;this.setValues("rgb",g);var j=this.alpha()*b+a.alpha()*(1-b);return this.setValues("alpha",j),this},toJSON:function(){return this.rgb()}},g.prototype.getValues=function(a){var b={};for(var c=0;c<a.length;c++)b[a[c]]=this.values[a][c];return this.values.alpha!=1&&(b.a=this.values.alpha),b},g.prototype.setValues=function(a,b){var c={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],cmyk:["cyan","magenta","yellow","black"]},d={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],cmyk:[100,100,100,100]},f=1;if(a=="alpha")f=b;else if(b.length)this.values[a]=b.slice(0,a.length),f=b[a.length];else if(b[a[0]]!==undefined){for(var g=0;g<a.length;g++)this.values[a][g]=b[a[g]];f=b.a}else if(b[c[a][0]]!==undefined){var h=c[a];for(var g=0;g<a.length;g++)this.values[a][g]=b[h[g]];f=b.alpha}this.values.alpha=Math.max(0,Math.min(1,f||this.values.alpha));if(a=="alpha")return;for(var i in c){i!=a&&(this.values[i]=e[a][i](this.values[a]));for(var g=0;g<i.length;g++){var j=Math.max(0,Math.min(d[i][g],this.values[i][g]));this.values[i][g]=Math.round(j)}}return!0},g.prototype.setSpace=function(a,b){var c=b[0];return c===undefined?this.getValues(a):(typeof c=="number"&&(c=Array.prototype.slice.call(b)),this.setValues(a,c),this)},g.prototype.setChannel=function(a,b,c){return c===undefined?this.values[a][b]:(this.values[a][b]=c,this.setValues(a,this.values[a]),this)}}),c.register("color-string",function(a,b,c,d){function f(a){if(!a)return;var b=/^#([a-fA-F0-9]{3})$/,c=/^#([a-fA-F0-9]{6})$/,d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d\.]+)\s*)?\)$/,f=/^rgba?\(\s*([\d\.]+)\%\s*,\s*([\d\.]+)\%\s*,\s*([\d\.]+)\%\s*(?:,\s*([\d\.]+)\s*)?\)$/,g=/(\D+)/,h=[0,0,0],i=1,j=a.match(b);if(j){j=j[1];for(var k=0;k<h.length;k++)h[k]=parseInt(j[k]+j[k],16)}else if(j=a.match(c)){j=j[1];for(var k=0;k<h.length;k++)h[k]=parseInt(j.slice(k*2,k*2+2),16)}else if(j=a.match(d)){for(var k=0;k<h.length;k++)h[k]=parseInt(j[k+1]);i=parseFloat(j[4])}else if(j=a.match(f)){for(var k=0;k<h.length;k++)h[k]=Math.round(parseFloat(j[k+1])*2.55);i=parseFloat(j[4])}else if(j=a.match(g)){if(j[1]=="transparent")return[0,0,0,0];h=e.keyword2rgb(j[1]);if(!h)return}for(var k=0;k<h.length;k++)h[k]=s(h[k],0,255);return i?i=s(i,0,1):i=1,h.push(i),h}function g(a){if(!a)return;var b=/^hsla?\(\s*(\d+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*(?:,\s*([\d\.]+)\s*)?\)/,c=a.match(b);if(c){var d=s(parseInt(c[1]),0,360),e=s(parseFloat(c[2]),0,100),f=s(parseFloat(c[3]),0,100),g=s(parseFloat(c[4])||1,0,1);return[d,e,f,g]}}function h(a){var b=f(a);return b&&b.slice(0,3)}function i(a){var b=g(a);return b&&b.slice(0,3)}function j(a){var b=f(a);if(b)return b[3];if(b=g(a))return b[3]}function k(a){return"#"+t(a[0])+t(a[1])+t(a[2])}function l(a,b){return b<1||a[3]&&a[3]<1?m(a,b):"rgb("+a[0]+", "+a[1]+", "+a[2]+")"}function m(a,b){return"rgba("+a[0]+", "+a[1]+", "+a[2]+", "+(b||a[3]||1)+")"}function n(a,b){if(b<1||a[3]&&a[3]<1)return o(a,b);var c=Math.round(a[0]/255*100),d=Math.round(a[1]/255*100),e=Math.round(a[2]/255*100);return"rgb("+c+"%, "+d+"%, "+e+"%)"}function o(a,b){var c=Math.round(a[0]/255*100),d=Math.round(a[1]/255*100),e=Math.round(a[2]/255*100);return"rgba("+c+"%, "+d+"%, "+e+"%, "+(b||a[3]||1)+")"}function p(a,b){return b<1||a[3]&&a[3]<1?q(a,b):"hsl("+a[0]+", "+a[1]+"%, "+a[2]+"%)"}function q(a,b){return"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+(b||a[3]||1)+")"}function r(a){return e.rgb2keyword(a.slice(0,3))}function s(a,b,c){return Math.min(Math.max(b,a),c)}function t(a){var b=a.toString(16).toUpperCase();return b.length<2?"0"+b:b}var e=c("color-convert");a.exports={getRgba:f,getHsla:g,getRgb:h,getHsl:i,getAlpha:j,hexString:k,rgbString:l,rgbaString:m,percentString:n,percentaString:o,hslString:p,hslaString:q,keyword:r}}),c.register("color-convert",function(a,b,c,d){function l(a){for(var b=0;b<a.length;b++)a[b]=Math.round(a[b])}var e=c("conversions"),f=function(){return new k};for(var g in e){f[g+"Raw"]=function(a){return function(b){return typeof b=="number"&&(b=Array.prototype.slice.call(arguments)),e[a](b)}}(g);var h=/(\w+)2(\w+)/.exec(g),i=h[1],j=h[2];f[i]=f[i]||{},f[i][j]=f[g]=function(a){return function(b){typeof b=="number"&&(b=Array.prototype.slice.call(arguments));var c=e[a](b);return typeof c=="string"||c===undefined?c:(l(c),c)}}(g)}var k=function(){this.space="rgb",this.convs={rgb:[0,0,0]}};k.prototype.routeSpace=function(a,b){var c=b[0];return c===undefined?this.getValues(a):(typeof c=="number"&&(c=Array.prototype.slice.call(b)),this.setValues(a,c))},k.prototype.setValues=function(a,b){return this.space=a,this.convs={},this.convs[a]=b,this},k.prototype.getValues=function(a){var b=this.convs[a];if(!b){var c=this.space,d=this.convs[c];b=f[c][a](d),this.convs[a]=b}else l(b);return b},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(a){k.prototype[a]=function(b){return this.routeSpace(a,arguments)}}),a.exports=f}),c.register("conversions",function(a,b,c,d){function e(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255,e=Math.min(b,c,d),f=Math.max(b,c,d),g=f-e,h,i,j;return f==e?h=0:b==f?h=(c-d)/g:c==f?h=2+(d-b)/g:d==f&&(h=4+(b-c)/g),h=Math.min(h*60,360),h<0&&(h+=360),j=(e+f)/2,f==e?i=0:j<=.5?i=g/(f+e):i=g/(2-f-e),[h,i*100,j*100]}function f(a){var b=a[0],c=a[1],d=a[2],e=Math.min(b,c,d),f=Math.max(b,c,d),g=f-e,h,i,j;return f==0?i=0:i=g/f*1e3/10,f==e?h=0:b==f?h=(c-d)/g:c==f?h=2+(d-b)/g:d==f&&(h=4+(b-c)/g),h=Math.min(h*60,360),h<0&&(h+=360),j=f/255*1e3/10,[h,i,j]}function g(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255,e,f,g,h;return h=Math.min(1-b,1-c,1-d),e=(1-b-h)/(1-h),f=(1-c-h)/(1-h),g=(1-d-h)/(1-h),[e*100,f*100,g*100,h*100]}function h(a){return G[JSON.stringify(a)]}function i(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255;b=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92,c=c>.04045?Math.pow((c+.055)/1.055,2.4):c/12.92,d=d>.04045?Math.pow((d+.055)/1.055,2.4):d/12.92;var e=b*.4124+c*.3576+d*.1805,f=b*.2126+c*.7152+d*.0722,g=b*.0193+c*.1192+d*.9505;return[e*100,f*100,g*100]}function j(a){var b=i(a),c=b[0],d=b[1],e=b[2],f,g,h;return c/=95.047,d/=100,e/=108.883,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116,e=e>.008856?Math.pow(e,1/3):7.787*e+16/116,f=116*d-16,g=500*(c-d),h=200*(d-e),[f,g,h]}function k(a){var b=a[0]/360,c=a[1]/100,d=a[2]/100,e,f,g,h,i;if(c==0)return i=d*255,[i,i,i];d<.5?f=d*(1+c):f=d+c-d*c,e=2*d-f,h=[0,0,0];for(var j=0;j<3;j++)g=b+1/3*-(j-1),g<0&&g++,g>1&&g--,6*g<1?i=e+(f-e)*6*g:2*g<1?i=f:3*g<2?i=e+(f-e)*(2/3-g)*6:i=e,h[j]=i*255;return h}function l(a){var b=a[0],c=a[1]/100,d=a[2]/100,e,f;return d*=2,c*=d<=1?d:2-d,f=(d+c)/2,e=2*c/(d+c),[b,e*100,f*100]}function m(a){return g(k(a))}function n(a){return h(k(a))}function o(a){var b=a[0]/60,c=a[1]/100,d=a[2]/100,e=Math.floor(b)%6,f=b-Math.floor(b),g=255*d*(1-c),h=255*d*(1-c*f),i=255*d*(1-c*(1-f)),d=255*d;switch(e){case 0:return[d,i,g];case 1:return[h,d,g];case 2:return[g,d,i];case 3:return[g,h,d];case 4:return[i,g,d];case 5:return[d,g,h]}}function p(a){var b=a[0],c=a[1]/100,d=a[2]/100,e,f;return f=(2-c)*d,e=c*d,e/=f<=1?f:2-f,f/=2,[b,e*100,f*100]}function q(a){return g(o(a))}function r(a){return h(o(a))}function s(a){var b=a[0]/100,c=a[1]/100,d=a[2]/100,e=a[3]/100,f,g,h;return f=1-Math.min(1,b*(1-e)+e),g=1-Math.min(1,c*(1-e)+e),h=1-Math.min(1,d*(1-e)+e),[f*255,g*255,h*255]}function t(a){return e(s(a))}function u(a){return f(s(a))}function v(a){return h(s(a))}function w(a){var b=a[0]/100,c=a[1]/100,d=a[2]/100,e,f,g;return e=b*3.2406+c*-1.5372+d*-0.4986,f=b*-0.9689+c*1.8758+d*.0415,g=b*.0557+c*-0.204+d*1.057,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,f=f>.0031308?1.055*Math.pow(f,1/2.4)-.055:f*=12.92,g=g>.0031308?1.055*Math.pow(g,1/2.4)-.055:g*=12.92,e=e<0?0:e,f=f<0?0:f,g=g<0?0:g,[e*255,f*255,g*255]}function x(a){var b=a[0],c=a[1],d=a[2],e,f,g;return b/=95.047,c/=100,d/=108.883,b=b>.008856?Math.pow(b,1/3):7.787*b+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116,e=116*c-16,f=500*(b-c),g=200*(c-d),[e,f,g]}function y(a){var b=a[0],c=a[1],d=a[2],e,f,g,h;return b<=8?(f=b*100/903.3,h=7.787*(f/100)+16/116):(f=100*Math.pow((b+16)/116,3),h=Math.pow(f/100,1/3)),e=e/95.047<=.008856?e=95.047*(c/500+h-16/116)/7.787:95.047*Math.pow(c/500+h,3),g=g/108.883<=.008859?g=108.883*(h-d/200-16/116)/7.787:108.883*Math.pow(h-d/200,3),[e,f,g]}function z(a){return F[a]}function A(a){return e(z(a))}function B(a){return f(z(a))}function C(a){return g(z(a))}function D(a){return j(z(a))}function E(a){return i(z(a))}a.exports={rgb2hsl:e,rgb2hsv:f,rgb2cmyk:g,rgb2keyword:h,rgb2xyz:i,rgb2lab:j,hsl2rgb:k,hsl2hsv:l,hsl2cmyk:m,hsl2keyword:n,hsv2rgb:o,hsv2hsl:p,hsv2cmyk:q,hsv2keyword:r,cmyk2rgb:s,cmyk2hsl:t,cmyk2hsv:u,cmyk2keyword:v,keyword2rgb:z,keyword2hsl:A,keyword2hsv:B,keyword2cmyk:C,keyword2lab:D,keyword2xyz:E,xyz2rgb:w,xyz2lab:x,lab2xyz:y};var F={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},G={};for(var H in F)G[JSON.stringify(F[H])]=H}),Color=c("color.js")})();/**
- * Really Simple Color Picker in jQuery
- *
- * Licensed under the MIT (MIT-LICENSE.txt) licenses.
- *
- * Copyright (c) 2008-2012
- * Lakshan Perera (www.laktek.com) & Daniel Lacy (daniellacy.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */(function(a){var b,c,d=0,e={control:a('<div class="colorPicker-picker">&nbsp;</div>'),palette:a('<div id="colorPicker_palette" class="colorPicker-palette" />'),swatch:a('<div class="colorPicker-swatch">&nbsp;</div>'),hexLabel:a('<label for="colorPicker_hex">Hex</label>'),hexField:a('<input type="text" id="colorPicker_hex" />')},f="transparent",g;a.fn.colorPicker=function(b){return this.each(function(){var c=a(this),g=a.extend({},a.fn.colorPicker.defaults,b),h=a.fn.colorPicker.toHex(c.val().length>0?c.val():g.pickerDefault),i=e.control.clone(),j=e.palette.clone().attr("id","colorPicker_palette-"+d),k=e.hexLabel.clone(),l=e.hexField.clone(),m=j[0].id,n;a.each(g.colors,function(b){n=e.swatch.clone(),g.colors[b]===f?(n.addClass(f).text("X"),a.fn.colorPicker.bindPalette(l,n,f)):(n.css("background-color","#"+this),a.fn.colorPicker.bindPalette(l,n)),n.appendTo(j)}),k.attr("for","colorPicker_hex-"+d),l.attr({id:"colorPicker_hex-"+d,value:h}),l.bind("keydown",function(b){if(b.keyCode===13){var d=a.fn.colorPicker.toHex(a(this).val());a.fn.colorPicker.changeColor(d?d:c.val())}b.keyCode===27&&a.fn.colorPicker.hidePalette()}),l.bind("keyup",function(b){var d=a.fn.colorPicker.toHex(a(b.target).val());a.fn.colorPicker.previewColor(d?d:c.val())}),a('<div class="colorPicker_hexWrap" />').append(k).appendTo(j),j.find(".colorPicker_hexWrap").append(l),a("body").append(j),j.hide(),i.css("background-color",h),i.bind("click",function(){c.is(":not(:disabled)")&&a.fn.colorPicker.togglePalette(a("#"+m),a(this))}),b&&b.onColorChange?i.data("onColorChange",b.onColorChange):i.data("onColorChange",function(){}),c.after(i),c.bind("change",function(){c.next(".colorPicker-picker").css("background-color",a.fn.colorPicker.toHex(a(this).val()))}),c.val(h).hide(),d++})},a.extend(!0,a.fn.colorPicker,{toHex:function(a){if(a.match(/[0-9A-F]{6}|[0-9A-F]{3}$/i))return a.charAt(0)==="#"?a:"#"+a;if(!a.match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/))return!1;var b=[parseInt(RegExp.$1,10),parseInt(RegExp.$2,10),parseInt(RegExp.$3,10)],c=function(a){if(a.length<2)for(var b=0,c=2-a.length;b<c;b++)a="0"+a;return a};if(b.length===3){var d=c(b[0].toString(16)),e=c(b[1].toString(16)),f=c(b[2].toString(16));return"#"+d+e+f}},checkMouse:function(d,e){var f=c,g=a(d.target).parents("#"+f.attr("id")).length;if(d.target===a(f)[0]||d.target===b[0]||g>0)return;a.fn.colorPicker.hidePalette()},hidePalette:function(){a(document).unbind("mousedown",a.fn.colorPicker.checkMouse),a(".colorPicker-palette").hide()},showPalette:function(c){var d=b.prev("input").val();c.css({top:b.offset().top+b.outerHeight(),left:b.offset().left}),a("#color_value").val(d),c.show(),a(document).bind("mousedown",a.fn.colorPicker.checkMouse)},togglePalette:function(d,e){e&&(b=e),c=d,c.is(":visible")?a.fn.colorPicker.hidePalette():a.fn.colorPicker.showPalette(d)},changeColor:function(c){b.css("background-color",c),b.prev("input").val(c).change(),a.fn.colorPicker.hidePalette(),b.data("onColorChange").call(b,a(b).prev("input").attr("id"),c)},previewColor:function(a){b.css("background-color",a)},bindPalette:function(c,d,e){e=e?e:a.fn.colorPicker.toHex(d.css("background-color")),d.bind({click:function(b){g=e,a.fn.colorPicker.changeColor(e)},mouseover:function(b){g=c.val(),a(this).css("border-color","#598FEF"),c.val(e),a.fn.colorPicker.previewColor(e)},mouseout:function(d){a(this).css("border-color","#000"),c.val(b.css("background-color")),c.val(g),a.fn.colorPicker.previewColor(g)}})}}),a.fn.colorPicker.defaults={pickerDefault:"FFFFFF",colors:["000000","993300","333300","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","999999","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFFF","99CCFF","FFFFFF"],addColors:[]}})(jQuery);/*! Hammer.JS - v1.1.3 - 2014-05-20
- * http://eightmedia.github.io/hammer.js
- *
- * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
- * Licensed under the MIT license */
-
-
-!function(a,b){"use strict";function c(){d.READY||(s.determineEventTypes(),r.each(d.gestures,function(a){u.register(a)}),s.onTouch(d.DOCUMENT,n,u.detect),s.onTouch(d.DOCUMENT,o,u.detect),d.READY=!0)}var d=function v(a,b){return new v.Instance(a,b||{})};d.VERSION="1.1.3",d.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},d.DOCUMENT=document,d.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,d.HAS_TOUCHEVENTS="ontouchstart"in a,d.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),d.NO_MOUSEEVENTS=d.HAS_TOUCHEVENTS&&d.IS_MOBILE||d.HAS_POINTEREVENTS,d.CALCULATE_INTERVAL=25;var e={},f=d.DIRECTION_DOWN="down",g=d.DIRECTION_LEFT="left",h=d.DIRECTION_UP="up",i=d.DIRECTION_RIGHT="right",j=d.POINTER_MOUSE="mouse",k=d.POINTER_TOUCH="touch",l=d.POINTER_PEN="pen",m=d.EVENT_START="start",n=d.EVENT_MOVE="move",o=d.EVENT_END="end",p=d.EVENT_RELEASE="release",q=d.EVENT_TOUCH="touch";d.READY=!1,d.plugins=d.plugins||{},d.gestures=d.gestures||{};var r=d.utils={extend:function(a,c,d){for(var e in c)!c.hasOwnProperty(e)||a[e]!==b&&d||(a[e]=c[e]);return a},on:function(a,b,c){a.addEventListener(b,c,!1)},off:function(a,b,c){a.removeEventListener(b,c,!1)},each:function(a,c,d){var e,f;if("forEach"in a)a.forEach(c,d);else if(a.length!==b){for(e=0,f=a.length;f>e;e++)if(c.call(d,a[e],e,a)===!1)return}else for(e in a)if(a.hasOwnProperty(e)&&c.call(d,a[e],e,a)===!1)return},inStr:function(a,b){return a.indexOf(b)>-1},inArray:function(a,b){if(a.indexOf){var c=a.indexOf(b);return-1===c?!1:c}for(var d=0,e=a.length;e>d;d++)if(a[d]===b)return d;return!1},toArray:function(a){return Array.prototype.slice.call(a,0)},hasParent:function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},getCenter:function(a){var b=[],c=[],d=[],e=[],f=Math.min,g=Math.max;return 1===a.length?{pageX:a[0].pageX,pageY:a[0].pageY,clientX:a[0].clientX,clientY:a[0].clientY}:(r.each(a,function(a){b.push(a.pageX),c.push(a.pageY),d.push(a.clientX),e.push(a.clientY)}),{pageX:(f.apply(Math,b)+g.apply(Math,b))/2,pageY:(f.apply(Math,c)+g.apply(Math,c))/2,clientX:(f.apply(Math,d)+g.apply(Math,d))/2,clientY:(f.apply(Math,e)+g.apply(Math,e))/2})},getVelocity:function(a,b,c){return{x:Math.abs(b/a)||0,y:Math.abs(c/a)||0}},getAngle:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return 180*Math.atan2(d,c)/Math.PI},getDirection:function(a,b){var c=Math.abs(a.clientX-b.clientX),d=Math.abs(a.clientY-b.clientY);return c>=d?a.clientX-b.clientX>0?g:i:a.clientY-b.clientY>0?h:f},getDistance:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return Math.sqrt(c*c+d*d)},getScale:function(a,b){return a.length>=2&&b.length>=2?this.getDistance(b[0],b[1])/this.getDistance(a[0],a[1]):1},getRotation:function(a,b){return a.length>=2&&b.length>=2?this.getAngle(b[1],b[0])-this.getAngle(a[1],a[0]):0},isVertical:function(a){return a==h||a==f},setPrefixedCss:function(a,b,c,d){var e=["","Webkit","Moz","O","ms"];b=r.toCamelCase(b);for(var f=0;f<e.length;f++){var g=b;if(e[f]&&(g=e[f]+g.slice(0,1).toUpperCase()+g.slice(1)),g in a.style){a.style[g]=(null==d||d)&&c||"";break}}},toggleBehavior:function(a,b,c){if(b&&a&&a.style){r.each(b,function(b,d){r.setPrefixedCss(a,d,b,c)});var d=c&&function(){return!1};"none"==b.userSelect&&(a.onselectstart=d),"none"==b.userDrag&&(a.ondragstart=d)}},toCamelCase:function(a){return a.replace(/[_-]([a-z])/g,function(a){return a[1].toUpperCase()})}},s=d.event={preventMouseEvents:!1,started:!1,shouldDetect:!1,on:function(a,b,c,d){var e=b.split(" ");r.each(e,function(b){r.on(a,b,c),d&&d(b)})},off:function(a,b,c,d){var e=b.split(" ");r.each(e,function(b){r.off(a,b,c),d&&d(b)})},onTouch:function(a,b,c){var f=this,g=function(e){var g,h=e.type.toLowerCase(),i=d.HAS_POINTEREVENTS,j=r.inStr(h,"mouse");j&&f.preventMouseEvents||(j&&b==m&&0===e.button?(f.preventMouseEvents=!1,f.shouldDetect=!0):i&&b==m?f.shouldDetect=1===e.buttons||t.matchType(k,e):j||b!=m||(f.preventMouseEvents=!0,f.shouldDetect=!0),i&&b!=o&&t.updatePointer(b,e),f.shouldDetect&&(g=f.doDetect.call(f,e,b,a,c)),g==o&&(f.preventMouseEvents=!1,f.shouldDetect=!1,t.reset()),i&&b==o&&t.updatePointer(b,e))};return this.on(a,e[b],g),g},doDetect:function(a,b,c,d){var e=this.getTouchList(a,b),f=e.length,g=b,h=e.trigger,i=f;b==m?h=q:b==o&&(h=p,i=e.length-(a.changedTouches?a.changedTouches.length:1)),i>0&&this.started&&(g=n),this.started=!0;var j=this.collectEventData(c,g,e,a);return b!=o&&d.call(u,j),h&&(j.changedLength=i,j.eventType=h,d.call(u,j),j.eventType=g,delete j.changedLength),g==o&&(d.call(u,j),this.started=!1),g},determineEventTypes:function(){var b;return b=d.HAS_POINTEREVENTS?a.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:d.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e[m]=b[0],e[n]=b[1],e[o]=b[2],e},getTouchList:function(a,b){if(d.HAS_POINTEREVENTS)return t.getTouchList();if(a.touches){if(b==n)return a.touches;var c=[],e=[].concat(r.toArray(a.touches),r.toArray(a.changedTouches)),f=[];return r.each(e,function(a){r.inArray(c,a.identifier)===!1&&f.push(a),c.push(a.identifier)}),f}return a.identifier=1,[a]},collectEventData:function(a,b,c,d){var e=k;return r.inStr(d.type,"mouse")||t.matchType(j,d)?e=j:t.matchType(l,d)&&(e=l),{center:r.getCenter(c),timeStamp:Date.now(),target:d.target,touches:c,eventType:b,pointerType:e,srcEvent:d,preventDefault:function(){var a=this.srcEvent;a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return u.stopDetect()}}}},t=d.PointerEvent={pointers:{},getTouchList:function(){var a=[];return r.each(this.pointers,function(b){a.push(b)}),a},updatePointer:function(a,b){a==o||a!=o&&1!==b.buttons?delete this.pointers[b.pointerId]:(b.identifier=b.pointerId,this.pointers[b.pointerId]=b)},matchType:function(a,b){if(!b.pointerType)return!1;var c=b.pointerType,d={};return d[j]=c===(b.MSPOINTER_TYPE_MOUSE||j),d[k]=c===(b.MSPOINTER_TYPE_TOUCH||k),d[l]=c===(b.MSPOINTER_TYPE_PEN||l),d[a]},reset:function(){this.pointers={}}},u=d.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(a,b){this.current||(this.stopped=!1,this.current={inst:a,startEvent:r.extend({},b),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(b))},detect:function(a){if(this.current&&!this.stopped){a=this.extendEventData(a);var b=this.current.inst,c=b.options;return r.each(this.gestures,function(d){!this.stopped&&b.enabled&&c[d.name]&&d.handler.call(d,a,b)},this),this.current&&(this.current.lastEvent=a),a.eventType==o&&this.stopDetect(),a}},stopDetect:function(){this.previous=r.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(a,b,c,e,f){var g=this.current,h=!1,i=g.lastCalcEvent,j=g.lastCalcData;i&&a.timeStamp-i.timeStamp>d.CALCULATE_INTERVAL&&(b=i.center,c=a.timeStamp-i.timeStamp,e=a.center.clientX-i.center.clientX,f=a.center.clientY-i.center.clientY,h=!0),(a.eventType==q||a.eventType==p)&&(g.futureCalcEvent=a),(!g.lastCalcEvent||h)&&(j.velocity=r.getVelocity(c,e,f),j.angle=r.getAngle(b,a.center),j.direction=r.getDirection(b,a.center),g.lastCalcEvent=g.futureCalcEvent||a,g.futureCalcEvent=a),a.velocityX=j.velocity.x,a.velocityY=j.velocity.y,a.interimAngle=j.angle,a.interimDirection=j.direction},extendEventData:function(a){var b=this.current,c=b.startEvent,d=b.lastEvent||c;(a.eventType==q||a.eventType==p)&&(c.touches=[],r.each(a.touches,function(a){c.touches.push({clientX:a.clientX,clientY:a.clientY})}));var e=a.timeStamp-c.timeStamp,f=a.center.clientX-c.center.clientX,g=a.center.clientY-c.center.clientY;return this.getCalculatedData(a,d.center,e,f,g),r.extend(a,{startEvent:c,deltaTime:e,deltaX:f,deltaY:g,distance:r.getDistance(c.center,a.center),angle:r.getAngle(c.center,a.center),direction:r.getDirection(c.center,a.center),scale:r.getScale(c.touches,a.touches),rotation:r.getRotation(c.touches,a.touches)}),a},register:function(a){var c=a.defaults||{};return c[a.name]===b&&(c[a.name]=!0),r.extend(d.defaults,c,!0),a.index=a.index||1e3,this.gestures.push(a),this.gestures.sort(function(a,b){return a.index<b.index?-1:a.index>b.index?1:0}),this.gestures}};d.Instance=function(a,b){var e=this;c(),this.element=a,this.enabled=!0,r.each(b,function(a,c){delete b[c],b[r.toCamelCase(c)]=a}),this.options=r.extend(r.extend({},d.defaults),b||{}),this.options.behavior&&r.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=s.onTouch(a,m,function(a){e.enabled&&a.eventType==m?u.startDetect(e,a):a.eventType==q&&u.detect(a)}),this.eventHandlers=[]},d.Instance.prototype={on:function(a,b){var c=this;return s.on(c.element,a,b,function(a){c.eventHandlers.push({gesture:a,handler:b})}),c},off:function(a,b){var c=this;return s.off(c.element,a,b,function(a){var d=r.inArray({gesture:a,handler:b});d!==!1&&c.eventHandlers.splice(d,1)}),c},trigger:function(a,b){b||(b={});var c=d.DOCUMENT.createEvent("Event");c.initEvent(a,!0,!0),c.gesture=b;var e=this.element;return r.hasParent(b.target,e)&&(e=b.target),e.dispatchEvent(c),this},enable:function(a){return this.enabled=a,this},dispose:function(){var a,b;for(r.toggleBehavior(this.element,this.options.behavior,!1),a=-1;b=this.eventHandlers[++a];)r.off(this.element,b.gesture,b.handler);return this.eventHandlers=[],s.off(this.element,e[m],this.eventStartHandler),null}},function(a){function b(b,d){var e=u.current;if(!(d.options.dragMaxTouches>0&&b.touches.length>d.options.dragMaxTouches))switch(b.eventType){case m:c=!1;break;case n:if(b.distance<d.options.dragMinDistance&&e.name!=a)return;var j=e.startEvent.center;if(e.name!=a&&(e.name=a,d.options.dragDistanceCorrection&&b.distance>0)){var k=Math.abs(d.options.dragMinDistance/b.distance);j.pageX+=b.deltaX*k,j.pageY+=b.deltaY*k,j.clientX+=b.deltaX*k,j.clientY+=b.deltaY*k,b=u.extendEventData(b)}(e.lastEvent.dragLockToAxis||d.options.dragLockToAxis&&d.options.dragLockMinDistance<=b.distance)&&(b.dragLockToAxis=!0);var l=e.lastEvent.direction;b.dragLockToAxis&&l!==b.direction&&(b.direction=r.isVertical(l)?b.deltaY<0?h:f:b.deltaX<0?g:i),c||(d.trigger(a+"start",b),c=!0),d.trigger(a,b),d.trigger(a+b.direction,b);var q=r.isVertical(b.direction);(d.options.dragBlockVertical&&q||d.options.dragBlockHorizontal&&!q)&&b.preventDefault();break;case p:c&&b.changedLength<=d.options.dragMaxTouches&&(d.trigger(a+"end",b),c=!1);break;case o:c=!1}}var c=!1;d.gestures.Drag={name:a,index:50,handler:b,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),d.gestures.Gesture={name:"gesture",index:1337,handler:function(a,b){b.trigger(this.name,a)}},function(a){function b(b,d){var e=d.options,f=u.current;switch(b.eventType){case m:clearTimeout(c),f.name=a,c=setTimeout(function(){f&&f.name==a&&d.trigger(a,b)},e.holdTimeout);break;case n:b.distance>e.holdThreshold&&clearTimeout(c);break;case p:clearTimeout(c)}}var c;d.gestures.Hold={name:a,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:b}}("hold"),d.gestures.Release={name:"release",index:1/0,handler:function(a,b){a.eventType==p&&b.trigger(this.name,a)}},d.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(a,b){if(a.eventType==p){var c=a.touches.length,d=b.options;if(c<d.swipeMinTouches||c>d.swipeMaxTouches)return;(a.velocityX>d.swipeVelocityX||a.velocityY>d.swipeVelocityY)&&(b.trigger(this.name,a),b.trigger(this.name+a.direction,a))}}},function(a){function b(b,d){var e,f,g=d.options,h=u.current,i=u.previous;switch(b.eventType){case m:c=!1;break;case n:c=c||b.distance>g.tapMaxDistance;break;case o:!r.inStr(b.srcEvent.type,"cancel")&&b.deltaTime<g.tapMaxTime&&!c&&(e=i&&i.lastEvent&&b.timeStamp-i.lastEvent.timeStamp,f=!1,i&&i.name==a&&e&&e<g.doubleTapInterval&&b.distance<g.doubleTapDistance&&(d.trigger("doubletap",b),f=!0),(!f||g.tapAlways)&&(h.name=a,d.trigger(h.name,b)))}}var c=!1;d.gestures.Tap={name:a,index:100,handler:b,defaults:{tapMaxTime:250,tapMaxDistance:10,tapAlways:!0,doubleTapDistance:20,doubleTapInterval:300}}}("tap"),d.gestures.Touch={name:"touch",index:-1/0,defaults:{preventDefault:!1,preventMouse:!1},handler:function(a,b){return b.options.preventMouse&&a.pointerType==j?void a.stopDetect():(b.options.preventDefault&&a.preventDefault(),void(a.eventType==q&&b.trigger("touch",a)))}},function(a){function b(b,d){switch(b.eventType){case m:c=!1;break;case n:if(b.touches.length<2)return;var e=Math.abs(1-b.scale),f=Math.abs(b.rotation);if(e<d.options.transformMinScale&&f<d.options.transformMinRotation)return;u.current.name=a,c||(d.trigger(a+"start",b),c=!0),d.trigger(a,b),f>d.options.transformMinRotation&&d.trigger("rotate",b),e>d.options.transformMinScale&&(d.trigger("pinch",b),d.trigger("pinch"+(b.scale<1?"in":"out"),b));break;case p:c&&b.changedLength<2&&(d.trigger(a+"end",b),c=!1)}}var c=!1;d.gestures.Transform={name:a,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:b}}("transform"),"function"==typeof define&&define.amd?define(function(){return d}):"undefined"!=typeof module&&module.exports?module.exports=d:a.Hammer=d}(window);
-/*! jQuery plugin for Hammer.JS - v1.1.3 - 2014-05-20
- * http://eightmedia.github.com/hammer.js
- *
- * Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
- * Licensed under the MIT license */
-
-!function(a,b){"use strict";function c(a,c){Date.now||(Date.now=function(){return(new Date).getTime()}),a.utils.each(["on","off"],function(d){a.utils[d]=function(a,e,f){c(a)[d](e,function(a){var d=c.extend({},a.originalEvent,a);d.button===b&&(d.button=a.which-1),f.call(this,d)})}}),a.Instance.prototype.trigger=function(a,b){var d=c(this.element);return d.has(b.target).length&&(d=c(b.target)),d.trigger({type:a,gesture:b})},c.fn.hammer=function(b){return this.each(function(){var d=c(this),e=d.data("hammer");e?e&&b&&a.utils.extend(e.options,b):d.data("hammer",new a(this,b||{}))})}}"function"==typeof define&&define.amd?define(["hammerjs","jquery"],c):c(a.Hammer,a.jQuery||a.Zepto)}(window);
-/*
- * jQuery Hotkeys Plugin
- * Copyright 2010, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- *
- * Based upon the plugin by Tzury Bar Yochay:
- * http://github.com/tzuryby/hotkeys
- *
- * Original idea by:
- * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
- */
-
-(function(jQuery){
-
-  jQuery.hotkeys = {
-    version: "0.8",
-
-    specialKeys: {
-      8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
-      20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
-      37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
-      96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
-      104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
-      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: "scroll", 191: "/", 224: "meta"
-    },
-
-    shiftNums: {
-      "`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
-      "8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<",
-      ".": ">",  "/": "?",  "\\": "|"
-    }
-  };
-
-  function keyHandler( handleObj ) {
-    // Only care when a possible input has been specified
-    if ( typeof handleObj.data !== "string" ) {
-      return;
-    }
-
-    var origHandler = handleObj.handler,
-        keys = handleObj.data.toLowerCase().split(" "),
-        textAcceptingInputTypes = ["text", "password", "number", "email", "url", "range", "date", "month", "week", "time", "datetime", "datetime-local", "search", "color"];
-
-    handleObj.handler = function( event ) {
-      // Don't fire in text-accepting inputs that we didn't directly bind to
-      if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
-          jQuery.inArray(event.target.type, textAcceptingInputTypes) > -1 ) ) {
-        return;
-      }
-
-      // Keypress represents characters, not special keys
-      var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[ event.which ],
-          character = String.fromCharCode( event.which ).toLowerCase(),
-          key, modif = "", possible = {};
-
-      // check combinations (alt|ctrl|shift+anything)
-      if ( event.altKey && special !== "alt" ) {
-        modif += "alt+";
-      }
-
-      if ( event.ctrlKey && special !== "ctrl" ) {
-        modif += "ctrl+";
-      }
-
-      // TODO: Need to make sure this works consistently across platforms
-      if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
-        modif += "meta+";
-      }
-
-      if ( event.shiftKey && special !== "shift" ) {
-        modif += "shift+";
-      }
-
-      if ( special ) {
-        possible[ modif + special ] = true;
-
-      } else {
-        possible[ modif + character ] = true;
-        possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
-
-        // "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
-        if ( modif === "shift+" ) {
-          possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
-        }
-      }
-
-      for ( var i = 0, l = keys.length; i < l; i++ ) {
-        if ( possible[ keys[i] ] ) {
-          return origHandler.apply( this, arguments );
-        }
-      }
-    };
-  }
-
-  jQuery.each([ "keydown", "keyup", "keypress" ], function() {
-    jQuery.event.special[ this ] = { add: keyHandler };
-  });
-
-})( jQuery );//https://github.com/googledrive/cors-upload-sample/commits/master/upload.js
-
-
-//     Underscore.js 1.8.3
-//     http://underscorejs.org
-//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
-//     Underscore may be freely distributed under the MIT license.
-
-(function() {
-
-  // Baseline setup
-  // --------------
-
-  // Establish the root object, `window` in the browser, or `exports` on the server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var
-      push             = ArrayProto.push,
-      slice            = ArrayProto.slice,
-      toString         = ObjProto.toString,
-      hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-      nativeIsArray      = Array.isArray,
-      nativeKeys         = Object.keys,
-      nativeBind         = FuncProto.bind,
-      nativeCreate       = Object.create;
-
-  // Naked function reference for surrogate-prototype-swapping.
-  var Ctor = function(){};
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) {
-    if (obj instanceof _) return obj;
-    if (!(this instanceof _)) return new _(obj);
-    this._wrapped = obj;
-  };
-
-  // Export the Underscore object for **Node.js**, with
-  // backwards-compatibility for the old `require()` API. If we're in
-  // the browser, add `_` as a global object.
-  if (typeof exports !== 'undefined') {
-    if (typeof module !== 'undefined' && module.exports) {
-      exports = module.exports = _;
-    }
-    exports._ = _;
-  } else {
-    root._ = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.8.3';
-
-  // Internal function that returns an efficient (for current engines) version
-  // of the passed-in callback, to be repeatedly applied in other Underscore
-  // functions.
-  var optimizeCb = function(func, context, argCount) {
-    if (context === void 0) return func;
-    switch (argCount == null ? 3 : argCount) {
-      case 1: return function(value) {
-        return func.call(context, value);
-      };
-      case 2: return function(value, other) {
-        return func.call(context, value, other);
-      };
-      case 3: return function(value, index, collection) {
-        return func.call(context, value, index, collection);
-      };
-      case 4: return function(accumulator, value, index, collection) {
-        return func.call(context, accumulator, value, index, collection);
-      };
-    }
-    return function() {
-      return func.apply(context, arguments);
-    };
-  };
-
-  // A mostly-internal function to generate callbacks that can be applied
-  // to each element in a collection, returning the desired result — either
-  // identity, an arbitrary callback, a property matcher, or a property accessor.
-  var cb = function(value, context, argCount) {
-    if (value == null) return _.identity;
-    if (_.isFunction(value)) return optimizeCb(value, context, argCount);
-    if (_.isObject(value)) return _.matcher(value);
-    return _.property(value);
-  };
-  _.iteratee = function(value, context) {
-    return cb(value, context, Infinity);
-  };
-
-  // An internal function for creating assigner functions.
-  var createAssigner = function(keysFunc, undefinedOnly) {
-    return function(obj) {
-      var length = arguments.length;
-      if (length < 2 || obj == null) return obj;
-      for (var index = 1; index < length; index++) {
-        var source = arguments[index],
-            keys = keysFunc(source),
-            l = keys.length;
-        for (var i = 0; i < l; i++) {
-          var key = keys[i];
-          if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];
-        }
-      }
-      return obj;
-    };
-  };
-
-  // An internal function for creating a new object that inherits from another.
-  var baseCreate = function(prototype) {
-    if (!_.isObject(prototype)) return {};
-    if (nativeCreate) return nativeCreate(prototype);
-    Ctor.prototype = prototype;
-    var result = new Ctor;
-    Ctor.prototype = null;
-    return result;
-  };
-
-  var property = function(key) {
-    return function(obj) {
-      return obj == null ? void 0 : obj[key];
-    };
-  };
-
-  // Helper for collection methods to determine whether a collection
-  // should be iterated as an array or as an object
-  // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
-  // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094
-  var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;
-  var getLength = property('length');
-  var isArrayLike = function(collection) {
-    var length = getLength(collection);
-    return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;
-  };
-
-  // Collection Functions
-  // --------------------
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles raw objects in addition to array-likes. Treats all
-  // sparse array-likes as if they were dense.
-  _.each = _.forEach = function(obj, iteratee, context) {
-    iteratee = optimizeCb(iteratee, context);
-    var i, length;
-    if (isArrayLike(obj)) {
-      for (i = 0, length = obj.length; i < length; i++) {
-        iteratee(obj[i], i, obj);
-      }
-    } else {
-      var keys = _.keys(obj);
-      for (i = 0, length = keys.length; i < length; i++) {
-        iteratee(obj[keys[i]], keys[i], obj);
-      }
-    }
-    return obj;
-  };
-
-  // Return the results of applying the iteratee to each element.
-  _.map = _.collect = function(obj, iteratee, context) {
-    iteratee = cb(iteratee, context);
-    var keys = !isArrayLike(obj) && _.keys(obj),
-        length = (keys || obj).length,
-        results = Array(length);
-    for (var index = 0; index < length; index++) {
-      var currentKey = keys ? keys[index] : index;
-      results[index] = iteratee(obj[currentKey], currentKey, obj);
-    }
-    return results;
-  };
-
-  // Create a reducing function iterating left or right.
-  function createReduce(dir) {
-    // Optimized iterator function as using arguments.length
-    // in the main function will deoptimize the, see #1991.
-    function iterator(obj, iteratee, memo, keys, index, length) {
-      for (; index >= 0 && index < length; index += dir) {
-        var currentKey = keys ? keys[index] : index;
-        memo = iteratee(memo, obj[currentKey], currentKey, obj);
-      }
-      return memo;
-    }
-
-    return function(obj, iteratee, memo, context) {
-      iteratee = optimizeCb(iteratee, context, 4);
-      var keys = !isArrayLike(obj) && _.keys(obj),
-          length = (keys || obj).length,
-          index = dir > 0 ? 0 : length - 1;
-      // Determine the initial value if none is provided.
-      if (arguments.length < 3) {
-        memo = obj[keys ? keys[index] : index];
-        index += dir;
-      }
-      return iterator(obj, iteratee, memo, keys, index, length);
-    };
-  }
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`.
-  _.reduce = _.foldl = _.inject = createReduce(1);
-
-  // The right-associative version of reduce, also known as `foldr`.
-  _.reduceRight = _.foldr = createReduce(-1);
-
-  // Return the first value which passes a truth test. Aliased as `detect`.
-  _.find = _.detect = function(obj, predicate, context) {
-    var key;
-    if (isArrayLike(obj)) {
-      key = _.findIndex(obj, predicate, context);
-    } else {
-      key = _.findKey(obj, predicate, context);
-    }
-    if (key !== void 0 && key !== -1) return obj[key];
-  };
-
-  // Return all the elements that pass a truth test.
-  // Aliased as `select`.
-  _.filter = _.select = function(obj, predicate, context) {
-    var results = [];
-    predicate = cb(predicate, context);
-    _.each(obj, function(value, index, list) {
-      if (predicate(value, index, list)) results.push(value);
-    });
-    return results;
-  };
-
-  // Return all the elements for which a truth test fails.
-  _.reject = function(obj, predicate, context) {
-    return _.filter(obj, _.negate(cb(predicate)), context);
-  };
-
-  // Determine whether all of the elements match a truth test.
-  // Aliased as `all`.
-  _.every = _.all = function(obj, predicate, context) {
-    predicate = cb(predicate, context);
-    var keys = !isArrayLike(obj) && _.keys(obj),
-        length = (keys || obj).length;
-    for (var index = 0; index < length; index++) {
-      var currentKey = keys ? keys[index] : index;
-      if (!predicate(obj[currentKey], currentKey, obj)) return false;
-    }
-    return true;
-  };
-
-  // Determine if at least one element in the object matches a truth test.
-  // Aliased as `any`.
-  _.some = _.any = function(obj, predicate, context) {
-    predicate = cb(predicate, context);
-    var keys = !isArrayLike(obj) && _.keys(obj),
-        length = (keys || obj).length;
-    for (var index = 0; index < length; index++) {
-      var currentKey = keys ? keys[index] : index;
-      if (predicate(obj[currentKey], currentKey, obj)) return true;
-    }
-    return false;
-  };
-
-  // Determine if the array or object contains a given item (using `===`).
-  // Aliased as `includes` and `include`.
-  _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {
-    if (!isArrayLike(obj)) obj = _.values(obj);
-    if (typeof fromIndex != 'number' || guard) fromIndex = 0;
-    return _.indexOf(obj, item, fromIndex) >= 0;
-  };
-
-  // Invoke a method (with arguments) on every item in a collection.
-  _.invoke = function(obj, method) {
-    var args = slice.call(arguments, 2);
-    var isFunc = _.isFunction(method);
-    return _.map(obj, function(value) {
-      var func = isFunc ? method : value[method];
-      return func == null ? func : func.apply(value, args);
-    });
-  };
-
-  // Convenience version of a common use case of `map`: fetching a property.
-  _.pluck = function(obj, key) {
-    return _.map(obj, _.property(key));
-  };
-
-  // Convenience version of a common use case of `filter`: selecting only objects
-  // containing specific `key:value` pairs.
-  _.where = function(obj, attrs) {
-    return _.filter(obj, _.matcher(attrs));
-  };
-
-  // Convenience version of a common use case of `find`: getting the first object
-  // containing specific `key:value` pairs.
-  _.findWhere = function(obj, attrs) {
-    return _.find(obj, _.matcher(attrs));
-  };
-
-  // Return the maximum element (or element-based computation).
-  _.max = function(obj, iteratee, context) {
-    var result = -Infinity, lastComputed = -Infinity,
-        value, computed;
-    if (iteratee == null && obj != null) {
-      obj = isArrayLike(obj) ? obj : _.values(obj);
-      for (var i = 0, length = obj.length; i < length; i++) {
-        value = obj[i];
-        if (value > result) {
-          result = value;
-        }
-      }
-    } else {
-      iteratee = cb(iteratee, context);
-      _.each(obj, function(value, index, list) {
-        computed = iteratee(value, index, list);
-        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {
-          result = value;
-          lastComputed = computed;
-        }
-      });
-    }
-    return result;
-  };
-
-  // Return the minimum element (or element-based computation).
-  _.min = function(obj, iteratee, context) {
-    var result = Infinity, lastComputed = Infinity,
-        value, computed;
-    if (iteratee == null && obj != null) {
-      obj = isArrayLike(obj) ? obj : _.values(obj);
-      for (var i = 0, length = obj.length; i < length; i++) {
-        value = obj[i];
-        if (value < result) {
-          result = value;
-        }
-      }
-    } else {
-      iteratee = cb(iteratee, context);
-      _.each(obj, function(value, index, list) {
-        computed = iteratee(value, index, list);
-        if (computed < lastComputed || computed === Infinity && result === Infinity) {
-          result = value;
-          lastComputed = computed;
-        }
-      });
-    }
-    return result;
-  };
-
-  // Shuffle a collection, using the modern version of the
-  // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
-  _.shuffle = function(obj) {
-    var set = isArrayLike(obj) ? obj : _.values(obj);
-    var length = set.length;
-    var shuffled = Array(length);
-    for (var index = 0, rand; index < length; index++) {
-      rand = _.random(0, index);
-      if (rand !== index) shuffled[index] = shuffled[rand];
-      shuffled[rand] = set[index];
-    }
-    return shuffled;
-  };
-
-  // Sample **n** random values from a collection.
-  // If **n** is not specified, returns a single random element.
-  // The internal `guard` argument allows it to work with `map`.
-  _.sample = function(obj, n, guard) {
-    if (n == null || guard) {
-      if (!isArrayLike(obj)) obj = _.values(obj);
-      return obj[_.random(obj.length - 1)];
-    }
-    return _.shuffle(obj).slice(0, Math.max(0, n));
-  };
-
-  // Sort the object's values by a criterion produced by an iteratee.
-  _.sortBy = function(obj, iteratee, context) {
-    iteratee = cb(iteratee, context);
-    return _.pluck(_.map(obj, function(value, index, list) {
-      return {
-        value: value,
-        index: index,
-        criteria: iteratee(value, index, list)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria;
-      var b = right.criteria;
-      if (a !== b) {
-        if (a > b || a === void 0) return 1;
-        if (a < b || b === void 0) return -1;
-      }
-      return left.index - right.index;
-    }), 'value');
-  };
-
-  // An internal function used for aggregate "group by" operations.
-  var group = function(behavior) {
-    return function(obj, iteratee, context) {
-      var result = {};
-      iteratee = cb(iteratee, context);
-      _.each(obj, function(value, index) {
-        var key = iteratee(value, index, obj);
-        behavior(result, value, key);
-      });
-      return result;
-    };
-  };
-
-  // Groups the object's values by a criterion. Pass either a string attribute
-  // to group by, or a function that returns the criterion.
-  _.groupBy = group(function(result, value, key) {
-    if (_.has(result, key)) result[key].push(value); else result[key] = [value];
-  });
-
-  // Indexes the object's values by a criterion, similar to `groupBy`, but for
-  // when you know that your index values will be unique.
-  _.indexBy = group(function(result, value, key) {
-    result[key] = value;
-  });
-
-  // Counts instances of an object that group by a certain criterion. Pass
-  // either a string attribute to count by, or a function that returns the
-  // criterion.
-  _.countBy = group(function(result, value, key) {
-    if (_.has(result, key)) result[key]++; else result[key] = 1;
-  });
-
-  // Safely create a real, live array from anything iterable.
-  _.toArray = function(obj) {
-    if (!obj) return [];
-    if (_.isArray(obj)) return slice.call(obj);
-    if (isArrayLike(obj)) return _.map(obj, _.identity);
-    return _.values(obj);
-  };
-
-  // Return the number of elements in an object.
-  _.size = function(obj) {
-    if (obj == null) return 0;
-    return isArrayLike(obj) ? obj.length : _.keys(obj).length;
-  };
-
-  // Split a collection into two arrays: one whose elements all satisfy the given
-  // predicate, and one whose elements all do not satisfy the predicate.
-  _.partition = function(obj, predicate, context) {
-    predicate = cb(predicate, context);
-    var pass = [], fail = [];
-    _.each(obj, function(value, key, obj) {
-      (predicate(value, key, obj) ? pass : fail).push(value);
-    });
-    return [pass, fail];
-  };
-
-  // Array Functions
-  // ---------------
-
-  // Get the first element of an array. Passing **n** will return the first N
-  // values in the array. Aliased as `head` and `take`. The **guard** check
-  // allows it to work with `_.map`.
-  _.first = _.head = _.take = function(array, n, guard) {
-    if (array == null) return void 0;
-    if (n == null || guard) return array[0];
-    return _.initial(array, array.length - n);
-  };
-
-  // Returns everything but the last entry of the array. Especially useful on
-  // the arguments object. Passing **n** will return all the values in
-  // the array, excluding the last N.
-  _.initial = function(array, n, guard) {
-    return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));
-  };
-
-  // Get the last element of an array. Passing **n** will return the last N
-  // values in the array.
-  _.last = function(array, n, guard) {
-    if (array == null) return void 0;
-    if (n == null || guard) return array[array.length - 1];
-    return _.rest(array, Math.max(0, array.length - n));
-  };
-
-  // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.
-  // Especially useful on the arguments object. Passing an **n** will return
-  // the rest N values in the array.
-  _.rest = _.tail = _.drop = function(array, n, guard) {
-    return slice.call(array, n == null || guard ? 1 : n);
-  };
-
-  // Trim out all falsy values from an array.
-  _.compact = function(array) {
-    return _.filter(array, _.identity);
-  };
-
-  // Internal implementation of a recursive `flatten` function.
-  var flatten = function(input, shallow, strict, startIndex) {
-    var output = [], idx = 0;
-    for (var i = startIndex || 0, length = getLength(input); i < length; i++) {
-      var value = input[i];
-      if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {
-        //flatten current level of array or arguments object
-        if (!shallow) value = flatten(value, shallow, strict);
-        var j = 0, len = value.length;
-        output.length += len;
-        while (j < len) {
-          output[idx++] = value[j++];
-        }
-      } else if (!strict) {
-        output[idx++] = value;
-      }
-    }
-    return output;
-  };
-
-  // Flatten out an array, either recursively (by default), or just one level.
-  _.flatten = function(array, shallow) {
-    return flatten(array, shallow, false);
-  };
-
-  // Return a version of the array that does not contain the specified value(s).
-  _.without = function(array) {
-    return _.difference(array, slice.call(arguments, 1));
-  };
-
-  // Produce a duplicate-free version of the array. If the array has already
-  // been sorted, you have the option of using a faster algorithm.
-  // Aliased as `unique`.
-  _.uniq = _.unique = function(array, isSorted, iteratee, context) {
-    if (!_.isBoolean(isSorted)) {
-      context = iteratee;
-      iteratee = isSorted;
-      isSorted = false;
-    }
-    if (iteratee != null) iteratee = cb(iteratee, context);
-    var result = [];
-    var seen = [];
-    for (var i = 0, length = getLength(array); i < length; i++) {
-      var value = array[i],
-          computed = iteratee ? iteratee(value, i, array) : value;
-      if (isSorted) {
-        if (!i || seen !== computed) result.push(value);
-        seen = computed;
-      } else if (iteratee) {
-        if (!_.contains(seen, computed)) {
-          seen.push(computed);
-          result.push(value);
-        }
-      } else if (!_.contains(result, value)) {
-        result.push(value);
-      }
-    }
-    return result;
-  };
-
-  // Produce an array that contains the union: each distinct element from all of
-  // the passed-in arrays.
-  _.union = function() {
-    return _.uniq(flatten(arguments, true, true));
-  };
-
-  // Produce an array that contains every item shared between all the
-  // passed-in arrays.
-  _.intersection = function(array) {
-    var result = [];
-    var argsLength = arguments.length;
-    for (var i = 0, length = getLength(array); i < length; i++) {
-      var item = array[i];
-      if (_.contains(result, item)) continue;
-      for (var j = 1; j < argsLength; j++) {
-        if (!_.contains(arguments[j], item)) break;
-      }
-      if (j === argsLength) result.push(item);
-    }
-    return result;
-  };
-
-  // Take the difference between one array and a number of other arrays.
-  // Only the elements present in just the first array will remain.
-  _.difference = function(array) {
-    var rest = flatten(arguments, true, true, 1);
-    return _.filter(array, function(value){
-      return !_.contains(rest, value);
-    });
-  };
-
-  // Zip together multiple lists into a single array -- elements that share
-  // an index go together.
-  _.zip = function() {
-    return _.unzip(arguments);
-  };
-
-  // Complement of _.zip. Unzip accepts an array of arrays and groups
-  // each array's elements on shared indices
-  _.unzip = function(array) {
-    var length = array && _.max(array, getLength).length || 0;
-    var result = Array(length);
-
-    for (var index = 0; index < length; index++) {
-      result[index] = _.pluck(array, index);
-    }
-    return result;
-  };
-
-  // Converts lists into objects. Pass either a single array of `[key, value]`
-  // pairs, or two parallel arrays of the same length -- one of keys, and one of
-  // the corresponding values.
-  _.object = function(list, values) {
-    var result = {};
-    for (var i = 0, length = getLength(list); i < length; i++) {
-      if (values) {
-        result[list[i]] = values[i];
-      } else {
-        result[list[i][0]] = list[i][1];
-      }
-    }
-    return result;
-  };
-
-  // Generator function to create the findIndex and findLastIndex functions
-  function createPredicateIndexFinder(dir) {
-    return function(array, predicate, context) {
-      predicate = cb(predicate, context);
-      var length = getLength(array);
-      var index = dir > 0 ? 0 : length - 1;
-      for (; index >= 0 && index < length; index += dir) {
-        if (predicate(array[index], index, array)) return index;
-      }
-      return -1;
-    };
-  }
-
-  // Returns the first index on an array-like that passes a predicate test
-  _.findIndex = createPredicateIndexFinder(1);
-  _.findLastIndex = createPredicateIndexFinder(-1);
-
-  // Use a comparator function to figure out the smallest index at which
-  // an object should be inserted so as to maintain order. Uses binary search.
-  _.sortedIndex = function(array, obj, iteratee, context) {
-    iteratee = cb(iteratee, context, 1);
-    var value = iteratee(obj);
-    var low = 0, high = getLength(array);
-    while (low < high) {
-      var mid = Math.floor((low + high) / 2);
-      if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;
-    }
-    return low;
-  };
-
-  // Generator function to create the indexOf and lastIndexOf functions
-  function createIndexFinder(dir, predicateFind, sortedIndex) {
-    return function(array, item, idx) {
-      var i = 0, length = getLength(array);
-      if (typeof idx == 'number') {
-        if (dir > 0) {
-          i = idx >= 0 ? idx : Math.max(idx + length, i);
-        } else {
-          length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
-        }
-      } else if (sortedIndex && idx && length) {
-        idx = sortedIndex(array, item);
-        return array[idx] === item ? idx : -1;
-      }
-      if (item !== item) {
-        idx = predicateFind(slice.call(array, i, length), _.isNaN);
-        return idx >= 0 ? idx + i : -1;
-      }
-      for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
-        if (array[idx] === item) return idx;
-      }
-      return -1;
-    };
-  }
-
-  // Return the position of the first occurrence of an item in an array,
-  // or -1 if the item is not included in the array.
-  // If the array is large and already in sort order, pass `true`
-  // for **isSorted** to use binary search.
-  _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);
-  _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);
-
-  // Generate an integer Array containing an arithmetic progression. A port of
-  // the native Python `range()` function. See
-  // [the Python documentation](http://docs.python.org/library/functions.html#range).
-  _.range = function(start, stop, step) {
-    if (stop == null) {
-      stop = start || 0;
-      start = 0;
-    }
-    step = step || 1;
-
-    var length = Math.max(Math.ceil((stop - start) / step), 0);
-    var range = Array(length);
-
-    for (var idx = 0; idx < length; idx++, start += step) {
-      range[idx] = start;
-    }
-
-    return range;
-  };
-
-  // Function (ahem) Functions
-  // ------------------
-
-  // Determines whether to execute a function as a constructor
-  // or a normal function with the provided arguments
-  var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {
-    if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);
-    var self = baseCreate(sourceFunc.prototype);
-    var result = sourceFunc.apply(self, args);
-    if (_.isObject(result)) return result;
-    return self;
-  };
-
-  // Create a function bound to a given object (assigning `this`, and arguments,
-  // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if
-  // available.
-  _.bind = function(func, context) {
-    if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
-    if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');
-    var args = slice.call(arguments, 2);
-    var bound = function() {
-      return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));
-    };
-    return bound;
-  };
-
-  // Partially apply a function by creating a version that has had some of its
-  // arguments pre-filled, without changing its dynamic `this` context. _ acts
-  // as a placeholder, allowing any combination of arguments to be pre-filled.
-  _.partial = function(func) {
-    var boundArgs = slice.call(arguments, 1);
-    var bound = function() {
-      var position = 0, length = boundArgs.length;
-      var args = Array(length);
-      for (var i = 0; i < length; i++) {
-        args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];
-      }
-      while (position < arguments.length) args.push(arguments[position++]);
-      return executeBound(func, bound, this, this, args);
-    };
-    return bound;
-  };
-
-  // Bind a number of an object's methods to that object. Remaining arguments
-  // are the method names to be bound. Useful for ensuring that all callbacks
-  // defined on an object belong to it.
-  _.bindAll = function(obj) {
-    var i, length = arguments.length, key;
-    if (length <= 1) throw new Error('bindAll must be passed function names');
-    for (i = 1; i < length; i++) {
-      key = arguments[i];
-      obj[key] = _.bind(obj[key], obj);
-    }
-    return obj;
-  };
-
-  // Memoize an expensive function by storing its results.
-  _.memoize = function(func, hasher) {
-    var memoize = function(key) {
-      var cache = memoize.cache;
-      var address = '' + (hasher ? hasher.apply(this, arguments) : key);
-      if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);
-      return cache[address];
-    };
-    memoize.cache = {};
-    return memoize;
-  };
-
-  // Delays a function for the given number of milliseconds, and then calls
-  // it with the arguments supplied.
-  _.delay = function(func, wait) {
-    var args = slice.call(arguments, 2);
-    return setTimeout(function(){
-      return func.apply(null, args);
-    }, wait);
-  };
-
-  // Defers a function, scheduling it to run after the current call stack has
-  // cleared.
-  _.defer = _.partial(_.delay, _, 1);
-
-  // Returns a function, that, when invoked, will only be triggered at most once
-  // during a given window of time. Normally, the throttled function will run
-  // as much as it can, without ever going more than once per `wait` duration;
-  // but if you'd like to disable the execution on the leading edge, pass
-  // `{leading: false}`. To disable execution on the trailing edge, ditto.
-  _.throttle = function(func, wait, options) {
-    var context, args, result;
-    var timeout = null;
-    var previous = 0;
-    if (!options) options = {};
-    var later = function() {
-      previous = options.leading === false ? 0 : _.now();
-      timeout = null;
-      result = func.apply(context, args);
-      if (!timeout) context = args = null;
-    };
-    return function() {
-      var now = _.now();
-      if (!previous && options.leading === false) previous = now;
-      var remaining = wait - (now - previous);
-      context = this;
-      args = arguments;
-      if (remaining <= 0 || remaining > wait) {
-        if (timeout) {
-          clearTimeout(timeout);
-          timeout = null;
-        }
-        previous = now;
-        result = func.apply(context, args);
-        if (!timeout) context = args = null;
-      } else if (!timeout && options.trailing !== false) {
-        timeout = setTimeout(later, remaining);
-      }
-      return result;
-    };
-  };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // N milliseconds. If `immediate` is passed, trigger the function on the
-  // leading edge, instead of the trailing.
-  _.debounce = function(func, wait, immediate) {
-    var timeout, args, context, timestamp, result;
-
-    var later = function() {
-      var last = _.now() - timestamp;
-
-      if (last < wait && last >= 0) {
-        timeout = setTimeout(later, wait - last);
-      } else {
-        timeout = null;
-        if (!immediate) {
-          result = func.apply(context, args);
-          if (!timeout) context = args = null;
-        }
-      }
-    };
-
-    return function() {
-      context = this;
-      args = arguments;
-      timestamp = _.now();
-      var callNow = immediate && !timeout;
-      if (!timeout) timeout = setTimeout(later, wait);
-      if (callNow) {
-        result = func.apply(context, args);
-        context = args = null;
-      }
-
-      return result;
-    };
-  };
-
-  // Returns the first function passed as an argument to the second,
-  // allowing you to adjust arguments, run code before and after, and
-  // conditionally execute the original function.
-  _.wrap = function(func, wrapper) {
-    return _.partial(wrapper, func);
-  };
-
-  // Returns a negated version of the passed-in predicate.
-  _.negate = function(predicate) {
-    return function() {
-      return !predicate.apply(this, arguments);
-    };
-  };
-
-  // Returns a function that is the composition of a list of functions, each
-  // consuming the return value of the function that follows.
-  _.compose = function() {
-    var args = arguments;
-    var start = args.length - 1;
-    return function() {
-      var i = start;
-      var result = args[start].apply(this, arguments);
-      while (i--) result = args[i].call(this, result);
-      return result;
-    };
-  };
-
-  // Returns a function that will only be executed on and after the Nth call.
-  _.after = function(times, func) {
-    return function() {
-      if (--times < 1) {
-        return func.apply(this, arguments);
-      }
-    };
-  };
-
-  // Returns a function that will only be executed up to (but not including) the Nth call.
-  _.before = function(times, func) {
-    var memo;
-    return function() {
-      if (--times > 0) {
-        memo = func.apply(this, arguments);
-      }
-      if (times <= 1) func = null;
-      return memo;
-    };
-  };
-
-  // Returns a function that will be executed at most one time, no matter how
-  // often you call it. Useful for lazy initialization.
-  _.once = _.partial(_.before, 2);
-
-  // Object Functions
-  // ----------------
-
-  // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.
-  var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');
-  var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',
-    'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];
-
-  function collectNonEnumProps(obj, keys) {
-    var nonEnumIdx = nonEnumerableProps.length;
-    var constructor = obj.constructor;
-    var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;
-
-    // Constructor is a special case.
-    var prop = 'constructor';
-    if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);
-
-    while (nonEnumIdx--) {
-      prop = nonEnumerableProps[nonEnumIdx];
-      if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {
-        keys.push(prop);
-      }
-    }
-  }
-
-  // Retrieve the names of an object's own properties.
-  // Delegates to **ECMAScript 5**'s native `Object.keys`
-  _.keys = function(obj) {
-    if (!_.isObject(obj)) return [];
-    if (nativeKeys) return nativeKeys(obj);
-    var keys = [];
-    for (var key in obj) if (_.has(obj, key)) keys.push(key);
-    // Ahem, IE < 9.
-    if (hasEnumBug) collectNonEnumProps(obj, keys);
-    return keys;
-  };
-
-  // Retrieve all the property names of an object.
-  _.allKeys = function(obj) {
-    if (!_.isObject(obj)) return [];
-    var keys = [];
-    for (var key in obj) keys.push(key);
-    // Ahem, IE < 9.
-    if (hasEnumBug) collectNonEnumProps(obj, keys);
-    return keys;
-  };
-
-  // Retrieve the values of an object's properties.
-  _.values = function(obj) {
-    var keys = _.keys(obj);
-    var length = keys.length;
-    var values = Array(length);
-    for (var i = 0; i < length; i++) {
-      values[i] = obj[keys[i]];
-    }
-    return values;
-  };
-
-  // Returns the results of applying the iteratee to each element of the object
-  // In contrast to _.map it returns an object
-  _.mapObject = function(obj, iteratee, context) {
-    iteratee = cb(iteratee, context);
-    var keys =  _.keys(obj),
-        length = keys.length,
-        results = {},
-        currentKey;
-    for (var index = 0; index < length; index++) {
-      currentKey = keys[index];
-      results[currentKey] = iteratee(obj[currentKey], currentKey, obj);
-    }
-    return results;
-  };
-
-  // Convert an object into a list of `[key, value]` pairs.
-  _.pairs = function(obj) {
-    var keys = _.keys(obj);
-    var length = keys.length;
-    var pairs = Array(length);
-    for (var i = 0; i < length; i++) {
-      pairs[i] = [keys[i], obj[keys[i]]];
-    }
-    return pairs;
-  };
-
-  // Invert the keys and values of an object. The values must be serializable.
-  _.invert = function(obj) {
-    var result = {};
-    var keys = _.keys(obj);
-    for (var i = 0, length = keys.length; i < length; i++) {
-      result[obj[keys[i]]] = keys[i];
-    }
-    return result;
-  };
-
-  // Return a sorted list of the function names available on the object.
-  // Aliased as `methods`
-  _.functions = _.methods = function(obj) {
-    var names = [];
-    for (var key in obj) {
-      if (_.isFunction(obj[key])) names.push(key);
-    }
-    return names.sort();
-  };
-
-  // Extend a given object with all the properties in passed-in object(s).
-  _.extend = createAssigner(_.allKeys);
-
-  // Assigns a given object with all the own properties in the passed-in object(s)
-  // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
-  _.extendOwn = _.assign = createAssigner(_.keys);
-
-  // Returns the first key on an object that passes a predicate test
-  _.findKey = function(obj, predicate, context) {
-    predicate = cb(predicate, context);
-    var keys = _.keys(obj), key;
-    for (var i = 0, length = keys.length; i < length; i++) {
-      key = keys[i];
-      if (predicate(obj[key], key, obj)) return key;
-    }
-  };
-
-  // Return a copy of the object only containing the whitelisted properties.
-  _.pick = function(object, oiteratee, context) {
-    var result = {}, obj = object, iteratee, keys;
-    if (obj == null) return result;
-    if (_.isFunction(oiteratee)) {
-      keys = _.allKeys(obj);
-      iteratee = optimizeCb(oiteratee, context);
-    } else {
-      keys = flatten(arguments, false, false, 1);
-      iteratee = function(value, key, obj) { return key in obj; };
-      obj = Object(obj);
-    }
-    for (var i = 0, length = keys.length; i < length; i++) {
-      var key = keys[i];
-      var value = obj[key];
-      if (iteratee(value, key, obj)) result[key] = value;
-    }
-    return result;
-  };
-
-  // Return a copy of the object without the blacklisted properties.
-  _.omit = function(obj, iteratee, context) {
-    if (_.isFunction(iteratee)) {
-      iteratee = _.negate(iteratee);
-    } else {
-      var keys = _.map(flatten(arguments, false, false, 1), String);
-      iteratee = function(value, key) {
-        return !_.contains(keys, key);
-      };
-    }
-    return _.pick(obj, iteratee, context);
-  };
-
-  // Fill in a given object with default properties.
-  _.defaults = createAssigner(_.allKeys, true);
-
-  // Creates an object that inherits from the given prototype object.
-  // If additional properties are provided then they will be added to the
-  // created object.
-  _.create = function(prototype, props) {
-    var result = baseCreate(prototype);
-    if (props) _.extendOwn(result, props);
-    return result;
-  };
-
-  // Create a (shallow-cloned) duplicate of an object.
-  _.clone = function(obj) {
-    if (!_.isObject(obj)) return obj;
-    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
-  };
-
-  // Invokes interceptor with the obj, and then returns obj.
-  // The primary purpose of this method is to "tap into" a method chain, in
-  // order to perform operations on intermediate results within the chain.
-  _.tap = function(obj, interceptor) {
-    interceptor(obj);
-    return obj;
-  };
-
-  // Returns whether an object has a given set of `key:value` pairs.
-  _.isMatch = function(object, attrs) {
-    var keys = _.keys(attrs), length = keys.length;
-    if (object == null) return !length;
-    var obj = Object(object);
-    for (var i = 0; i < length; i++) {
-      var key = keys[i];
-      if (attrs[key] !== obj[key] || !(key in obj)) return false;
-    }
-    return true;
-  };
-
-
-  // Internal recursive comparison function for `isEqual`.
-  var eq = function(a, b, aStack, bStack) {
-    // Identical objects are equal. `0 === -0`, but they aren't identical.
-    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).
-    if (a === b) return a !== 0 || 1 / a === 1 / b;
-    // A strict comparison is necessary because `null == undefined`.
-    if (a == null || b == null) return a === b;
-    // Unwrap any wrapped objects.
-    if (a instanceof _) a = a._wrapped;
-    if (b instanceof _) b = b._wrapped;
-    // Compare `[[Class]]` names.
-    var className = toString.call(a);
-    if (className !== toString.call(b)) return false;
-    switch (className) {
-      // Strings, numbers, regular expressions, dates, and booleans are compared by value.
-      case '[object RegExp]':
-      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')
-      case '[object String]':
-        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
-        // equivalent to `new String("5")`.
-        return '' + a === '' + b;
-      case '[object Number]':
-        // `NaN`s are equivalent, but non-reflexive.
-        // Object(NaN) is equivalent to NaN
-        if (+a !== +a) return +b !== +b;
-        // An `egal` comparison is performed for other numeric values.
-        return +a === 0 ? 1 / +a === 1 / b : +a === +b;
-      case '[object Date]':
-      case '[object Boolean]':
-        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
-        // millisecond representations. Note that invalid dates with millisecond representations
-        // of `NaN` are not equivalent.
-        return +a === +b;
-    }
-
-    var areArrays = className === '[object Array]';
-    if (!areArrays) {
-      if (typeof a != 'object' || typeof b != 'object') return false;
-
-      // Objects with different constructors are not equivalent, but `Object`s or `Array`s
-      // from different frames are.
-      var aCtor = a.constructor, bCtor = b.constructor;
-      if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&
-          _.isFunction(bCtor) && bCtor instanceof bCtor)
-          && ('constructor' in a && 'constructor' in b)) {
-        return false;
-      }
-    }
-    // Assume equality for cyclic structures. The algorithm for detecting cyclic
-    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
-
-    // Initializing stack of traversed objects.
-    // It's done here since we only need them for objects and arrays comparison.
-    aStack = aStack || [];
-    bStack = bStack || [];
-    var length = aStack.length;
-    while (length--) {
-      // Linear search. Performance is inversely proportional to the number of
-      // unique nested structures.
-      if (aStack[length] === a) return bStack[length] === b;
-    }
-
-    // Add the first object to the stack of traversed objects.
-    aStack.push(a);
-    bStack.push(b);
-
-    // Recursively compare objects and arrays.
-    if (areArrays) {
-      // Compare array lengths to determine if a deep comparison is necessary.
-      length = a.length;
-      if (length !== b.length) return false;
-      // Deep compare the contents, ignoring non-numeric properties.
-      while (length--) {
-        if (!eq(a[length], b[length], aStack, bStack)) return false;
-      }
-    } else {
-      // Deep compare objects.
-      var keys = _.keys(a), key;
-      length = keys.length;
-      // Ensure that both objects contain the same number of properties before comparing deep equality.
-      if (_.keys(b).length !== length) return false;
-      while (length--) {
-        // Deep compare each member
-        key = keys[length];
-        if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;
-      }
-    }
-    // Remove the first object from the stack of traversed objects.
-    aStack.pop();
-    bStack.pop();
-    return true;
-  };
-
-  // Perform a deep comparison to check if two objects are equal.
-  _.isEqual = function(a, b) {
-    return eq(a, b);
-  };
-
-  // Is a given array, string, or object empty?
-  // An "empty" object has no enumerable own-properties.
-  _.isEmpty = function(obj) {
-    if (obj == null) return true;
-    if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;
-    return _.keys(obj).length === 0;
-  };
-
-  // Is a given value a DOM element?
-  _.isElement = function(obj) {
-    return !!(obj && obj.nodeType === 1);
-  };
-
-  // Is a given value an array?
-  // Delegates to ECMA5's native Array.isArray
-  _.isArray = nativeIsArray || function(obj) {
-        return toString.call(obj) === '[object Array]';
-      };
-
-  // Is a given variable an object?
-  _.isObject = function(obj) {
-    var type = typeof obj;
-    return type === 'function' || type === 'object' && !!obj;
-  };
-
-  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.
-  _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {
-    _['is' + name] = function(obj) {
-      return toString.call(obj) === '[object ' + name + ']';
-    };
-  });
-
-  // Define a fallback version of the method in browsers (ahem, IE < 9), where
-  // there isn't any inspectable "Arguments" type.
-  if (!_.isArguments(arguments)) {
-    _.isArguments = function(obj) {
-      return _.has(obj, 'callee');
-    };
-  }
-
-  // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,
-  // IE 11 (#1621), and in Safari 8 (#1929).
-  if (typeof /./ != 'function' && typeof Int8Array != 'object') {
-    _.isFunction = function(obj) {
-      return typeof obj == 'function' || false;
-    };
-  }
-
-  // Is a given object a finite number?
-  _.isFinite = function(obj) {
-    return isFinite(obj) && !isNaN(parseFloat(obj));
-  };
-
-  // Is the given value `NaN`? (NaN is the only number which does not equal itself).
-  _.isNaN = function(obj) {
-    return _.isNumber(obj) && obj !== +obj;
-  };
-
-  // Is a given value a boolean?
-  _.isBoolean = function(obj) {
-    return obj === true || obj === false || toString.call(obj) === '[object Boolean]';
-  };
-
-  // Is a given value equal to null?
-  _.isNull = function(obj) {
-    return obj === null;
-  };
-
-  // Is a given variable undefined?
-  _.isUndefined = function(obj) {
-    return obj === void 0;
-  };
-
-  // Shortcut function for checking if an object has a given property directly
-  // on itself (in other words, not on a prototype).
-  _.has = function(obj, key) {
-    return obj != null && hasOwnProperty.call(obj, key);
-  };
-
-  // Utility Functions
-  // -----------------
-
-  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
-  // previous owner. Returns a reference to the Underscore object.
-  _.noConflict = function() {
-    root._ = previousUnderscore;
-    return this;
-  };
-
-  // Keep the identity function around for default iteratees.
-  _.identity = function(value) {
-    return value;
-  };
-
-  // Predicate-generating functions. Often useful outside of Underscore.
-  _.constant = function(value) {
-    return function() {
-      return value;
-    };
-  };
-
-  _.noop = function(){};
-
-  _.property = property;
-
-  // Generates a function for a given object that returns a given property.
-  _.propertyOf = function(obj) {
-    return obj == null ? function(){} : function(key) {
-      return obj[key];
-    };
-  };
-
-  // Returns a predicate for checking whether an object has a given set of
-  // `key:value` pairs.
-  _.matcher = _.matches = function(attrs) {
-    attrs = _.extendOwn({}, attrs);
-    return function(obj) {
-      return _.isMatch(obj, attrs);
-    };
-  };
-
-  // Run a function **n** times.
-  _.times = function(n, iteratee, context) {
-    var accum = Array(Math.max(0, n));
-    iteratee = optimizeCb(iteratee, context, 1);
-    for (var i = 0; i < n; i++) accum[i] = iteratee(i);
-    return accum;
-  };
-
-  // Return a random integer between min and max (inclusive).
-  _.random = function(min, max) {
-    if (max == null) {
-      max = min;
-      min = 0;
-    }
-    return min + Math.floor(Math.random() * (max - min + 1));
-  };
-
-  // A (possibly faster) way to get the current timestamp as an integer.
-  _.now = Date.now || function() {
-        return new Date().getTime();
-      };
-
-  // List of HTML entities for escaping.
-  var escapeMap = {
-    '&': '&amp;',
-    '<': '&lt;',
-    '>': '&gt;',
-    '"': '&quot;',
-    "'": '&#x27;',
-    '`': '&#x60;'
-  };
-  var unescapeMap = _.invert(escapeMap);
-
-  // Functions for escaping and unescaping strings to/from HTML interpolation.
-  var createEscaper = function(map) {
-    var escaper = function(match) {
-      return map[match];
-    };
-    // Regexes for identifying a key that needs to be escaped
-    var source = '(?:' + _.keys(map).join('|') + ')';
-    var testRegexp = RegExp(source);
-    var replaceRegexp = RegExp(source, 'g');
-    return function(string) {
-      string = string == null ? '' : '' + string;
-      return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
-    };
-  };
-  _.escape = createEscaper(escapeMap);
-  _.unescape = createEscaper(unescapeMap);
-
-  // If the value of the named `property` is a function then invoke it with the
-  // `object` as context; otherwise, return it.
-  _.result = function(object, property, fallback) {
-    var value = object == null ? void 0 : object[property];
-    if (value === void 0) {
-      value = fallback;
-    }
-    return _.isFunction(value) ? value.call(object) : value;
-  };
-
-  // Generate a unique integer id (unique within the entire client session).
-  // Useful for temporary DOM ids.
-  var idCounter = 0;
-  _.uniqueId = function(prefix) {
-    var id = ++idCounter + '';
-    return prefix ? prefix + id : id;
-  };
-
-  // By default, Underscore uses ERB-style template delimiters, change the
-  // following template settings to use alternative delimiters.
-  _.templateSettings = {
-    evaluate    : /<%([\s\S]+?)%>/g,
-    interpolate : /<%=([\s\S]+?)%>/g,
-    escape      : /<%-([\s\S]+?)%>/g
-  };
-
-  // When customizing `templateSettings`, if you don't want to define an
-  // interpolation, evaluation or escaping regex, we need one that is
-  // guaranteed not to match.
-  var noMatch = /(.)^/;
-
-  // Certain characters need to be escaped so that they can be put into a
-  // string literal.
-  var escapes = {
-    "'":      "'",
-    '\\':     '\\',
-    '\r':     'r',
-    '\n':     'n',
-    '\u2028': 'u2028',
-    '\u2029': 'u2029'
-  };
-
-  var escaper = /\\|'|\r|\n|\u2028|\u2029/g;
-
-  var escapeChar = function(match) {
-    return '\\' + escapes[match];
-  };
-
-  // JavaScript micro-templating, similar to John Resig's implementation.
-  // Underscore templating handles arbitrary delimiters, preserves whitespace,
-  // and correctly escapes quotes within interpolated code.
-  // NB: `oldSettings` only exists for backwards compatibility.
-  _.template = function(text, settings, oldSettings) {
-    if (!settings && oldSettings) settings = oldSettings;
-    settings = _.defaults({}, settings, _.templateSettings);
-
-    // Combine delimiters into one regular expression via alternation.
-    var matcher = RegExp([
-          (settings.escape || noMatch).source,
-          (settings.interpolate || noMatch).source,
-          (settings.evaluate || noMatch).source
-        ].join('|') + '|$', 'g');
-
-    // Compile the template source, escaping string literals appropriately.
-    var index = 0;
-    var source = "__p+='";
-    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
-      source += text.slice(index, offset).replace(escaper, escapeChar);
-      index = offset + match.length;
-
-      if (escape) {
-        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
-      } else if (interpolate) {
-        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
-      } else if (evaluate) {
-        source += "';\n" + evaluate + "\n__p+='";
-      }
-
-      // Adobe VMs need the match returned to produce the correct offest.
-      return match;
-    });
-    source += "';\n";
-
-    // If a variable is not specified, place data values in local scope.
-    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
-
-    source = "var __t,__p='',__j=Array.prototype.join," +
-        "print=function(){__p+=__j.call(arguments,'');};\n" +
-        source + 'return __p;\n';
-
-    try {
-      var render = new Function(settings.variable || 'obj', '_', source);
-    } catch (e) {
-      e.source = source;
-      throw e;
-    }
-
-    var template = function(data) {
-      return render.call(this, data, _);
-    };
-
-    // Provide the compiled source as a convenience for precompilation.
-    var argument = settings.variable || 'obj';
-    template.source = 'function(' + argument + '){\n' + source + '}';
-
-    return template;
-  };
-
-  // Add a "chain" function. Start chaining a wrapped Underscore object.
-  _.chain = function(obj) {
-    var instance = _(obj);
-    instance._chain = true;
-    return instance;
-  };
-
-  // OOP
-  // ---------------
-  // If Underscore is called as a function, it returns a wrapped object that
-  // can be used OO-style. This wrapper holds altered versions of all the
-  // underscore functions. Wrapped objects may be chained.
-
-  // Helper function to continue chaining intermediate results.
-  var result = function(instance, obj) {
-    return instance._chain ? _(obj).chain() : obj;
-  };
-
-  // Add your own custom functions to the Underscore object.
-  _.mixin = function(obj) {
-    _.each(_.functions(obj), function(name) {
-      var func = _[name] = obj[name];
-      _.prototype[name] = function() {
-        var args = [this._wrapped];
-        push.apply(args, arguments);
-        return result(this, func.apply(_, args));
-      };
-    });
-  };
-
-  // Add all of the Underscore functions to the wrapper object.
-  _.mixin(_);
-
-  // Add all mutator Array functions to the wrapper.
-  _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
-    var method = ArrayProto[name];
-    _.prototype[name] = function() {
-      var obj = this._wrapped;
-      method.apply(obj, arguments);
-      if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];
-      return result(this, obj);
-    };
-  });
-
-  // Add all accessor Array functions to the wrapper.
-  _.each(['concat', 'join', 'slice'], function(name) {
-    var method = ArrayProto[name];
-    _.prototype[name] = function() {
-      return result(this, method.apply(this._wrapped, arguments));
-    };
-  });
-
-  // Extracts the result from a wrapped and chained object.
-  _.prototype.value = function() {
-    return this._wrapped;
-  };
-
-  // Provide unwrapping proxy for some methods used in engine operations
-  // such as arithmetic and JSON stringification.
-  _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;
-
-  _.prototype.toString = function() {
-    return '' + this._wrapped;
-  };
-
-  // AMD registration happens at the end for compatibility with AMD loaders
-  // that may not enforce next-turn semantics on modules. Even though general
-  // practice for AMD registration is to be anonymous, underscore registers
-  // as a named module because, like jQuery, it is a base library that is
-  // popular enough to be bundled in a third party lib, but not be part of
-  // an AMD load request. Those cases could generate an error when an
-  // anonymous define() is called outside of a loader request.
-  if (typeof define === 'function' && define.amd) {
-    define('underscore', [], function() {
-      return _;
-    });
-  }
-}.call(this));
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/filter.js b/plugins/easy_mindmup/assets/javascripts/filter.js
deleted file mode 100644
index b4c7206..0000000
--- a/plugins/easy_mindmup/assets/javascripts/filter.js
+++ /dev/null
@@ -1,28 +0,0 @@
-(function () {
-  /**
-   * Class responsible for filtering nodes from tree and options from legend
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Filter(ysy) {
-    this.ysy = ysy;
-  }
-
-  Filter.prototype.isOn = function(){
-    return false;
-  };
-  Filter.prototype.cssByBannedValue = function (value) {
-    return "";
-  };
-  Filter.prototype.reset = function () {
-  };
-  /**
-   *
-   * @param {ModelEntity} idea
-   * @return {boolean}
-   */
-  Filter.prototype.isBanned = function (idea) {
-    return false;
-  };
-  window.easyMindMupClasses.Filter = Filter;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/history.js b/plugins/easy_mindmup/assets/javascripts/history.js
deleted file mode 100644
index b6a7489..0000000
--- a/plugins/easy_mindmup/assets/javascripts/history.js
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * Created by merta on 27.4.17.
- */
-(function () {
-  /**
-   * @param {MindMup} ysy
-   * @property {boolean} historyIsPushed
-   * @property {boolean} redoIsPushed
-   * @property {SaveButton} saveButton
-   * @property {UndoButton} undoButton
-   * @property {RedoButton} redoButton
-   * @constructor
-   */
-  function History(ysy) {
-    this.ysy = ysy;
-    this.init();
-    this.buttonsInited = false;
-    this.saveButton = null;
-    this.undoButton = null;
-    this.redoButton = null;
-    this.historyIsPushed = true;
-    this.redoIsPushed = true;
-  }
-
-  History.prototype.init = function () {
-    var self = this;
-    this.ysy.eventBus.register("TreeLoaded", /** @param {RootIdea} idea*/function (idea) {
-      idea.addEventListener('changed', $.proxy(self.historyChanged, self));
-      self.historyChanged();
-    });
-    this.ysy.eventBus.register("BeforeServerClassInit", function () {
-      self.saveButton = self.ysy.toolbar.children["save"];
-      self.undoButton = self.ysy.toolbar.children["undo"];
-      self.redoButton = self.ysy.toolbar.children["redo"];
-      self.buttonsInited = true;
-    });
-  };
-  History.prototype.historyChanged = function () {
-    var idea = this.ysy.idea;
-    if (idea.canUndo()) {
-      this.historyPushed();
-    } else {
-      this.historyEmpty();
-    }
-    if (idea.canRedo()) {
-      this.redoPushed();
-    } else {
-      this.redoEmpty();
-    }
-  };
-  History.prototype.historyEmpty = function () {
-    if (!this.historyIsPushed) return;
-    this.historyIsPushed = false;
-    $(window).unbind('beforeunload');
-    $(window).unbind('unload');
-    if (this.buttonsInited) {
-      this.saveButton.setDisabled(true);
-      this.undoButton.setDisabled(true);
-    }
-    this.ysy.log.debug("History Empty", "history");
-  };
-  History.prototype.historyPushed = function () {
-    if (this.historyIsPushed) return;
-    this.historyIsPushed = true;
-    $(window).bind('beforeunload', function (e) {
-      var message = "Some changes are not saved!";
-      e.returnValue = message;
-      return message;
-    });
-    //     .unbind('unload').bind('unload', function () {
-    //   storage.lastState.remove();
-    // });
-    if (this.buttonsInited) {
-      this.saveButton.setDisabled(false);
-      this.undoButton.setDisabled(false);
-    }
-    this.ysy.log.debug("History Pushed", "history");
-  };
-  History.prototype.redoEmpty = function () {
-    if (!this.redoIsPushed) return;
-    this.redoIsPushed = false;
-    if (this.buttonsInited) {
-      this.redoButton.setDisabled(true);
-    }
-    this.ysy.log.debug("Redo Empty", "history");
-  };
-  History.prototype.redoPushed = function () {
-    if (this.redoIsPushed) return;
-    this.redoIsPushed = true;
-    if (this.buttonsInited) {
-      this.redoButton.setDisabled(false);
-    }
-    this.ysy.log.debug("Redo Pushed", "history");
-  };
-
-
-  window.easyMindMupClasses.History = History;
-  //####################################################################################################################
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function HistoryButton(ysy, $parent) {
-    this.ysy = ysy;
-    this.isDisabled = false;
-    this.$element = $parent.find(this.elementClass);
-  }
-
-  HistoryButton.prototype.elementClass = "";
-  /**
-   * Set disable state of button
-   * @param {boolean} isDisabled
-   */
-  HistoryButton.prototype.setDisabled = function (isDisabled) {
-    this.isDisabled = isDisabled;
-    this.ysy.repainter.redrawMe(this);
-  };
-  HistoryButton.prototype._render = function () {
-    this.$element.toggleClass("mindmup__button--disabled", this.isDisabled);
-  };
-
-  var classes = window.easyMindMupClasses;
-
-  /**
-   * @extends {HistoryButton}
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function SaveButton(ysy, $parent) {
-    HistoryButton.call(this, ysy, $parent);
-  }
-
-  classes.extendClass(SaveButton, HistoryButton);
-  SaveButton.prototype.elementClass = ".mindmup__menu-save";
-  SaveButton.prototype.id = "save";
-
-  window.easyMindMupClasses.SaveButton = SaveButton;
-
-  /**
-   * @extends {HistoryButton}
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function UndoButton(ysy, $parent) {
-    HistoryButton.call(this, ysy, $parent);
-  }
-
-  classes.extendClass(UndoButton, HistoryButton);
-  UndoButton.prototype.id = "undo";
-  UndoButton.prototype.elementClass = ".mindmup-button-undo";
-
-  window.easyMindMupClasses.UndoButton = UndoButton;
-
-  /**
-   * @extends {HistoryButton}
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function RedoButton(ysy, $parent) {
-    HistoryButton.call(this, ysy, $parent);
-  }
-
-  classes.extendClass(RedoButton, HistoryButton);
-  RedoButton.prototype.id = "redo";
-  RedoButton.prototype.elementClass = ".mindmup-button-redo";
-
-  window.easyMindMupClasses.RedoButton = RedoButton;
-
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/jsdocs_external.js b/plugins/easy_mindmup/assets/javascripts/jsdocs_external.js
deleted file mode 100644
index 53b2235..0000000
--- a/plugins/easy_mindmup/assets/javascripts/jsdocs_external.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  /**
-   * Do not include this file - it is just for suppressing JSDocs warnings
-   */
-  window.showModal =function(){};
-  jQuery.fn.dialog=function(){};
-  /**
-   *
-   * @param {String} type
-   * @param {String} message
-   * @param {number} delay
-   */
-  window.showFlashMessage=function(type, message, delay){};
-  /**
-   *
-   * @param {String} htmlId
-   */
-  window.fillFormTextAreaFromCKEditor = function(htmlId){};
-
-  jQuery.Deferred.prototype.done = function (func) {
-
-  };
-  window._ = window._ || {};
-});
diff --git a/plugins/easy_mindmup/assets/javascripts/layout_patch.js b/plugins/easy_mindmup/assets/javascripts/layout_patch.js
deleted file mode 100644
index 305a038..0000000
--- a/plugins/easy_mindmup/assets/javascripts/layout_patch.js
+++ /dev/null
@@ -1,94 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function LayoutPatch(ysy) {
-    this.nodeCacheMarks = {};
-    this.ysy = ysy;
-    this.patch(ysy);
-  }
-
-  LayoutPatch.prototype.patch = function (ysy) {
-    var self = this;
-    self.layoutCalculator = /** @param {RootIdea} contentAggregate */function (contentAggregate) {
-      self.preComputeDimensions(contentAggregate, self, ysy);
-      return MAPJS.calculateLayout(contentAggregate, function (idea) {
-        return self.nodeCacheMarks[idea.id]
-      }, undefined, self.layoutPredicate);
-    };
-    jQuery.fn.queueFadeOut = function (options) {
-      var element = this;
-      return element.animate({opacity: 0}, _.extend({
-        complete: function () {
-          element.remove();
-        }
-      }, options));
-    }
-  };
-  /**
-   * function which separate nodes into two categories:
-   * LeftTree => positive = false
-   * RightTree => positive = true;
-   * @param {RootIdea} idea
-   * @param {boolean} positive
-   * @return {Function}
-   */
-  LayoutPatch.prototype.layoutPredicate = function (idea, positive) {
-    if (idea.oneSideOn) {
-      return function () {
-        return positive;
-      }
-    }
-    return function (rank, parent) {
-      if (parent === idea) {
-        if (rank < 0 === positive) return false;
-      }
-      return true;
-    };
-  };
-  /**
-   *
-   * @param {RootIdea} superIdea
-   * @param {LayoutPatch} self
-   * @param {MindMup} ysy
-   */
-  LayoutPatch.prototype.preComputeDimensions = function (superIdea, self, ysy) {
-    var nodeCacheMarks = self.nodeCacheMarks;
-    var nodes = [];
-    ysy.util.traverse(superIdea, function (idea) {
-      if (!idea.attr || !idea.attr.entityType) {
-        ysy.upgradeToModelEntity(idea);
-      }
-      if (nodeCacheMarks[idea.id]) {
-        if (nodeCacheMarks[idea.id].title === idea.title && nodeCacheMarks[idea.id].collapsed === idea.attr.collapsed) return;
-      }
-      nodes.push(idea);
-    });
-    var translateToPixel = function () {
-      return MAPJS.DOMRender.svgPixel;
-    };
-    var bigHtml = '<div id="dimension_compute_cont">';
-    for (var i = 0; i < nodes.length; i++) {
-      var idea = nodes[i];
-      bigHtml += '<div id="compute_node_' + idea.id + '" class="mapjs-node" style="visibility: hidden;position: absolute"><span>' + ysy.nodePatch.getNodeText(idea) + '</span></div>'
-    }
-    bigHtml += '</div>';
-    $(bigHtml).appendTo('body');
-
-    for (i = 0; i < nodes.length; i++) {
-      idea = nodes[i];
-      var textBox = $("#compute_node_" + idea.id);
-      nodeCacheMarks[idea.id] = {
-        title: idea.title,
-        collapsed: idea.attr.collapsed,
-        width: textBox.outerWidth(true),
-        height: textBox.outerHeight(true)
-      };
-      // textBox.detach();
-    }
-    $("#dimension_compute_cont").remove();
-  };
-  window.easyMindMupClasses.LayoutPatch = LayoutPatch;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/legend.js b/plugins/easy_mindmup/assets/javascripts/legend.js
deleted file mode 100644
index 0fa54ab..0000000
--- a/plugins/easy_mindmup/assets/javascripts/legend.js
+++ /dev/null
@@ -1,218 +0,0 @@
-(function () {
-  /**
-   *
-   * @property {jQuery} $element
-   * @property {jQuery} $titleElement
-   * @property {Array.<String>} otherBuilders
-   * @property {MindMup} ysy
-   * @property {LegendBuilders} itemBuilders
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Legend(ysy) {
-    this.opened = true;
-    this.headerHidden = false;
-    this.lastHeaderHidden = true;
-    this.otherBuilders = [
-      "project"
-    ];
-    this.usedActive = false;
-    this.ysy = ysy;
-    this.itemBuilders = new LegendBuilders(ysy);
-    this.init(ysy);
-  }
-
-  /**
-   * @param {MindMup} ysy
-   */
-  Legend.prototype.init = function (ysy) {
-    var self = this;
-    var $menu = ysy.$menu;
-    ysy.eventBus.register("TreeLoaded", function (idea) {
-      idea.addEventListener('changed', function () {
-        self.draw();
-      });
-      self.draw();
-    });
-    ysy.eventBus.register("nodeStyleChanged", $.proxy(this.draw, this));
-    this.$container = $menu.find(".mindmup__legend-container");
-    this.$element = $menu.find(".mindmup-legend");
-    this.$header = $menu.find(".mindmup__legend-header");
-    this.$usedToggle = this.$header.find(".mindmup__legend-used-toggle");
-    this.$openToggle = this.$header.find(".mindmup__legend-toggler");
-    this.opened = !ysy.storage.settings.loadLegendHidden();
-    this.$headerToggle = $menu.find(".mindmup__legend-cont-toggler");
-    this.opened = !ysy.storage.settings.loadLegendHidden();
-    this.headerHidden = ysy.storage.settings.loadLegendHeaderHidden();
-    this.lastHeaderHidden = !this.headerHidden;
-  };
-  Legend.prototype.headerToggle = function () {
-    this.headerHidden = !this.headerHidden;
-    this.ysy.repainter.redrawMe(this);
-    this.ysy.eventBus.fireEvent("legendHeaderToggled", this.headerHidden);
-  };
-  Legend.prototype.toggle = function () {
-    this.opened = !this.opened;
-    this.ysy.repainter.redrawMe(this);
-    this.ysy.eventBus.fireEvent("legendToggled", this.opened);
-  };
-  /** @param {Style} style */
-  Legend.prototype.getItemBuilder = function (style) {
-    return this.itemBuilders[style.builderType];
-  };
-  Legend.prototype.hotkeysBuilder = function ($element) {
-    var ysy = this.ysy;
-    $element.find(".hotkey_link").click(function () {
-      var modal = ysy.util.getModal("info-modal", "90%");
-      modal.html(ysy.$container.find(".mindmup-hotkeys-source").html());
-      showModal("info-modal");
-      modal.dialog({
-        buttons: [
-          {
-            class: "button-2 button",
-            text: ysy.settings.labels.buttons.close,
-            click: function () {
-              modal.dialog("close")
-            }
-          }
-        ]
-      });
-    });
-  };
-  Legend.prototype.draw = function () {
-    this.ysy.repainter.redrawMe(this);
-  };
-  Legend.prototype._render = function () {
-    var ysy = this.ysy;
-    var self = this;
-    if (this.headerHidden) {
-      if (!this.lastHeaderHidden) {
-        this.$container.addClass("mindmup__legend-container--hidden");
-        this.$headerToggle
-            .toggleClass("active", false)
-            .find("a").toggleClass("active", false);
-        this.lastHeaderHidden = true;
-      }
-      return;
-    } else {
-      if (this.lastHeaderHidden) {
-        this.$container.removeClass("mindmup__legend-container--hidden");
-        this.$headerToggle
-            .find("a").toggleClass("active", true);
-        this.lastHeaderHidden = false;
-      }
-    }
-    this.$openToggle.toggleClass("active", this.opened);
-    if (!this.opened) {
-      this.$element.hide();
-      return;
-    }
-    this.resize();
-    this.$openToggle.toggleClass("active", this.opened);
-    var $element = this.$element.show();
-    var setting = ysy.styles.setting;
-    var store = ysy.styles.getCurrentStyle();
-    var itemElement;
-    var array = store.options(this.usedActive);
-    var itemBuilder = this.getItemBuilder(store) || _.noop;
-    var obj = {
-      active: this.usedActive ? "used" : "all",
-      filter: ysy.filter.isOn()
-    };
-    var items = [];
-    for (var i = 0; i < this.otherBuilders.length; i++) {
-      var builder = this.itemBuilders[this.otherBuilders[i]];
-      if (!builder) continue;
-      itemElement = builder.call(this.itemBuilders);
-      if (itemElement) items.push(itemElement);
-    }
-    obj.items = items;
-    for (i = 0; i < array.length; i++) {
-      itemElement = itemBuilder.call(this.itemBuilders, array[i], setting);
-      items.push(itemElement);
-    }
-    $element.html(Mustache.render(ysy.settings.templates.legendTemplate, obj));
-    $element.find(".mindmup-legend__filter_cont").click(function () {
-      ysy.filter.reset();
-      self.draw();
-    });
-    this.hotkeysBuilder($element);
-  };
-  Legend.prototype.resize = function () {
-    if (!this.opened) return;
-    var height = window.innerHeight
-        || document.documentElement.clientHeight
-        || document.body.clientHeight;
-    var offset = this.$element.offset().top;
-    var scroll = $(document).scrollTop();
-    this.$element.css("max-height", (height + scroll - offset - 25) + "px");
-  };
-  window.easyMindMupClasses.Legend = Legend;
-  //####################################################################################################################
-  /**
-   *
-   * @param {MindMup} ysy
-   * @property {MindMup} ysy
-   * @property {Filter} filter
-   * @property {Object.<String,Style>} styles
-   * @property {String} projectLabel
-   * @constructor
-   */
-  function LegendBuilders(ysy) {
-    this.ysy = ysy;
-    this.filter = ysy.filter;
-    this.styles = ysy.styles.styles;
-    this.projectLabel = ysy.settings.labels.types.project;
-  }
-
-  LegendBuilders.prototype.assigneeTemplate = '\
-          <div data-item_id="{{item.id}}" class="mindmup-legend-item-cont">\
-            <div class="mindmup-legend-color-box{{banned}}{{scheme}}"></div>\
-            {{#avatar}}\
-              <img width="64" height="64" alt="{{item.name}}" class="gravatar" src="{{{avatarUrl}}}">\
-            {{/avatar}}\
-            {{item.name}}\
-          </div>';
-  LegendBuilders.prototype.percentTemplate = '<div data-item_id="{{percent}}" class="mindmup-legend-item-cont">\
-            <div class="mindmup-legend-color-box{{banned}}{{scheme}}"></div>\
-            {{percent}} %\
-          </div>';
-  LegendBuilders.prototype.dataBasedTemplate = '<div data-item_id="{{item.id}}" class="mindmup-legend-item-cont">\
-            <div class="mindmup-legend-color-box{{banned}}{{scheme}}"></div>\
-            {{item.name}}\
-          </div>';
-  LegendBuilders.prototype.projectTemplate = '<div data-item_id="project" class="mindmup-legend-item-cont">\
-            <div class="mindmup-legend-color-box mindmup-scheme-project{{banned}}"></div>\
-            {{label}}\
-            </div>';
-
-  LegendBuilders.prototype.assignee = function assigneeBuilder(item, type) {
-    return Mustache.render(this.assigneeTemplate, {
-      item: item,
-      banned: this.filter.cssByBannedValue(item.id),
-      scheme: this.styles[type].addSchemeClass(item.id),
-      avatar: item.id !== 0,
-      avatarUrl: item.avatar_url ? item.avatar_url : "/plugin_assets/easy_extensions/images/avatar.jpg"
-    });
-  };
-  LegendBuilders.prototype.percent = function percentBuilder(item, type) {
-    return Mustache.render(this.percentTemplate, {
-      percent: item,
-      banned: this.filter.cssByBannedValue(item),
-      scheme: this.styles[type].addSchemeClass(item)
-    });
-  };
-  LegendBuilders.prototype.dataBased = function dataBasedBuilder(item, type) {
-    return Mustache.render(this.dataBasedTemplate, {
-      item: item,
-      banned: this.filter.cssByBannedValue(item.id),
-      scheme: this.styles[type].addSchemeClass(item.id)
-    });
-  };
-  LegendBuilders.prototype.project = function projectBuilder() {
-    return Mustache.render(this.projectTemplate, {
-      label: this.projectLabel,
-      banned: this.filter.cssByBannedValue("project")
-    });
-  };
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/legend_events.js b/plugins/easy_mindmup/assets/javascripts/legend_events.js
deleted file mode 100644
index dcb9a4e..0000000
--- a/plugins/easy_mindmup/assets/javascripts/legend_events.js
+++ /dev/null
@@ -1,279 +0,0 @@
-/**
- * Created by hosekp on 12/1/16.
- */
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @property {MindMup} ysy
-   * @property {jQuery} $element
-   * @property {Legend} legend
-   * @constructor
-   */
-  function LegendEvents(ysy) {
-    this.legend = ysy.legends;
-    this.$element = this.legend.$element;
-    this.ysy = ysy;
-    this.init(ysy);
-    this.possibleTargets = [];
-  }
-
-  LegendEvents.prototype.maxDistanceToClick = 30;
-  LegendEvents.prototype.domain = "easy-mindmup-legend";
-  LegendEvents.prototype.draggedSelector = ".mindmup-legend-item-cont:not([data-item_id='project'])";
-  LegendEvents.prototype.filterSelector = ".mindmup-legend-item-cont[data-item_id='project']";
-  LegendEvents.prototype.usedToggleSelector = ".mindmup-legend-used";
-  LegendEvents.prototype.legendHeaderTogglerSelector = ".mindmup__legend-cont-toggler";
-  LegendEvents.prototype.hoverClass = "mindmup-legend-drag-hover droppable";
-
-  /**
-   * @param {MindMup} ysy
-   */
-  LegendEvents.prototype.init = function (ysy) {
-    var _self = this;
-    var legend = this.legend;
-    ysy.$menu.find(".mindmup__legend-trigger").on("click", function (e) {
-      legend.toggle();
-    });
-    ysy.$menu.find(this.legendHeaderTogglerSelector).on("click",function () {
-      legend.headerToggle();
-    });
-    this.$element
-        .off("click.legend-used")
-        .on("click.legend-used", this.usedToggleSelector, function () {
-          legend.usedActive = !legend.usedActive;
-          ysy.repainter.redrawMe(legend);
-        })
-        .off("mousedown." + this.domain)
-        .on("mousedown." + this.domain, this.draggedSelector, function (e) {
-          _self.shiftKey = e.shiftKey;
-          if (e.target.parentElement.tagName === "A") {
-            _self.aTouched = true;
-          }
-          e.preventDefault();
-          if (e.which === 3) {
-            return false;
-            // _self.actualX = e.pageX - window.scrollX;
-            // _self.actualY = e.pageY - window.scrollY;
-            // _self._contextMenu();
-          } else {
-            _self.actualX = e.pageX - window.scrollX;
-            _self.actualY = e.pageY - window.scrollY;
-            _self.down($(this), e.pageX, e.pageY);
-          }
-          return false;
-        })
-        .off("touchstart." + this.domain)
-        .on("touchstart." + this.domain, this.draggedSelector, function (e) {
-          e.preventDefault();
-          var touch = e.originalEvent.touches[0];
-          if (!touch) return false;
-          _self.actualX = touch.pageX - window.scrollX;
-          _self.actualY = touch.pageY - window.scrollY;
-          _self.down($(this), touch.pageX, touch.pageY);
-          return false;
-        })
-        .off("touchend." + this.domain)
-        .on("touchend." + this.domain, function (e) {
-          e.preventDefault();
-          _self.up();
-          return false;
-
-        })
-        .off("touchmove." + this.domain)
-        .on("touchmove." + this.domain, this.draggedSelector, function (e) {
-          e.preventDefault();
-          var touch = e.originalEvent.touches[0];
-          if (!touch) return false;
-          _self.move(touch.pageX, touch.pageY);
-          return false;
-        })
-        .off("click." + this.domain)
-        .on("click." + this.domain, this.filterSelector, function () {
-          ysy.util.showUpgradeModal("filtering");
-        });
-    ysy.eventBus.register('resize', $.proxy(legend.resize, legend));
-  };
-  /**
-   * main mouseDown function (handles also click events)
-   * @param {jQuery} $sourceElement
-   * @param {number} x
-   * @param {number} y
-   */
-  LegendEvents.prototype.down = function ($sourceElement, x, y) {
-    this.maxDistance = 0;
-    this.stageOffset = this.ysy.$container.children("[data-mapjs-role=\"stage\"]").offset();
-    this.startX = x - window.scrollX;
-    this.startY = y - window.scrollY;
-    // this.startTime = Date.now();
-    this.actionActive = true;
-    var _self = this;
-    this.$sourceElement = $sourceElement;   // window.easyView.root.dragStartOnDomain(this.domain, $draggedElement);
-
-    // create overlay div
-    this.$overlay = $('<div class="mindmup-legend-drag-overlay">').css({
-      width: window.innerWidth,
-      height: window.innerHeight
-    });
-    var colorClass = this.$element[0].className.replace("mindmup-legend ", "");
-    this.$overlay.addClass(colorClass);
-    $(document.body).append(this.$overlay);
-
-
-    this.$overlay.on("mouseup." + this.domain, function (e) {
-      e.preventDefault();
-      _self.up();
-
-    });
-    this.$overlay.on("mousemove." + this.domain, function (e) {
-      e.preventDefault();
-      _self.move(e.pageX, e.pageY);
-    });
-  };
-  /**
-   * main mouseMove function
-   * @param {number} x
-   * @param {number} y
-   */
-  LegendEvents.prototype.move = function (x, y) {
-    if (!this.actionActive) return;
-
-    // if ((y - window.scrollY) < 80) {
-    //   this.doScrollUp = true;
-    //   this.doScroll();
-    // } else {
-    //   this.doScrollUp = false;
-    // }
-    //
-    // if ((window.innerHeight - y + window.scrollY) < 80) {
-    //   this.doScrollDown = true;
-    //   this.doScroll();
-    // } else {
-    //   this.doScrollDown = false;
-    // }
-
-    this.actualX = x - window.scrollX;
-    this.actualY = y - window.scrollY;
-    if (this.moveDistance() > this.maxDistanceToClick && !this.avatar) {
-      this.avatar = new DragAvatar(this.ysy, this.$sourceElement);
-      this.changeObject = this.avatar.getChangeObject();
-      if (!this.changeObject) return this.up();
-      this.possibleTargets = this.findPossibleTargets();
-      this.$overlay.append(this.avatar.$cont);
-    }
-    if (this.avatar) {
-      this.avatar.moveAvatar(this.actualX, this.actualY);
-      if (this.currentDropTarget) {
-        this.currentDropTarget.removeClass(this.hoverClass);
-      }
-      this.currentDropTarget = this.getCurrentTarget(x, y);
-      if (this.currentDropTarget) {
-        this.currentDropTarget.addClass(this.hoverClass);
-      }
-    }
-  };
-  /**
-   * main mouseUp function
-   */
-  LegendEvents.prototype.up = function () {
-    // this.doScrollDown = false;
-    // this.doScrollUp = false;
-    this.possibleTargets = null;
-    this.actionActive = false;
-
-    if (this.moveDistance() < this.maxDistanceToClick) {
-      this.ysy.util.showUpgradeModal("filtering");
-    } else {
-      this.ysy.util.showUpgradeModal("dnd_property");
-    }
-    if (this.$overlay) {
-      if (this.avatar) {
-        this.avatar.destroy();
-      }
-      this.avatar = null;
-      this.$overlay.remove();
-    }
-    if (this.currentDropTarget) {
-      this.currentDropTarget.removeClass(this.hoverClass);
-    }
-    this.currentDropTarget = null;
-  };
-  /**
-   *
-   * @return {Array.<jQuery>}
-   */
-  LegendEvents.prototype.findPossibleTargets = function () {
-    var possibles = this.ysy.$container.find(".mapjs-node");
-    var $possibles = [];
-    for (var i = 0; i < possibles.length; i++) {
-      $possibles.push($(possibles[i]));
-    }
-    return $possibles;
-  };
-  /**
-   *
-   * @param {number} x
-   * @param {number} y
-   * @return {jQuery}
-   */
-  LegendEvents.prototype.getCurrentTarget = function (x, y) {
-    var $possibles = this.possibleTargets;
-    for (var i = 0; i < $possibles.length; i++) {
-      var $possible = $possibles[i];
-      var data = $possible.data();
-      var transformedX = x - this.stageOffset.left;
-      if (transformedX < data.x) continue;
-      if (transformedX > data.x + data.width) continue;
-      var transformedY = y - this.stageOffset.top;
-      if (transformedY < data.y) continue;
-      if (transformedY > data.y + data.height) continue;
-      return $possible;
-    }
-    return null;
-  };
-  LegendEvents.prototype.moveDistance = function () {
-    if (this.actualX == null) {
-      return 0;
-    }
-    var distance = Math.sqrt(Math.pow(this.actualX - this.startX, 2) + Math.pow(this.actualY - this.startY, 2));
-    if (distance > this.maxDistance) {
-      this.maxDistance = distance;
-    }
-    return distance;
-  };
-
-  window.easyMindMupClasses.LegendEvents = LegendEvents;
-  //####################################################################################################################
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $source - element with class ".mindmup-legend-item-cont", where dragging started
-   * @constructor
-   */
-  function DragAvatar(ysy, $source) {
-    this.ysy = ysy;
-    this.init($source);
-    this.legendItemId = $source.data("item_id");
-  }
-
-  DragAvatar.prototype.init = function ($source) {
-    var $boxElement = $source.children(".mindmup-legend-color-box");
-    var colorClass = $boxElement[0].className;//.replace("mindmup-legend-color-box ","");
-    this.$cont = $('<div class="mindmup-legend-drag-avatar ' + colorClass + '"></div>');
-  };
-  /**
-   * moves avatar to chosen coordinates
-   * @param {number} x
-   * @param {number} y
-   */
-  DragAvatar.prototype.moveAvatar = function (x, y) {
-    this.$cont.css({left: x, top: y});
-  };
-  DragAvatar.prototype.destroy = function () {
-    this.$cont.remove();
-  };
-  DragAvatar.prototype.getChangeObject = function () {
-    var store = this.ysy.styles.getCurrentStyle();
-    return store.changeObject(this.legendItemId);
-  };
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/libs.js b/plugins/easy_mindmup/assets/javascripts/libs.js
deleted file mode 100644
index 52e166e..0000000
--- a/plugins/easy_mindmup/assets/javascripts/libs.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Mustache.js */
-(function defineMustache(global,factory){if(typeof exports==="object"&&exports&&typeof exports.nodeName!=="string"){factory(exports)}else if(typeof define==="function"&&define.amd){define(["exports"],factory)}else{global.Mustache={};factory(global.Mustache)}})(this,function mustacheFactory(mustache){var objectToString=Object.prototype.toString;var isArray=Array.isArray||function isArrayPolyfill(object){return objectToString.call(object)==="[object Array]"};function isFunction(object){return typeof object==="function"}function typeStr(obj){return isArray(obj)?"array":typeof obj}function escapeRegExp(string){return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function hasProperty(obj,propName){return obj!=null&&typeof obj==="object"&&propName in obj}var regExpTest=RegExp.prototype.test;function testRegExp(re,string){return regExpTest.call(re,string)}var nonSpaceRe=/\S/;function isWhitespace(string){return!testRegExp(nonSpaceRe,string)}var entityMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};function escapeHtml(string){return String(string).replace(/[&<>"'`=\/]/g,function fromEntityMap(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;function parseTemplate(template,tags){if(!template)return[];var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tagsToCompile){if(typeof tagsToCompile==="string")tagsToCompile=tagsToCompile.split(spaceRe,2);if(!isArray(tagsToCompile)||tagsToCompile.length!==2)throw new Error("Invalid tags: "+tagsToCompile);openingTagRe=new RegExp(escapeRegExp(tagsToCompile[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tagsToCompile[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tagsToCompile[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i<valueLength;++i){chr=value.charAt(i);if(isWhitespace(chr)){spaces.push(tokens.length)}else{nonSpace=true}tokens.push(["text",chr,start,start+1]);start+=1;if(chr==="\n")stripSpace()}}if(!scanner.scan(openingTagRe))break;hasTag=true;type=scanner.scan(tagRe)||"name";scanner.scan(whiteRe);if(type==="="){value=scanner.scanUntil(equalsRe);scanner.scan(equalsRe);scanner.scanUntil(closingTagRe)}else if(type==="{"){value=scanner.scanUntil(closingCurlyRe);scanner.scan(curlyRe);scanner.scanUntil(closingTagRe);type="&"}else{value=scanner.scanUntil(closingTagRe)}if(!scanner.scan(closingTagRe))throw new Error("Unclosed tag at "+scanner.pos);token=[type,value,start,scanner.pos];tokens.push(token);if(type==="#"||type==="^"){sections.push(token)}else if(type==="/"){openSection=sections.pop();if(!openSection)throw new Error('Unopened section "'+value+'" at '+start);if(openSection[1]!==value)throw new Error('Unclosed section "'+openSection[1]+'" at '+start)}else if(type==="name"||type==="{"||type==="&"){nonSpace=true}else if(type==="="){compileTags(value)}}openSection=sections.pop();if(openSection)throw new Error('Unclosed section "'+openSection[1]+'" at '+scanner.pos);return nestTokens(squashTokens(tokens))}function squashTokens(tokens){var squashedTokens=[];var token,lastToken;for(var i=0,numTokens=tokens.length;i<numTokens;++i){token=tokens[i];if(token){if(token[0]==="text"&&lastToken&&lastToken[0]==="text"){lastToken[1]+=token[1];lastToken[3]=token[3]}else{squashedTokens.push(token);lastToken=token}}}return squashedTokens}function nestTokens(tokens){var nestedTokens=[];var collector=nestedTokens;var sections=[];var token,section;for(var i=0,numTokens=tokens.length;i<numTokens;++i){token=tokens[i];switch(token[0]){case"#":case"^":collector.push(token);sections.push(token);collector=token[4]=[];break;case"/":section=sections.pop();section[5]=token[2];collector=sections.length>0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function eos(){return this.tail===""};Scanner.prototype.scan=function scan(re){var match=this.tail.match(re);if(!match||match.index!==0)return"";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function scanUntil(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case 0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function push(view){return new Context(view,this)};Context.prototype.lookup=function lookup(name){var cache=this.cache;var value;if(cache.hasOwnProperty(name)){value=cache[name]}else{var context=this,names,index,lookupHit=false;while(context){if(name.indexOf(".")>0){value=context.view;names=name.split(".");index=0;while(value!=null&&index<names.length){if(index===names.length-1)lookupHit=hasProperty(value,names[index]);value=value[names[index++]]}}else{value=context.view[name];lookupHit=hasProperty(context.view,name)}if(lookupHit)break;context=context.parent}cache[name]=value}if(isFunction(value))value=value.call(this.view);return value};function Writer(){this.cache={}}Writer.prototype.clearCache=function clearCache(){this.cache={}};Writer.prototype.parse=function parse(template,tags){var cache=this.cache;var tokens=cache[template];if(tokens==null)tokens=cache[template]=parseTemplate(template,tags);return tokens};Writer.prototype.render=function render(template,view,partials){var tokens=this.parse(template);var context=view instanceof Context?view:new Context(view);return this.renderTokens(tokens,context,partials,template)};Writer.prototype.renderTokens=function renderTokens(tokens,context,partials,originalTemplate){var buffer="";var token,symbol,value;for(var i=0,numTokens=tokens.length;i<numTokens;++i){value=undefined;token=tokens[i];symbol=token[0];if(symbol==="#")value=this.renderSection(token,context,partials,originalTemplate);else if(symbol==="^")value=this.renderInverted(token,context,partials,originalTemplate);else if(symbol===">")value=this.renderPartial(token,context,partials,originalTemplate);else if(symbol==="&")value=this.unescapedValue(token,context);else if(symbol==="name")value=this.escapedValue(token,context);else if(symbol==="text")value=this.rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype.renderSection=function renderSection(token,context,partials,originalTemplate){var self=this;var buffer="";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;j<valueLength;++j){buffer+=this.renderTokens(token[4],context.push(value[j]),partials,originalTemplate)}}else if(typeof value==="object"||typeof value==="string"||typeof value==="number"){buffer+=this.renderTokens(token[4],context.push(value),partials,originalTemplate)}else if(isFunction(value)){if(typeof originalTemplate!=="string")throw new Error("Cannot use higher-order sections without the original template");value=value.call(context.view,originalTemplate.slice(token[3],token[5]),subRender);if(value!=null)buffer+=value}else{buffer+=this.renderTokens(token[4],context,partials,originalTemplate)}return buffer};Writer.prototype.renderInverted=function renderInverted(token,context,partials,originalTemplate){var value=context.lookup(token[1]);if(!value||isArray(value)&&value.length===0)return this.renderTokens(token[4],context,partials,originalTemplate)};Writer.prototype.renderPartial=function renderPartial(token,context,partials){if(!partials)return;var value=isFunction(partials)?partials(token[1]):partials[token[1]];if(value!=null)return this.renderTokens(this.parse(value),context,partials,value)};Writer.prototype.unescapedValue=function unescapedValue(token,context){var value=context.lookup(token[1]);if(value!=null)return value};Writer.prototype.escapedValue=function escapedValue(token,context){var value=context.lookup(token[1]);if(value!=null)return mustache.escape(value)};Writer.prototype.rawValue=function rawValue(token){return token[1]};mustache.name="mustache.js";mustache.version="2.2.1";mustache.tags=["{{","}}"];var defaultWriter=new Writer;mustache.clearCache=function clearCache(){return defaultWriter.clearCache()};mustache.parse=function parse(template,tags){return defaultWriter.parse(template,tags)};mustache.render=function render(template,view,partials){if(typeof template!=="string"){throw new TypeError('Invalid template! Template should be a "string" '+'but "'+typeStr(template)+'" was given as the first '+"argument for mustache#render(template, view, partials)")}return defaultWriter.render(template,view,partials)};mustache.to_html=function to_html(template,view,partials,send){var result=mustache.render(template,view,partials);if(isFunction(send)){send(result)}else{return result}};mustache.escape=escapeHtml;mustache.Scanner=Scanner;mustache.Context=Context;mustache.Writer=Writer});
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/link_edit_widget.js b/plugins/easy_mindmup/assets/javascripts/link_edit_widget.js
deleted file mode 100644
index 75fea73..0000000
--- a/plugins/easy_mindmup/assets/javascripts/link_edit_widget.js
+++ /dev/null
@@ -1,70 +0,0 @@
-(function () {
-  /**
-   * Class for handle of link edit modal
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function LinkEdit(ysy) {
-    this.ysy = ysy;
-    this.init(ysy);
-  }
-
-  /**
-   *
-   * @param {MindMup} ysy
-   */
-  LinkEdit.prototype.init = function (ysy) {
-    var self = this;
-    ysy.eventBus.register("MapInited", function (mapModel) {
-      self._prepareWidget(mapModel);
-    });
-  };
-  /** @private */
-  LinkEdit.prototype._prepareWidget = function (mapModel) {
-    /** @type {MindMup} */
-    var ysy = this.ysy;
-    /** @type {jQuery} */
-    var element = ysy.$container.find('.link-edit-widget');//.linkEditWidget(mapModel);
-    element.hide();
-    var currentLink, width, height;//, colorElement, lineStyleElement, arrowElement;
-    var typeElement;
-    // colorElement = element.find('.color');
-    // lineStyleElement = element.find('.lineStyle');
-    // arrowElement = element.find('.arrow');
-    typeElement = element.find('.link-edit-type-actual');
-    mapModel.addEventListener('linkSelected', function (link, selectionPoint) {
-      currentLink = link;
-      typeElement.text(ysy.settings.labels.links[link.attr.data.type]);
-      element.show();
-      var cont_off = ysy.$container.offset();
-      width = width || element.width();
-      height = height || element.height();
-      element.css({
-        top: (selectionPoint.y - cont_off.top - 5) + 'px',
-        left: (selectionPoint.x - cont_off.left - 5) + 'px'
-      });
-      // colorElement.val(linkStyle.color).change();
-      // lineStyleElement.val(linkStyle.lineStyle);
-      // arrowElement[linkStyle.arrow ? 'addClass' : 'removeClass']('active');
-    });
-    mapModel.addEventListener('mapMoveRequested', function () {
-      element.hide();
-    });
-    element.find('.delete').click(function () {
-      mapModel.removeLink('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo);
-      element.hide();
-    });
-    // colorElement.change(function () {
-    //   mapModel.updateLinkStyle('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo, 'color', jQuery(this).val());
-    // });
-    // lineStyleElement.find('a').click(function () {
-    //   mapModel.updateLinkStyle('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo, 'lineStyle', jQuery(this).text());
-    // });
-    // arrowElement.click(function () {
-    //   mapModel.updateLinkStyle('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo, 'arrow', !arrowElement.hasClass('active'));
-    // });
-    element.mouseleave(element.hide.bind(element));
-  };
-
-  window.easyMindMupClasses.LinkEdit = LinkEdit;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/links.js b/plugins/easy_mindmup/assets/javascripts/links.js
deleted file mode 100644
index 953c7ff..0000000
--- a/plugins/easy_mindmup/assets/javascripts/links.js
+++ /dev/null
@@ -1,198 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Links(ysy) {
-    this.ysy = ysy;
-    this.linkArray=[];
-    this.disabled = false;
-    this.showLinks = false;
-  }
-
-  Links.prototype.commonLinkStyle = {
-    "color": "#0000FF",
-    "lineStyle": "dashed",
-    "arrow": false
-  };
-  Links.prototype.precedesLinkStyle = {
-    "color": "#00FF00",
-    "lineStyle": "solid",
-    "arrow": true
-  };
-  /**
-   *
-   * @param data
-   * @param {Array} convertedEntities
-   * @return {Array}
-   */
-  Links.prototype.convertRelations = function (data, convertedEntities) {
-    if (!data.relations){
-      this.disabled=true;
-      return null;
-    }
-    var relations = data.relations;
-    var issueMap = {};
-    for (var i = 1; i < convertedEntities.length; i++) {
-      var entity = convertedEntities[i];
-      if (entity.attr.entityType!=="issue") continue;
-      issueMap[entity.attr.data.id] = entity;
-    }
-    var links = [];
-    for (i = 0; i < relations.length; i++) {
-      var relation = relations[i];
-      var source = issueMap[relation.source_id];
-      var target = issueMap[relation.target_id];
-      if (!source || !target) continue;
-      var style = this.getLinkStyleFromType(relation.type);
-      var link = {
-        "ideaIdFrom": source.id,
-        "ideaIdTo": target.id,
-        "attr": {
-          "style": style,
-          "data": relation
-        }
-      };
-      links.push(link);
-    }
-    return links;
-  };
-  Links.prototype.getLinkStyleFromType = function (type) {
-    var style = this.commonLinkStyle;
-    if (type === "precedes" || type === "start_to_start" || type === "finish_to_finish" || type === "start_to_finish") {
-      style = this.precedesLinkStyle;
-    }
-    return $.extend({}, style);
-  };
-  /**
-   *
-   * @param {RootIdea} idea
-   * @param {Array} links
-   */
-  Links.prototype.attachLinks = function (idea, links) {
-    if(this.disabled) return;
-    this.linkArray = links;
-    idea.links = null;
-    if (this.showLinks)
-      idea.links = links;
-  };
-
-
-  Links.prototype.outerPath = function (parent, child) {
-    'use strict';
-    var xControl = 125;
-    var leftRightXControl = 250;
-    var yControl = 75;
-    var parentIsLeft = parent.left < 0;
-    var childIsLeft = child.left < 0;
-
-    var position = {
-      left: Math.min(parent.left, child.left),
-      top: Math.min(parent.top, child.top)
-    };
-    position.width = Math.max(parent.left + parent.width, child.left + child.width, position.left + 1) - position.left;
-    position.height = Math.max(parent.top + parent.height, child.top + child.height, position.top + 1) - position.top;
-
-    var parentMount = {
-      x: parent.left - position.left + (parentIsLeft ? 0 : parent.width),
-      y: parent.top - position.top + 0.5 * parent.height
-    };
-    var childMount = {
-      x: child.left - position.left + (childIsLeft ? 0 : child.width),
-      y: child.top - position.top + 0.5 * child.height
-    };
-
-    if (parentIsLeft === childIsLeft && Math.abs(parentMount.y - childMount.y) > 50) {
-      // simpler quadratic bezier
-      var commonControl = {
-        y: (parentMount.y + childMount.y) / 2,
-        x: (Math.max(Math.abs(parentMount.x), Math.abs(childMount.x)) + xControl) * (parentIsLeft ? -1 : 1)
-      };
-      return {
-        'd': 'M' + Math.round(parentMount.x) + ',' + Math.round(parentMount.y)
-        + 'Q' + Math.round(commonControl.x) + ',' + Math.round(commonControl.y) + ',' + Math.round(childMount.x) + ',' + Math.round(childMount.y),
-        'conn': {
-          from: {x: commonControl.x + position.left, y: commonControl.y + position.top},
-          to: {x: childMount.x + position.left, y: childMount.y + position.top}
-        },
-        'position': position
-      }
-    }
-    if (parentIsLeft !== childIsLeft) {
-      xControl = leftRightXControl;
-    }
-
-    var parentControl = {
-      x: parentMount.x + xControl * (parentIsLeft ? -1 : 1)
-    };
-    var childControl = {
-      x: childMount.x + xControl * (childIsLeft ? -1 : 1)
-    };
-    if (Math.abs(parentMount.y - childMount.y) < 50) {
-      parentControl.y = parentMount.y + yControl * (parentMount.y > -position.top ? 1 : -1);
-      childControl.y = childMount.y + yControl * (childMount.y > -position.top ? 1 : -1);
-    } else {
-      var diffY = childMount.y - parentMount.y;
-      parentControl.y = parentMount.y + diffY / 4;
-      childControl.y = childMount.y - diffY / 4;
-    }
-    return {
-      'd': 'M' + Math.round(parentMount.x) + ',' + Math.round(parentMount.y)
-      + 'C' + Math.round(parentControl.x) + ',' + Math.round(parentControl.y) + ',' + Math.round(childControl.x) + ',' + Math.round(childControl.y) + ',' + Math.round(childMount.x) + ',' + Math.round(childMount.y),
-      'conn': {
-        from: {x: childControl.x + position.left, y: childControl.y + position.top},
-        to: {x: childMount.x + position.left, y: childMount.y + position.top}
-      },
-      'position': position
-    }
-  };
-  window.easyMindMupClasses.Links = Links;
-  //####################################################################################################################
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function ShowLinksButton(ysy, $parent) {
-    this.ysy = ysy;
-    this.init(ysy, $parent);
-  }
-
-  ShowLinksButton.prototype.id = "ShowLinksButton";
-
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @return {ShowLinksButton}
-   */
-  ShowLinksButton.prototype.init = function (ysy, $parent) {
-    this.$element = $parent.find(".show-links-toggler");
-    /** @type {Links} */
-    var linkClass = this.ysy.links;
-    this.$element.click($.proxy(function () {
-      linkClass.showLinks = !linkClass.showLinks;
-      if (linkClass.showLinks) {
-        ysy.idea.links = ysy.links.linkArray;
-      } else {
-        delete ysy.idea.links;
-      }
-      ysy.idea.dispatchEvent('changed');
-      ysy.repainter.redrawMe(this);
-    }, this));
-    return this;
-  };
-  ShowLinksButton.prototype._render = function () {
-    /** @type {Links} */
-    var linkClass = this.ysy.links;
-    if(linkClass.disabled){
-      this.$element.hide();
-    }
-    var isActive = linkClass.showLinks || false;
-    this.$element.find("a").toggleClass("active", isActive);
-  };
-
-  window.easyMindMupClasses.ShowLinksButton = ShowLinksButton;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/loader.js b/plugins/easy_mindmup/assets/javascripts/loader.js
deleted file mode 100644
index 58c9578..0000000
--- a/plugins/easy_mindmup/assets/javascripts/loader.js
+++ /dev/null
@@ -1,391 +0,0 @@
-(function () {
-  /**
-   * Class responsible for loading data from database and generating tree
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Loader(ysy) {
-    this.ysy = ysy;
-    // this.lastStateChecker = this.lastStateChecker || new window.easyMindMupClasses.LastStateChecker(ysy);
-    /**
-     * mindMup ID of rootNode - usually 1
-     * @type {number}
-     * @private
-     */
-    this._rootId = 1;
-  }
-
-  /**
-   * main load function
-   * beware - it is not sync or callback capable. Use "AfterLoad" event
-   * @return {Loader}
-   */
-  Loader.prototype.load = function () {
-    // var self = this;
-    // var last = this.ysy.storage.lastState.getSavedIdea();
-    // if (last) {
-    //   var storedDeferred = this.openStoredModal(last);
-    // }
-    $.getJSON(this.ysy.settings.paths.data, $.proxy(this._handleData, this));
-    // $.getJSON(this.ysy.settings.paths.data, function (rawData) {
-    // if (storedDeferred) {
-    //   storedDeferred.done(function (type) {
-    //     if (type === "server") {
-    //       self._handleData(rawData);
-    //     } else {
-    //       self.ysy.storage.clear();
-    //       var data = self.extractData(rawData);
-    //       self.loadSideData(data);
-    //       var idea = MAPJS.content(last);
-    //       self.ysy.storage.extra.save(idea);
-    //       self.setIdea(idea);
-    //     }
-    //   });
-    //   return;
-    // }
-    // self._handleData(rawData);
-    // });
-    return this;
-  };
-  /**
-   * main data processor
-   * @param {Object} rawData
-   * @return {*}
-   */
-  Loader.prototype._handleData = function (rawData) {
-    var data = this.extractData(rawData);
-    // this.sourceData = data;
-    this.loadSideData(data);
-    if (this.ysy.idea) {
-      return this._updateIdeaByData(this.ysy.idea, data);
-    }
-    this.ysy.storage.extra.positionExtract = data["layout"];  // position of all nodes
-    var convertedData = this.convertData(data);
-    var enhancedData = this.ysy.storage.extra.enhanceData(convertedData, convertedData[this._rootId]);
-    var links = this.ysy.links.convertRelations(data, enhancedData);
-    var rearranged = this.rearrangeData(enhancedData);
-    this.ysy.links.attachLinks(rearranged, links);
-    /** @type {RootIdea} */
-    var initedData = MAPJS.content(rearranged);
-    // var diff = ysy.storage.lastState.compareIdea(initedData, 'server');
-    // this.prepareLastStateMessages(diff, last, initedData);
-    this.ysy.storage.settings.load(initedData);
-    this.ysy.eventBus.fireEvent("IdeaConstructed", initedData);
-    this.setIdea(initedData);
-  };
-  /**
-   * update data processor
-   * @param {RootIdea} idea
-   * @param {Object} data
-   * @return {*}
-   */
-  Loader.prototype._updateIdeaByData = function (idea, data) {
-    var convertedData = this.convertData(data);
-    var enhancedData = this.ysy.storage.extra.enhanceData(convertedData, convertedData[this._rootId]);
-    var links = this.ysy.links.convertRelations(data, enhancedData);
-    var rearranged = this.rearrangeData(enhancedData, idea);
-    var initedData = MAPJS.content(rearranged);
-    idea.ideas = initedData.ideas;
-    idea.resetHistory();
-    this.ysy.links.attachLinks(idea, links);
-    this.ysy.eventBus.fireEvent("IdeaConstructed", idea);
-    this.ysy.eventBus.fireEvent("TreeUpdated", idea);
-    this.ysy.fireChangedEvent("TreeUpdated", "");
-  };
-  /**
-   * extract Object containing actual data from container coming from server
-   * @abstract
-   * @param {Object} rawData
-   * @return {Object} data
-   * @example return rawData["easy_wbs_data"];
-   */
-  Loader.prototype.extractData = function (rawData) {
-    rawData.cosi = true;
-    throw "extractData is not defined";
-  };
-  /**
-   * load additional data from JSON such as arrays containing trackers, users, etc.
-   * @abstract
-   * @param {Object} data
-   */
-  Loader.prototype.loadSideData = function (data) {
-    data.dom = true;
-    throw "loadSideData is not defined";
-    // if (!data) return;
-    // ysy.data.trackers = data.trackers;
-    // ysy.proManager.fireEvent("dataFilled", "trackers", ysy.data.trackers);
-  };
-  Loader.prototype.convertData = function (data) {
-    var projectsSource = data["projects"];
-    var issuesSource = data["issues"];
-    var convertedEntities = [{}];
-    var groupedConverted = {root: null, project: {}, issue: {}};
-    var i;
-    var projectGenerator = this.nodeGenerator("project", groupedConverted, convertedEntities);
-    for (i = 0; i < projectsSource.length; i++) {
-      var projectSource = projectsSource[i];
-      if (projectSource.id === this.ysy.settings.rootID) {
-        this._rootId = convertedEntities.length;
-      }
-      projectSource.isProject = true;
-      projectGenerator(projectSource, projectSource.name, false);
-    }
-    var issueGenerator = this.nodeGenerator("issue", groupedConverted, convertedEntities);
-    for (i = 0; i < issuesSource.length; i++) {
-      var issueSource = issuesSource[i];
-      issueGenerator(issueSource, issueSource.subject, !issueSource.filtered_out);
-    }
-    var root = new easyMindMupClasses.RootIdea(this.ysy).upgrade(convertedEntities[this._rootId]);
-    groupedConverted.root = root;
-    convertedEntities[this._rootId] = root;
-    groupedConverted[root.attr.entityType][this.ysy.settings.rootID] = root;
-    this.assignParents(convertedEntities, groupedConverted);
-    return convertedEntities;
-  };
-  /**
-   * Prepare generator function for creating specific entity
-   * @param {String} entityType
-   * @param {Object} groupedConverted
-   * @param {Array} convertedList
-   * @return {Function}
-   */
-  Loader.prototype.nodeGenerator = function (entityType, groupedConverted, convertedList) {
-    return function (source, name, editable) {
-      var entity = new window.easyMindMupClasses.ModelEntity().fromServer(convertedList.length, name, entityType, editable, source);
-      groupedConverted[entityType][source.id] = entity;
-      convertedList.push(entity);
-    };
-  };
-  /**
-   * @abstract
-   * @param {ModelEntity} entity
-   * @param {boolean} next
-   * @return {ParentPack}
-   */
-  Loader.prototype.getParentFromSource = function (entity, next) {
-    // Override this - extract direct parent from entity
-    entity.title = next.toString();
-    throw "getParentFromSource is not defined";
-    // if (!next) {
-    //   if (entityData.parent_issue_id) return new ParentPack("issue", entityData.parent_issue_id);
-    //   if (entityData.parent_id) return new ParentPack("project", entityData.parent_id);
-    //   if (entityData.project_id) return new ParentPack("project", entityData.project_id);
-    // } else {
-    //   if (entityData.parent_issue_id) return new ParentPack("project", entityData.project_id);
-    // }
-    // return null;
-  };
-  /**
-   *
-   * @param {Array.<ModelEntity>} convertedEntities
-   * @param {Object} grouped
-   */
-  Loader.prototype.assignParents = function (convertedEntities, grouped) {
-    for (var id = 1; id < convertedEntities.length; id++) {
-      if (id === this._rootId) continue;
-      var entity = convertedEntities[id];
-      var parentGroup = this.getParentFromSource(entity, false);
-      if (parentGroup !== null) {
-        var parent = grouped[parentGroup.type][parentGroup.id];
-        if (!parent) {
-          parentGroup = this.getParentFromSource(entity, true);
-          if (parentGroup !== null) {
-            parent = grouped[parentGroup.type][parentGroup.id];
-          }
-        }
-      }
-      if (parent) {
-        entity.parent = parent;
-      } else {
-        entity.parent = grouped.root;
-      }
-    }
-  };
-  /**
-   *
-   * @param {Array.<ModelEntity>} convertedEntities
-   * @param {RootIdea} [oldIdea]
-   * @return {RootIdea}
-   */
-  Loader.prototype.rearrangeData = function (convertedEntities, oldIdea) {
-    var detachedIssues = [];
-    var index = 0;
-    /** @type {ModelEntity} entity */
-    var entity;
-    /** @type {ModelEntity} */
-    var parent;
-    var entitiesToProcess;
-    if (oldIdea) {
-      var idLookup = {};
-      for (var id = 1; id < convertedEntities.length; id++) {
-        if (id === this._rootId) continue;
-        entity = convertedEntities[id];
-        idLookup[entity.attr.data.id] = entity;
-      }
-      this.rearrangeByIdea(oldIdea, convertedEntities[this._rootId], idLookup);
-      entitiesToProcess = Object.getOwnPropertyNames(idLookup).map(function (serverId) {
-        return idLookup[serverId];
-      });
-    } else {
-      entitiesToProcess = convertedEntities.slice(1);
-    }
-
-    for (var i = 0; i < entitiesToProcess.length; i++) {
-      entity = entitiesToProcess[i];
-      parent = entity.parent;
-      if (!parent) continue;
-      var parentIdeas = parent.ideas;
-      parent.nChild++;
-      if (entity.rank) {
-        if (parentIdeas[entity.rank]) {
-          detachedIssues.push(parentIdeas[entity.rank])
-        }
-        parentIdeas[entity.rank] = entity;
-        delete entity.rank;
-      } else {
-        if (parent.id === this._rootId) {
-          index = parent.nChild % 2 === 0 ? -parent.nChild / 2 : parent.nChild / 2 + 0.5;
-          //console.log("index "+index + " nChild "+parent.nChild);
-          if (parentIdeas[index]) {
-            detachedIssues.push(entity);
-          } else {
-            parentIdeas[index] = entity;
-          }
-        } else {
-          if (parentIdeas[parent.nChild]) {
-            detachedIssues.push(entity);
-          } else {
-            parentIdeas[parent.nChild] = entity;
-          }
-        }
-      }
-      if (parent.id === this._rootId) {
-        var counter = 0;
-        index = 0;
-        while (detachedIssues.length > 0) {
-          counter++;
-          index = index > 0 ? index - counter : index + counter;
-          if (parentIdeas[index]) continue;
-          parentIdeas[index] = detachedIssues.shift();
-        }
-      } else {
-        index = 0;
-        while (detachedIssues.length > 0) {
-          index++;
-          if (parentIdeas[index]) continue;
-          parentIdeas[index] = detachedIssues.shift();
-        }
-      }
-    }
-    for (id = 1; id < convertedEntities.length; id++) {
-      entity = convertedEntities[id];
-      delete entity.parent;
-      if (entity.attr.collapsed === undefined) {
-        if (id === this._rootId) continue;
-        if (entity.nChild) {
-          entity.attr.collapsed = true;
-        }
-        delete entity.nChild;
-      }
-    }
-    return /** @type {RootIdea}*/ convertedEntities[this._rootId];
-  };
-  /**
-   *
-   * @param {ModelEntity} oldIdea
-   * @param {ModelEntity} newIdea
-   * @param {Object.<string,ModelEntity>} idLookup
-   */
-  Loader.prototype.rearrangeByIdea = function (oldIdea, newIdea, idLookup) {
-    if (!_.isEmpty(oldIdea.ideas)) {
-      var ranks = Object.getOwnPropertyNames(oldIdea.ideas);
-      var oldParentId = this.ysy.getData(oldIdea).id;
-      for (var i = 0; i < ranks.length; i++) {
-        var rank = ranks[i];
-        var oldChild = oldIdea.ideas[rank];
-        var oldChildId = this.ysy.getData(oldChild).id;
-        if (!oldChildId) continue;
-        var newChild = idLookup[oldChildId];
-        if (!newChild) continue;
-        var newParentId = this.ysy.getData(newChild.parent).id;
-        if(oldParentId !== newParentId) continue;
-        if (!newIdea.ideas) {
-          newIdea.ideas = {};
-        }
-        newIdea.ideas[rank] = newChild;
-        newIdea.nChild++;
-        this.rearrangeByIdea(oldChild, newChild, idLookup);
-      }
-    }
-    delete idLookup[newIdea.attr.data.id];
-  };
-  /**
-   * push generated idea into MindMup component
-   * @param {RootIdea} idea
-   */
-  Loader.prototype.setIdea = function (idea) {
-    this.ysy.idea = idea;
-    this.ysy.mapModel.setIdea(idea);
-    this.ysy.eventBus.fireEvent("TreeLoaded", idea);
-  };
-  // /**
-  //  *
-  //  * @param last
-  //  // * @param {jQuery.Deferred} serverDeferred
-  //  */
-  // Loader.prototype.openStoredModal = function (last) {
-  //   var $target = this.ysy.util.getModal("form-modal", "50%");
-  //   var self = this;
-  //   var deferred = $.Deferred();
-  //   var template = self.ysy.settings.templates.storedModal;
-  //   //var obj = $.extend({}, ysy.view.getLabel("reloadModal"),{errors:errors});
-  //   //var rendered = Mustache.render(template, {});
-  //   $target.html(template);
-  //   var labels = {};
-  //   $target.find("button").each(function () {
-  //     labels[this.id] = $(this).text();
-  //   }).remove();
-  //   showModal("form-modal");
-  //   $target.dialog({
-  //     buttons: [
-  //       {
-  //         id: "stored_state_modal_local",
-  //         text: labels["stored_state_modal_local"],
-  //         class: "mindmup-stored-modal-button button-1",
-  //         click: function () {
-  //           deferred.resolve("local");
-  //           $target.dialog("close");
-  //         }
-  //       },
-  //       {
-  //         id: "stored_state_modal_server",
-  //         text: labels["stored_state_modal_server"],
-  //         class: "mindmup-stored-modal-button button-2",
-  //         click: function () {
-  //           $target.dialog("close");
-  //         }
-  //       }
-  //     ]
-  //   })
-  //       .on('dialogclose', function () {
-  //         deferred.resolve("server");
-  //       });
-  //   $("#last_state_modal_yes").focus();
-  //   return deferred;
-  // };
-
-  window.easyMindMupClasses.Loader = Loader;
-  //####################################################################################################################
-  /**
-   *
-   * @param {String} entityType
-   * @param {number} id
-   * @constructor
-   */
-  function ParentPack(entityType, id) {
-    this.type = entityType;
-    this.id = id;
-  }
-
-  window.easyMindMupClasses.ParentPack = ParentPack;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/logger.js b/plugins/easy_mindmup/assets/javascripts/logger.js
deleted file mode 100644
index eebb98f..0000000
--- a/plugins/easy_mindmup/assets/javascripts/logger.js
+++ /dev/null
@@ -1,70 +0,0 @@
-(function () {
-  function Logger(ysy) {
-    this.logLevel = 2;
-    this.mainDebug = "";
-    this.debugTypes = [
-      // "keys",
-      // "diff",
-      // "send",
-      // "storage",
-      // "events",
-      // "changedEvent",
-      // "redraw",
-      // "history",
-      // "validator",
-      // "multisave",
-      // "autosave",
-      // "mm:drag",
-      "nothing"
-    ];
-  }
-
-  Logger.prototype.log = function (text) {
-    if (this.logLevel >= 4) {
-      this.print(text);
-    }
-  };
-  Logger.prototype.message = function (text) {
-    if (this.logLevel >= 3) {
-      this.print(text);
-    }
-  };
-  Logger.prototype.debug = function (text, type) {
-    if (type) {
-      if (this.mainDebug === type) {
-        this.print(text, "debug");
-        return;
-      }
-      for (var i = 0; i < this.debugTypes.length; i++) {
-        if (this.debugTypes[i] === type) {
-          this.print(text, type === this.mainDebug ? "debug" : null);
-          return;
-        }
-      }
-    } else {
-      this.print(text, "debug");
-    }
-  };
-  Logger.prototype.warning = function (text) {
-    if (this.logLevel >= 2) {
-      this.print(text, "warning");
-    }
-  };
-  Logger.prototype.error = function (text) {
-    if (this.logLevel >= 1) {
-      this.print(text, "error");
-    }
-  };
-  Logger.prototype.print = function (text, type) {
-    if (type === "error") {
-      console.error(text);
-    } else if (type === "warning") {
-      console.warn(text);
-    } else if (type === "debug") {
-      console.debug(text);
-    } else {
-      console.log(text);
-    }
-  };
-  easyMindMupClasses.Logger = Logger;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/main.js b/plugins/easy_mindmup/assets/javascripts/main.js
deleted file mode 100644
index db481e1..0000000
--- a/plugins/easy_mindmup/assets/javascripts/main.js
+++ /dev/null
@@ -1,266 +0,0 @@
-(function () {
-  function MindMup(settings) {
-    this.settings = settings;
-    this.id = settings.mindMupId || "mindMup";
-    this.containerDiv = settings.containerDiv || "#container";
-    this.menuDiv = settings.menuDiv || "#mindmup_menu";
-    this.$container = $(this.containerDiv);
-    this.$menu = $(this.menuDiv);
-    MindMup.allMindMups[this.id] = this;
-    /** @type {boolean} */
-    this.helperInited = false;
-    // this.init();
-  }
-
-  MindMup.allMindMups = {};
-  MindMup.prototype.helperInit = function () {
-    this.helperInited = true;
-    var settings = this.settings;
-    if (settings.easyRedmine && $("#content").children(".easy-content-page").length === 0) {
-      $("#easy_wbs").addClass("easy-content-page");
-    }
-    // $(this.containerDiv + " p.nodata").remove();
-
-    /** HelperClassInit PHASE */
-    /** @type {Util} */
-    this.util = new easyMindMupClasses.Util(this);
-    /** @type {EventBus} */
-    this.eventBus = new easyMindMupClasses.EventBus(this);
-    /** @type {Logger} */
-    this.log = new easyMindMupClasses.Logger(this);
-    /** @type {Repainter} */
-    this.repainter = new easyMindMupClasses.Repainter(this);
-  };
-  MindMup.prototype.init = function () {
-    if (!this.helperInited) {
-      this.helperInit();
-    }
-
-    /** PatchClassInit PHASE */
-    this.eventBus.fireEvent("BeforePatchClassInit");
-    /** @type {LayoutPatch} */
-    this.layoutPatch = this.layoutPatch || new easyMindMupClasses.LayoutPatch(this);
-    /** @type {ContentPatch} */
-    this.contentPatch = this.contentPatch || new easyMindMupClasses.ContentPatch(this);
-    /** @type {NodePatch} */
-    this.nodePatch = this.nodePatch || new easyMindMupClasses.NodePatch(this);
-    /** @type {MapModelPatch} */
-    this.mapModelPatch = this.mapModelPatch || new easyMindMupClasses.MapModelPatch(this);
-
-    /** DataClassInit PHASE */
-    this.eventBus.fireEvent("BeforeDataClassInit");
-    /** @type {DomPatch} */
-    this.domPatch = this.domPatch || new easyMindMupClasses.DomPatch(this);
-    /** @type {AfterChange} */
-    this.afterChange = this.afterChange || new easyMindMupClasses.AfterChange(this);
-    /** @type {Storage} */
-    this.storage = this.storage || new easyMindMupClasses.Storage(this);
-    /** @type {History} */
-    this.history = this.history || new easyMindMupClasses.History(this);
-    /** @type {Validator} */
-    this.validator = this.validator || new easyMindMupClasses.Validator(this);
-    /** @type {Links} */
-    this.links = this.links || new easyMindMupClasses.Links(this);
-    /** @type {DataStorage} */
-    this.dataStorage = this.dataStorage || new easyMindMupClasses.DataStorage(this);
-
-    /** ViewClassInit PHASE */
-    this.eventBus.fireEvent("BeforeViewClassInit");
-    /** @type {MMInitiator} */
-    this.mmInitiator = this.mmInitiator || new easyMindMupClasses.MMInitiator(this);
-    /** @type {Filter} */
-    this.filter = this.filter || new easyMindMupClasses.Filter(this);
-    /** @type {Styles} */
-    this.styles = this.styles || new easyMindMupClasses.Styles(this);
-    /** @type {Legend} */
-    this.legends = this.legends || new easyMindMupClasses.Legend(this);
-    /** @type {Toolbar} */
-    this.toolbar = this.toolbar || new easyMindMupClasses.Toolbar(this);
-    /** @type {LinkEdit} */
-    this.linksEdit = this.linksEdit || new easyMindMupClasses.LinkEdit(this);
-    /** @type {Print} */
-    this.print = this.print || new easyMindMupClasses.Print(this);
-    /** @type {ContextMenu} */
-    this.contextMenu = this.contextMenu || new easyMindMupClasses.ContextMenu(this);
-    /** @type {LegendEvents} */
-    this.legendEvents = this.legendEvents || new easyMindMupClasses.LegendEvents(this);
-
-    /** ServerClassInit PHASE */
-    this.eventBus.fireEvent("BeforeServerClassInit");
-    /** @type {Loader} */
-    this.loader = this.loader || new easyMindMupClasses.Loader(this);
-    /** @type {Saver} */
-    this.saver = this.saver || new easyMindMupClasses.Saver(this);
-    /** @type {Autosave} */
-    this.autosave = this.autosave || new easyMindMupClasses.Autosave(this);
-    /** @type {SaveProgress} */
-    this.saveProgress = this.saveProgress || new easyMindMupClasses.SaveProgress(this);
-    /** @type {SaveInfo} */
-    this.saveInfo = this.saveInfo || new easyMindMupClasses.SaveInfo(this);
-
-    /** BeforeMapInit PHASE */
-    this.eventBus.fireEvent("beforeMapInit");
-    this.mmInitiator.init(this); // initialize MindMup component
-
-    /** MapInited PHASE */
-    this.eventBus.fireEvent("MapInited", this.mapModel);
-    this.repainter.start();
-    this.loader.load();
-    /** TreeLoaded PHASE (after load) */
-  };
-  MindMup.prototype.idea = null;
-  MindMup.prototype.mapModel = null;
-  /**
-   * entityType of primary entity to create by Add functions
-   * @type {String}
-   */
-  MindMup.prototype.creatingEntity = null;
-  /**
-   * Get Node from Layout. Node is view counterpart of an idea
-   * @param {number} nodeId
-   * @return {ModelEntity} - very similar to ModelEntity, mainly [attr] property
-   */
-  MindMup.prototype.getLayoutNode = function (nodeId) {
-    if (!this.mapModel) return null;
-    var layout = this.mapModel.getCurrentLayout();
-    if (!layout) return null;
-    return layout.nodes[nodeId];
-  };
-  /**
-   *
-   * @param {ModelEntity} idea
-   * @return {ModelEntityData}
-   */
-  MindMup.prototype.getData = function (idea) {
-    if (!idea) return null;
-    if (!idea.attr.data) idea.attr.data = new window.easyMindMupClasses.ModelEntityData;
-    return idea.attr.data;
-  };
-  /**
-   *
-   * @param {ModelEntity} idea
-   * @param {Object|String} obj
-   * @param {boolean} [silent]
-   * @return {boolean}
-   */
-  MindMup.prototype.setData = function (idea, obj, silent) {
-    if (!idea) return false;
-    if (!idea.attr.data) idea.attr.data = new window.easyMindMupClasses.ModelEntityData;
-    var data = idea.attr.data;
-    if (typeof(obj) === 'string') {
-      obj = JSON.parse(obj);
-    }
-    var props = Object.getOwnPropertyNames(obj);
-    var changed = false;
-    var rev = {};
-    for (var i = 0; i < props.length; i++) {
-      var key = props[i];
-      if (obj[key] !== data[key]) {
-        if (!data[key] && !obj[key]) continue;
-        if (!data._old) data._old = {};
-        data._old[key] = data[key];
-        rev[key] = data[key];
-        data[key] = obj[key];
-        if (this.afterChange[key + 'Func']) {
-          this.afterChange[key + 'Func'](idea, obj[key], data._old[key]);
-        }
-        changed = true;
-      }
-    }
-    if (changed && !silent) {
-      var self = this;
-      this.idea.logChange("setData", [idea, obj], function () {
-        self.setData(idea, rev, true);
-      });
-    }
-    return changed;
-  };
-  /**
-   *
-   * @param {ModelEntity} idea
-   * @param {Object|String} obj - should be with index of customField as key
-   * @param {boolean} [silent]
-   * @return {boolean}
-   */
-  MindMup.prototype.setCustomData = function (idea, obj, silent) {
-    if (!idea) return false;
-    if (!idea.attr.data) idea.attr.data = new window.easyMindMupClasses.ModelEntityData;
-    var data = idea.attr.data;
-    var customFields = data.custom_fields;
-    if (typeof(obj) === 'string') {
-      obj = JSON.parse(obj);
-    }
-    var props = Object.getOwnPropertyNames(obj);
-    if (!customFields) {
-      data.custom_fields = customFields = [];
-      for (var k = 0; k < props.length; k++) {
-        customFields.push({"id": props[k], "value": obj[props[k]]});
-      }
-      if (!silent) {
-        this.idea.logChange("initCustomData", [idea, obj], function () {
-          delete idea.attr.data.custom_fields;
-        });
-      }
-      return true;
-    }
-    var changed = false;
-    var rev = {};
-    for (var i = 0; i < props.length; i++) {
-      var stringId = props[i];
-      var id = parseInt(stringId);
-      for (var j = 0; j < customFields.length; j++) {
-        var customField = customFields[j];
-        if (customField.id !== id) continue;
-        if (obj[stringId] !== customField.value) {
-          if (!data._old) data._old = {};
-          if (!data._old.custom_fields) data._old.custom_fields = {};
-          data._old.custom_fields[j] = {value: customField.value};
-          rev[stringId] = customField.value;
-          customField.value = obj[stringId];
-          // if (this.afterChange['customFieldFunc']) {
-          //   this.afterChange['customFieldFunc'](idea, obj[index], data._old.custom_fields[index]);
-          // }
-          changed = true;
-        }
-        break;
-      }
-    }
-    if (changed && !silent) {
-      var self = this;
-      this.idea.logChange("setCustomData", [idea, obj], function () {
-        self.setCustomData(idea, rev, true);
-      })
-    }
-    return changed;
-  };
-  /**
-   * @param {String} eventSubName
-   * @param {String} json
-   */
-  MindMup.prototype.fireChangedEvent = function (eventSubName, json) {
-    if (!this.mapModel.getInputEnabled()) return;
-    this.idea.dispatchEvent('changed', eventSubName, json);
-  };
-  /**
-   * @param {ModelEntity} idea
-   * @return {jQuery}
-   */
-  MindMup.prototype.getNodeElement = function (idea) {
-    return this.$container.find("#node_" + idea.id);
-  };
-  /**
-   *
-   * @param {*} idea
-   * @return {ModelEntity}
-   */
-  MindMup.prototype.upgradeToModelEntity = function (idea) {
-    idea.__proto__ = window.easyMindMupClasses.ModelEntity.prototype;
-    idea.attr = new window.easyMindMupClasses.ModelEntityAttr().fromJson(idea.attr);
-    idea.attr.entityType = this.creatingEntity;
-    return idea;
-  };
-
-  window.easyMindMupClasses = window.easyMindMupClasses || {};
-  window.easyMindMupClasses.MindMup = MindMup;
-})();
-
diff --git a/plugins/easy_mindmup/assets/javascripts/map_model_patch.js b/plugins/easy_mindmup/assets/javascripts/map_model_patch.js
deleted file mode 100644
index 8f7a497..0000000
--- a/plugins/easy_mindmup/assets/javascripts/map_model_patch.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  /**
-   * Class responsible for modification of mapModel code
-   * @param {MindMup} ysy
-   */
-  function MapModelPatch(ysy) {
-    this.ysy = ysy;
-    this.init(ysy);
-    this.selectPersist = new SelectionPersist(ysy);
-  }
-
-  /**
-   * @param {MindMup} ysy
-   */
-  MapModelPatch.prototype.init = function (ysy) {
-    var self = this;
-    ysy.eventBus.register("MapInited", function (mapModel) {
-      self.selectPersist.init(mapModel);
-      mapModel.getYsy = function () {
-        return ysy;
-      };
-      mapModel.save = function (origin) {
-        ysy.saver.save();
-      };
-      /**
-       * Open new page with entity detail.
-       * Expect pathUrl with key [entityPage] and value [.../:entityID/...]
-       * @param {number|string} id
-       * @return {boolean}
-       */
-      mapModel.followURL = function (id) {
-        if (id === 'toolbar') {
-          id = mapModel.getCurrentlySelectedIdeaId();
-        }
-        /** @type {ModelEntity} */
-        var idea = ysy.mapModel.findIdeaById(id);
-        var data = ysy.getData(idea);
-        if (!data.id) return false;
-        if(data.default_url){
-          window.open(data.default_url);
-        } else{
-          var templateUrl = ysy.settings.paths[idea.attr.entityType + "Page"];
-          if (templateUrl === undefined) throw "entityPage URL is not defined";
-          window.open(templateUrl.replace(":" + idea.attr.entityType + "ID", data.id));
-        }
-        return true;
-      };
-      mapModel.editNodeData = function (source) {
-        if (!mapModel.getEditingEnabled() || !mapModel.getInputEnabled()) {
-          return false;
-        }
-        ysy.eventBus.fireEvent('nodeEditDataRequested', mapModel.getCurrentlySelectedIdeaId());
-      };
-      mapModel.toggleOneSide = function (source) {
-        var idea = ysy.idea;
-        idea.oneSideOn = !idea.oneSideOn;
-        //idea.toggleOneSide();
-        idea.dispatchEvent("changed");
-        mapModel.dispatchEvent("saveSettings", idea);
-      };
-      /** prevent scroll jumping after deselecting node while editing */
-      mapModel.addEventListener('inputEnabledChanged', function (canInput, holdFocus) {
-        if (canInput && !holdFocus) {
-          // console.log("inputEnabledChanged without focus");
-          mapModel.dispatchEvent('inputEnabledChanged', true, true);
-          return false;
-        }
-      }, 5);
-
-      var oldResetView = mapModel.resetView;
-      mapModel.resetView = function (source) {
-        ysy.domPatch.resetRootPosition();
-        oldResetView(source);
-      };
-    });
-  };
-  window.easyMindMupClasses.MapModelPatch = MapModelPatch;
-  //####################################################################################################################
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function SelectionPersist(ysy) {
-    this.ysy = ysy;
-    this.preLastSelectedNode = null;
-    this.lastSelectedNode = null;
-  }
-
-  SelectionPersist.prototype.init = function (mapModel) {
-    var self = this;
-    var selectHandler = function (id, added) {
-      if (!added) return;
-      self.preLastSelectedNode = self.lastSelectedNode;
-      self.lastSelectedNode = id;
-    };
-    var resetViewHandler = function () {
-      self.preLastSelectedNode = self.preLastSelectedNode || self.ysy.idea.id;
-      self.lastSelectedNode = self.preLastSelectedNode;
-      mapModel.selectNode(self.preLastSelectedNode);
-    };
-    mapModel.addEventListener('nodeSelectionChanged', selectHandler);
-    mapModel.addEventListener('mapViewResetRequested', resetViewHandler, 5);
-  }
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/mapjs_init.js b/plugins/easy_mindmup/assets/javascripts/mapjs_init.js
deleted file mode 100644
index e95a24f..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mapjs_init.js
+++ /dev/null
@@ -1,92 +0,0 @@
-(function () {
-  /**
-   * Class responsible for initiation of MindMup mind map component
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function MMInitiator(ysy) {
-    this.ysy = ysy;
-  }
-
-  /**
-   *
-   * @param {MindMup} ysy
-   */
-  MMInitiator.prototype.init = function (ysy) {
-    var imageInsertController = new MAPJS.ImageInsertController("http://localhost:4999?u=");
-    var mapModel = new MAPJS.MapModel(ysy.layoutPatch.layoutCalculator, []);
-    jQuery(ysy.$container).domMapWidget(console, mapModel, false, imageInsertController, undefined, ysy);
-    jQuery(ysy.$menu).mapToolbarWidget(mapModel, ysy);
-    MAPJS.DOMRender.stageMargin = {top: 50, left: 50, bottom: 50, right: 50};
-    MAPJS.DOMRender.linkConnectorPath = ysy.links.outerPath;
-    MAPJS.DOMRender.nodeConnectorPath = ysy.domPatch.curvedPath;
-    ysy.mapModel = mapModel;
-    $(window).resize(function (event) {
-      ysy.eventBus.fireEvent("resize", event)
-    });
-    // imageInsertController.addEventListener('imageInsertError', function (reason) {
-    //   ysy.log.error('image insert error', reason);
-    // });
-  };
-
-  window.easyMindMupClasses.MMInitiator = MMInitiator;
-})();
-
-
-MAPJS.initAll = function (container) {
-  //jQuery.fn.attachmentEditorWidget = function (mapModel) {
-  //  'use strict';
-  //  return this.each(function () {
-  //    var element = jQuery(this);
-  //    mapModel.addEventListener('attachmentOpened', function (nodeId, attachment) {
-  //      mapModel.setAttachment(
-  //          'attachmentEditorWidget',
-  //          nodeId, {
-  //            contentType: 'text/html',
-  //            content: prompt('attachment', attachment && attachment.content)
-  //          }
-  //      );
-  //    });
-  //  });
-  //};
-
-
-  window.onerror = ysy.log.error;
-  // var container = jQuery('#container'),
-  //idea = MAPJS.content(test_tree()),
-  var imageInsertController = new MAPJS.ImageInsertController("http://localhost:4999?u="),
-      mapModel = new MAPJS.MapModel(MAPJS.DOMRender.layoutCalculator, []);
-  jQuery(container).domMapWidget(console, mapModel, false, imageInsertController, undefined, ysy);
-  jQuery('#wbs_menu').mapToolbarWidget(mapModel);
-  //jQuery('body').attachmentEditorWidget(mapModel);
-  //$("[data-mm-action='export-image']").click(function () {
-  //  MAPJS.pngExport(idea).then(function (url) {
-  //    window.open(url, '_blank');
-  //  });
-  //});
-  //mapModel.setIdea(idea);  // < HOSEK
-  MAPJS.DOMRender.stageMargin = {top: 50, left: 50, bottom: 50, right: 50};
-  MAPJS.DOMRender.linkConnectorPath = MAPJS.DOMRender.outerPath;
-  ysy.mapjs.mapModel = mapModel;
-  //jQuery('.arrow').click(function () {
-  //  jQuery(this).toggleClass('active');
-  //});
-  imageInsertController.addEventListener('imageInsertError', function (reason) {
-    ysy.log.error('image insert error', reason);
-  });
-  //container.on('drop', function (e) {
-  //  var dataTransfer = e.originalEvent.dataTransfer;
-  //  e.stopPropagation();
-  //  e.preventDefault();
-  //  if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {
-  //    var fileInfo = dataTransfer.files[0];
-  //    if (/\.mup$/.test(fileInfo.name)) {
-  //      var oFReader = new FileReader();
-  //      oFReader.onload = function (oFREvent) {
-  //        mapModel.setIdea(MAPJS.content(JSON.parse(oFREvent.target.result)));
-  //      };
-  //      oFReader.readAsText(fileInfo, 'UTF-8');
-  //    }
-  //  }
-  //});
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/clipboard.js b/plugins/easy_mindmup/assets/javascripts/mindmup/clipboard.js
deleted file mode 100644
index 19f5a3b..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/clipboard.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*global MAPJS*/
-MAPJS.MemoryClipboard = function () {
-  'use strict';
-  var self = this,
-      clone = function (something) {
-        if (!something) {
-          return undefined;
-        }
-        return JSON.parse(JSON.stringify(something));
-      },
-      contents;
-  self.get = function () {
-    return clone(contents);
-  };
-  self.put = function (c) {
-    contents = clone(c);
-  };
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/content.js b/plugins/easy_mindmup/assets/javascripts/mindmup/content.js
deleted file mode 100644
index d2eb7d1..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/content.js
+++ /dev/null
@@ -1,979 +0,0 @@
-/*jslint eqeq: true, forin: true, nomen: true*/
-/*jshint unused:false, loopfunc:true */
-/*global _, MAPJS, observable*/
-MAPJS.content = function (contentAggregate, sessionKey) {
-  'use strict';
-  var cachedId,
-      invalidateIdCache = function () {
-        cachedId = undefined;
-      },
-      maxId = function maxId(idea) {
-        idea = idea || contentAggregate;
-        if (!idea.ideas) {
-          return parseInt(idea.id, 10) || 0;
-        }
-        return _.reduce(
-            idea.ideas,
-            function (result, subidea) {
-              return Math.max(result, maxId(subidea));
-            },
-            parseInt(idea.id, 10) || 0
-        );
-      },
-      nextId = function nextId(originSession) {
-        originSession = originSession || sessionKey;
-        if (!cachedId) {
-          cachedId = maxId();
-        }
-        cachedId += 1;
-        if (originSession) {
-          return cachedId + '.' + originSession;
-        }
-        return cachedId;
-      },
-      init = function (contentIdea, originSession) {
-        if (!contentIdea.id) {
-          contentIdea.id = nextId(originSession);
-        } else {
-          invalidateIdCache();
-        }
-        if (contentIdea.ideas) {
-          _.each(contentIdea.ideas, function (value, key) {
-            contentIdea.ideas[parseFloat(key)] = init(value, originSession);
-          });
-        }
-        if (!contentIdea.title) {
-          contentIdea.title = '';
-        }
-        contentIdea.containsDirectChild = contentIdea.findChildRankById = function (childIdeaId) {
-          return parseFloat(
-              _.reduce(
-                  contentIdea.ideas,
-                  function (res, value, key) {
-                    return value.id == childIdeaId ? key : res;
-                  },
-                  undefined
-              )
-          );
-        };
-        contentIdea.findSubIdeaById = function (childIdeaId) {
-          var myChild = _.find(contentIdea.ideas, function (idea) {
-            return idea.id == childIdeaId;
-          });
-          return myChild || _.reduce(contentIdea.ideas, function (result, idea) {
-                return result || idea.findSubIdeaById(childIdeaId);
-              }, undefined);
-        };
-        contentIdea.find = function (predicate) {
-          var current = predicate(contentIdea) ? [_.pick(contentIdea, 'id', 'title')] : [];
-          if (_.size(contentIdea.ideas) === 0) {
-            return current;
-          }
-          return _.reduce(contentIdea.ideas, function (result, idea) {
-            return _.union(result, idea.find(predicate));
-          }, current);
-        };
-        contentIdea.getAttr = function (name) {
-          if (contentIdea.attr && contentIdea.attr[name]) {
-            return _.clone(contentIdea.attr[name]);
-          }
-          return false;
-        };
-        contentIdea.sortedSubIdeas = function () {
-          if (!contentIdea.ideas) {
-            return [];
-          }
-          var result = [],
-              childKeys = _.groupBy(_.map(_.keys(contentIdea.ideas), parseFloat), function (key) {
-                return key > 0;
-              }),
-              sortedChildKeys = _.sortBy(childKeys[true], Math.abs).concat(_.sortBy(childKeys[false], Math.abs));
-          _.each(sortedChildKeys, function (key) {
-            result.push(contentIdea.ideas[key]);
-          });
-          return result;
-        };
-        contentIdea.traverse = function (iterator, postOrder) {
-          if (!postOrder) {
-            iterator(contentIdea);
-          }
-          _.each(contentIdea.sortedSubIdeas(), function (subIdea) {
-            subIdea.traverse(iterator, postOrder);
-          });
-          if (postOrder) {
-            iterator(contentIdea);
-          }
-        };
-        return contentIdea;
-      },
-      maxKey = function (kvMap, sign) {
-        sign = sign || 1;
-        if (_.size(kvMap) === 0) {
-          return 0;
-        }
-        var currentKeys = _.keys(kvMap);
-        currentKeys.push(0);
-        /* ensure at least 0 is there for negative ranks */
-        return _.max(_.map(currentKeys, parseFloat), function (x) {
-          return x * sign;
-        });
-      },
-      nextChildRank = function (parentIdea) {
-        var newRank, counts, childRankSign = 1;
-        if (parentIdea.id == contentAggregate.id) {
-          counts = _.countBy(parentIdea.ideas, function (v, k) {
-            return k < 0;
-          });
-          if ((counts['true'] || 0) < counts['false']) {
-            childRankSign = -1;
-          }
-        }
-        newRank = maxKey(parentIdea.ideas, childRankSign) + childRankSign;
-        return newRank;
-      },
-      appendSubIdea = function (parentIdea, subIdea) {
-        var rank;
-        parentIdea.ideas = parentIdea.ideas || {};
-        rank = nextChildRank(parentIdea);
-        parentIdea.ideas[rank] = subIdea;
-        return rank;
-      },
-      findIdeaById = function (ideaId) {
-        return contentAggregate.id == ideaId ? contentAggregate : contentAggregate.findSubIdeaById(ideaId);
-      },
-      sameSideSiblingRanks = function (parentIdea, ideaRank) {
-        return _(_.map(_.keys(parentIdea.ideas), parseFloat)).reject(function (k) {
-          return k * ideaRank < 0;
-        });
-      },
-      sign = function (number) {
-        /* intentionally not returning 0 case, to help with split sorting into 2 groups */
-        return number < 0 ? -1 : 1;
-      },
-      eventStacks = {},
-      redoStacks = {},
-      isRedoInProgress = false,
-      batches = {},
-      notifyChange = function (method, args, originSession) {
-        if (originSession) {
-          contentAggregate.dispatchEvent('changed', method, args, originSession);
-        } else {
-          contentAggregate.dispatchEvent('changed', method, args);
-        }
-      },
-      appendChange = function (method, args, undofunc, originSession) {
-        var prev;
-        if (method === 'batch' || batches[originSession] || !eventStacks || !eventStacks[originSession] || eventStacks[originSession].length === 0) {
-          logChange(method, args, undofunc, originSession);
-          return;
-        } else {
-          prev = eventStacks[originSession].pop();
-          if (prev.eventMethod === 'batch') {
-            eventStacks[originSession].push({
-              eventMethod: 'batch',
-              eventArgs: prev.eventArgs.concat([[method].concat(args)]),
-              undoFunction: function () {
-                undofunc();
-                prev.undoFunction();
-              }
-            });
-          } else {
-            eventStacks[originSession].push({
-              eventMethod: 'batch',
-              eventArgs: [[prev.eventMethod].concat(prev.eventArgs)].concat([[method].concat(args)]),
-              undoFunction: function () {
-                undofunc();
-                prev.undoFunction();
-              }
-            });
-          }
-        }
-        if (isRedoInProgress) {
-          contentAggregate.dispatchEvent('changed', 'redo', undefined, originSession);
-        } else {
-          notifyChange(method, args, originSession);
-          redoStacks[originSession] = [];
-        }
-      },
-      logChange = function (method, args, undofunc, originSession) {
-        var event = {eventMethod: method, eventArgs: args, undoFunction: undofunc};
-        if (batches[originSession]) {
-          batches[originSession].push(event);
-          return;
-        }
-        if (!eventStacks[originSession]) {
-          eventStacks[originSession] = [];
-        }
-        eventStacks[originSession].push(event);
-
-        if (isRedoInProgress) {
-          contentAggregate.dispatchEvent('changed', 'redo', undefined, originSession);
-        } else {
-          notifyChange(method, args, originSession);
-          redoStacks[originSession] = [];
-        }
-      },
-      reorderChild = function (parentIdea, newRank, oldRank) {
-        parentIdea.ideas[newRank] = parentIdea.ideas[oldRank];
-        delete parentIdea.ideas[oldRank];
-      },
-      upgrade = function (idea) {
-        if (idea.style) {
-          idea.attr = {};
-          var collapsed = idea.style.collapsed;
-          delete idea.style.collapsed;
-          idea.attr.style = idea.style;
-          if (collapsed) {
-            idea.attr.collapsed = collapsed;
-          }
-          delete idea.style;
-        }
-        if (idea.ideas) {
-          _.each(idea.ideas, upgrade);
-        }
-      },
-      sessionFromId = function (id) {
-        var dotIndex = String(id).indexOf('.');
-        return dotIndex > 0 && id.substr(dotIndex + 1);
-      },
-      commandProcessors = {},
-      configuration = {},
-      uniqueResourcePostfix = '/xxxxxxxx-yxxx-yxxx-yxxx-xxxxxxxxxxxx/'.replace(/[xy]/g, function (c) {
-            /*jshint bitwise: false*/
-            // jscs:disable
-            var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
-            // jscs:enable
-            return v.toString(16);
-          }) + (sessionKey || ''),
-      updateAttr = function (object, attrName, attrValue) {
-        var oldAttr;
-        if (!object) {
-          return false;
-        }
-        oldAttr = _.extend({}, object.attr);
-        object.attr = _.extend({}, object.attr);
-        if (!attrValue || attrValue === 'false' || (_.isObject(attrValue) && _.isEmpty(attrValue))) {
-          if (!object.attr[attrName]) {
-            return false;
-          }
-          delete object.attr[attrName];
-        } else {
-          if (_.isEqual(object.attr[attrName], attrValue)) {
-            return false;
-          }
-          object.attr[attrName] = JSON.parse(JSON.stringify(attrValue));
-        }
-        if (_.size(object.attr) === 0) {
-          delete object.attr;
-        }
-        return function () {
-          object.attr = oldAttr;
-        };
-      };
-
-  contentAggregate.logChange = logChange;
-  contentAggregate.setConfiguration = function (config) {
-    configuration = config || {};
-  };
-  contentAggregate.getSessionKey = function () {
-    return sessionKey;
-  };
-  contentAggregate.nextSiblingId = function (subIdeaId) {
-    var parentIdea = contentAggregate.findParent(subIdeaId),
-        currentRank,
-        candidateSiblingRanks,
-        siblingsAfter;
-    if (!parentIdea) {
-      return false;
-    }
-    currentRank = parentIdea.findChildRankById(subIdeaId);
-    candidateSiblingRanks = sameSideSiblingRanks(parentIdea, currentRank);
-    siblingsAfter = _.reject(candidateSiblingRanks, function (k) {
-      return Math.abs(k) <= Math.abs(currentRank);
-    });
-    if (siblingsAfter.length === 0) {
-      return false;
-    }
-    return parentIdea.ideas[_.min(siblingsAfter, Math.abs)].id;
-  };
-  contentAggregate.sameSideSiblingIds = function (subIdeaId) {
-    var parentIdea = contentAggregate.findParent(subIdeaId),
-        currentRank = parentIdea.findChildRankById(subIdeaId);
-    return _.without(_.map(_.pick(parentIdea.ideas, sameSideSiblingRanks(parentIdea, currentRank)), function (i) {
-      return i.id;
-    }), subIdeaId);
-  };
-  contentAggregate.getAttrById = function (ideaId, attrName) {
-    var idea = findIdeaById(ideaId);
-    return idea && idea.getAttr(attrName);
-  };
-  contentAggregate.previousSiblingId = function (subIdeaId) {
-    var parentIdea = contentAggregate.findParent(subIdeaId),
-        currentRank,
-        candidateSiblingRanks,
-        siblingsBefore;
-    if (!parentIdea) {
-      return false;
-    }
-    currentRank = parentIdea.findChildRankById(subIdeaId);
-    candidateSiblingRanks = sameSideSiblingRanks(parentIdea, currentRank);
-    siblingsBefore = _.reject(candidateSiblingRanks, function (k) {
-      return Math.abs(k) >= Math.abs(currentRank);
-    });
-    if (siblingsBefore.length === 0) {
-      return false;
-    }
-    return parentIdea.ideas[_.max(siblingsBefore, Math.abs)].id;
-  };
-  contentAggregate.clone = function (subIdeaId) {
-    var toClone = (subIdeaId && subIdeaId != contentAggregate.id && contentAggregate.findSubIdeaById(subIdeaId)) || contentAggregate;
-    return JSON.parse(JSON.stringify(toClone));
-  };
-  contentAggregate.cloneMultiple = function (subIdeaIdArray) {
-    return _.map(subIdeaIdArray, contentAggregate.clone);
-  };
-  contentAggregate.calculatePath = function (ideaId, currentPath, potentialParent) {
-    if (contentAggregate.id == ideaId) {
-      return [];
-    }
-    currentPath = currentPath || [contentAggregate];
-    potentialParent = potentialParent || contentAggregate;
-    if (potentialParent.containsDirectChild(ideaId)) {
-      return currentPath;
-    }
-    return _.reduce(
-        potentialParent.ideas,
-        function (result, child) {
-          return result || contentAggregate.calculatePath(ideaId, [child].concat(currentPath), child);
-        },
-        false
-    );
-  };
-  contentAggregate.getSubTreeIds = function (rootIdeaId) {
-    var result = [],
-        collectIds = function (idea) {
-          if (_.isEmpty(idea.ideas)) {
-            return [];
-          }
-          _.each(idea.sortedSubIdeas(), function (child) {
-            collectIds(child);
-            result.push(child.id);
-          });
-        };
-    collectIds(contentAggregate.findSubIdeaById(rootIdeaId) || contentAggregate);
-    return result;
-  };
-  contentAggregate.findParent = function (subIdeaId, parentIdea) {
-    parentIdea = parentIdea || contentAggregate;
-    if (parentIdea.containsDirectChild(subIdeaId)) {
-      return parentIdea;
-    }
-    return _.reduce(
-        parentIdea.ideas,
-        function (result, child) {
-          return result || contentAggregate.findParent(subIdeaId, child);
-        },
-        false
-    );
-  };
-
-  /**** aggregate command processing methods ****/
-  contentAggregate.getCommandProcessors = function () {
-    return commandProcessors;
-  };
-  contentAggregate.startBatch = function (originSession) {
-    var activeSession = originSession || sessionKey;
-    contentAggregate.endBatch(originSession);
-    batches[activeSession] = [];
-  };
-  contentAggregate.endBatch = function (originSession) {
-    var activeSession = originSession || sessionKey,
-        inBatch = batches[activeSession],
-        batchArgs,
-        batchUndoFunctions,
-        undo;
-    batches[activeSession] = undefined;
-    if (_.isEmpty(inBatch)) {
-      return;
-    }
-    if (_.size(inBatch) === 1) {
-      logChange(inBatch[0].eventMethod, inBatch[0].eventArgs, inBatch[0].undoFunction, activeSession);
-    } else {
-      batchArgs = _.map(inBatch, function (event) {
-        return [event.eventMethod].concat(event.eventArgs);
-      });
-      batchUndoFunctions = _.sortBy(
-          _.map(inBatch, function (event) {
-            return event.undoFunction;
-          }),
-          function (f, idx) {
-            return -1 * idx;
-          }
-      );
-      undo = function () {
-        _.each(batchUndoFunctions, function (eventUndo) {
-          eventUndo();
-        });
-      };
-      logChange('batch', batchArgs, undo, activeSession);
-    }
-  };
-  contentAggregate.execCommand = function (cmd, args, originSession) {
-    if (!commandProcessors[cmd]) {
-      return false;
-    }
-    return commandProcessors[cmd].apply(contentAggregate, [originSession || sessionKey].concat(_.toArray(args)));
-  };
-
-  contentAggregate.batch = function (batchOp) {
-    contentAggregate.startBatch();
-    try {
-      batchOp();
-    }
-    finally {
-      contentAggregate.endBatch();
-    }
-  };
-
-  commandProcessors.batch = function (originSession) {
-    contentAggregate.startBatch(originSession);
-    try {
-      _.each(_.toArray(arguments).slice(1), function (event) {
-        contentAggregate.execCommand(event[0], event.slice(1), originSession);
-      });
-    }
-    finally {
-      contentAggregate.endBatch(originSession);
-    }
-  };
-  contentAggregate.pasteMultiple = function (parentIdeaId, jsonArrayToPaste) {
-    contentAggregate.startBatch();
-    var results = _.map(jsonArrayToPaste, function (json) {
-      return contentAggregate.paste(parentIdeaId, json);
-    });
-    contentAggregate.endBatch();
-    return results;
-  };
-
-  contentAggregate.paste = function (parentIdeaId, jsonToPaste, initialId) {
-    return contentAggregate.execCommand('paste', arguments);
-  };
-  commandProcessors.paste = function (originSession, parentIdeaId, jsonToPaste, initialId) {
-    var pasteParent = (parentIdeaId == contentAggregate.id) ? contentAggregate : contentAggregate.findSubIdeaById(parentIdeaId),
-        cleanUp = function (json) {
-          var result = _.omit(json, 'ideas', 'id', 'attr'), index = 1, childKeys, sortedChildKeys;
-          result.attr = _.omit(json.attr, configuration.nonClonedAttributes);
-          if (_.isEmpty(result.attr)) {
-            delete result.attr;
-          }
-          if (json.ideas) {
-            childKeys = _.groupBy(_.map(_.keys(json.ideas), parseFloat), function (key) {
-              return key > 0;
-            });
-            sortedChildKeys = _.sortBy(childKeys[true], Math.abs).concat(_.sortBy(childKeys[false], Math.abs));
-            result.ideas = {};
-            _.each(sortedChildKeys, function (key) {
-              result.ideas[index++] = cleanUp(json.ideas[key]);
-            });
-          }
-          return result;
-        },
-        newIdea,
-        newRank,
-        oldPosition;
-    if (initialId) {
-      cachedId = parseInt(initialId, 10) - 1;
-    }
-    newIdea = jsonToPaste && (jsonToPaste.title || jsonToPaste.attr) && init(cleanUp(jsonToPaste), sessionFromId(initialId));
-    if (!pasteParent || !newIdea) {
-      return false;
-    }
-    if (!contentAggregate.getYsy().validator.validate("paste", pasteParent, newIdea)) return false;
-    newRank = appendSubIdea(pasteParent, newIdea);
-    if (initialId) {
-      invalidateIdCache();
-    }
-    updateAttr(newIdea, 'position');
-    logChange('paste', [parentIdeaId, jsonToPaste, newIdea.id], function () {
-      delete pasteParent.ideas[newRank];
-    }, originSession);
-    return newIdea.id;
-  };
-  contentAggregate.flip = function (ideaId) {
-    return contentAggregate.execCommand('flip', arguments);
-  };
-  commandProcessors.flip = function (originSession, ideaId) {
-    var newRank, maxRank, currentRank = contentAggregate.findChildRankById(ideaId);
-    if (!currentRank) {
-      return false;
-    }
-    maxRank = maxKey(contentAggregate.ideas, -1 * sign(currentRank));
-    newRank = maxRank - 10 * sign(currentRank);
-    reorderChild(contentAggregate, newRank, currentRank);
-    logChange('flip', [ideaId], function () {
-      reorderChild(contentAggregate, currentRank, newRank);
-    }, originSession);
-    return true;
-  };
-  contentAggregate.initialiseTitle = function (ideaId, title) {
-    return contentAggregate.execCommand('initialiseTitle', arguments);
-  };
-  commandProcessors.initialiseTitle = function (originSession, ideaId, title) {
-    var idea = findIdeaById(ideaId), originalTitle;
-    if (!idea) {
-      return false;
-    }
-    originalTitle = idea.title;
-    if (originalTitle == title) {
-      return false;
-    }
-    idea.title = title;
-    appendChange('initialiseTitle', [ideaId, title], function () {
-      idea.title = originalTitle;
-    }, originSession);
-    return true;
-  };
-  contentAggregate.updateTitle = function (ideaId, title) {
-    return contentAggregate.execCommand('updateTitle', arguments);
-  };
-  commandProcessors.updateTitle = function (originSession, ideaId, title) {
-    var idea = findIdeaById(ideaId), originalTitle;
-    if (!idea) {
-      return false;
-    }
-    originalTitle = idea.title;
-    if (originalTitle == title) {
-      return false;
-    }
-    idea.title = title;
-    logChange('updateTitle', [ideaId, title], function () {
-      idea.title = originalTitle;
-    }, originSession);
-    return true;
-  };
-  contentAggregate.addSubIdea = function (parentId, ideaTitle, optionalNewId) {
-    return contentAggregate.execCommand('addSubIdea', arguments);
-  };
-  commandProcessors.addSubIdea = function (originSession, parentId, ideaTitle, optionalNewId) {
-    var idea, parent = findIdeaById(parentId), newRank;
-    if (!parent) {
-      return false;
-    }
-    if (optionalNewId && findIdeaById(optionalNewId)) {
-      return false;
-    }
-    idea = init({
-      title: ideaTitle,
-      id: optionalNewId
-    });
-    if (!contentAggregate.getYsy().validator.validate("addSubIdea", parent, idea)) return false;
-    newRank = appendSubIdea(parent, idea);
-    logChange('addSubIdea', [parentId, ideaTitle, idea.id], function () {
-      delete parent.ideas[newRank];
-    }, originSession);
-    return idea.id;
-  };
-  contentAggregate.removeMultiple = function (subIdeaIdArray) {
-    contentAggregate.startBatch();
-    var results = _.map(subIdeaIdArray, contentAggregate.removeSubIdea);
-    contentAggregate.endBatch();
-    return results;
-  };
-  contentAggregate.removeSubIdea = function (subIdeaId) {
-    return contentAggregate.execCommand('removeSubIdea', arguments);
-  };
-  commandProcessors.removeSubIdea = function (originSession, subIdeaId) {
-    if (!contentAggregate.getYsy().validator.validate("removeSubIdea", subIdeaId, originSession)) return false;
-    var parent = contentAggregate.findParent(subIdeaId), oldRank, oldIdea, oldLinks;
-    if (parent) {
-      oldRank = parent.findChildRankById(subIdeaId);
-      oldIdea = parent.ideas[oldRank];
-      delete parent.ideas[oldRank];
-      oldLinks = contentAggregate.links;
-      contentAggregate.links = _.reject(contentAggregate.links, function (link) {
-        return link.ideaIdFrom == subIdeaId || link.ideaIdTo == subIdeaId;
-      });
-      logChange('removeSubIdea', [subIdeaId], function () {
-        parent.ideas[oldRank] = oldIdea;
-        contentAggregate.links = oldLinks;
-      }, originSession);
-      return true;
-    }
-    return false;
-  };
-  contentAggregate.insertIntermediateMultiple = function (idArray) {
-    contentAggregate.startBatch();
-    var newId = contentAggregate.insertIntermediate(idArray[0]);
-    _.each(idArray.slice(1), function (id) {
-      contentAggregate.changeParent(id, newId);
-    });
-    contentAggregate.endBatch();
-    return newId;
-  };
-  contentAggregate.insertIntermediate = function (inFrontOfIdeaId, title, optionalNewId) {
-    return contentAggregate.execCommand('insertIntermediate', arguments);
-  };
-  commandProcessors.insertIntermediate = function (originSession, inFrontOfIdeaId, title, optionalNewId) {
-    if (contentAggregate.id == inFrontOfIdeaId) {
-      return false;
-    }
-    var childRank, oldIdea, newIdea, parentIdea = contentAggregate.findParent(inFrontOfIdeaId);
-    if (!parentIdea) {
-      return false;
-    }
-    if (optionalNewId && findIdeaById(optionalNewId)) {
-      return false;
-    }
-    childRank = parentIdea.findChildRankById(inFrontOfIdeaId);
-    if (!childRank) {
-      return false;
-    }
-    oldIdea = parentIdea.ideas[childRank];
-    newIdea = init({
-      title: title,
-      id: optionalNewId
-    });
-    if (!contentAggregate.getYsy().validator.validate("insertIntermediate", parentIdea, oldIdea, newIdea)) return false;
-    parentIdea.ideas[childRank] = newIdea;
-    newIdea.ideas = {
-      1: oldIdea
-    };
-    logChange('insertIntermediate', [inFrontOfIdeaId, title, newIdea.id], function () {
-      parentIdea.ideas[childRank] = oldIdea;
-    }, originSession);
-    return newIdea.id;
-  };
-  contentAggregate.changeParent = function (ideaId, newParentId) {
-    return contentAggregate.execCommand('changeParent', arguments);
-  };
-  commandProcessors.changeParent = function (originSession, ideaId, newParentId) {
-    var oldParent, oldRank, newRank, idea, parent = findIdeaById(newParentId), oldPosition;
-    if (ideaId == newParentId) {
-      return false;
-    }
-    if (!parent) {
-      return false;
-    }
-    idea = contentAggregate.findSubIdeaById(ideaId);
-    if (!idea) {
-      return false;
-    }
-    if (idea.findSubIdeaById(newParentId)) {
-      return false;
-    }
-    if (parent.containsDirectChild(ideaId)) {
-      return false;
-    }
-    if (!contentAggregate.getYsy().validator.changeParent(idea, parent)) return false;
-    oldParent = contentAggregate.findParent(ideaId);
-    if (!oldParent) {
-      return false;
-    }
-    oldRank = oldParent.findChildRankById(ideaId);
-    newRank = appendSubIdea(parent, idea);
-    oldPosition = idea.getAttr('position');
-    updateAttr(idea, 'position');
-    delete oldParent.ideas[oldRank];
-    logChange('changeParent', [ideaId, newParentId, oldParent.id], function () {
-      updateAttr(idea, 'position', oldPosition);
-      oldParent.ideas[oldRank] = idea;
-      delete parent.ideas[newRank];
-    }, originSession);
-    return true;
-  };
-  contentAggregate.mergeAttrProperty = function (ideaId, attrName, attrPropertyName, attrPropertyValue) {
-    var val = contentAggregate.getAttrById(ideaId, attrName) || {};
-    if (attrPropertyValue) {
-      val[attrPropertyName] = attrPropertyValue;
-    } else {
-      delete val[attrPropertyName];
-    }
-    if (_.isEmpty(val)) {
-      val = false;
-    }
-    return contentAggregate.updateAttr(ideaId, attrName, val);
-  };
-  contentAggregate.updateAttr = function (ideaId, attrName, attrValue) {
-    return contentAggregate.execCommand('updateAttr', arguments);
-  };
-  commandProcessors.updateAttr = function (originSession, ideaId, attrName, attrValue) {
-    var idea = findIdeaById(ideaId), undoAction;
-    undoAction = updateAttr(idea, attrName, attrValue);
-    if (undoAction) {
-      logChange('updateAttr', [ideaId, attrName, attrValue], undoAction, originSession);
-    }
-    return !!undoAction;
-  };
-  contentAggregate.moveRelative = function (ideaId, relativeMovement) {
-    var parentIdea = contentAggregate.findParent(ideaId),
-        currentRank = parentIdea && parentIdea.findChildRankById(ideaId),
-        siblingRanks = currentRank && _.sortBy(sameSideSiblingRanks(parentIdea, currentRank), Math.abs),
-        currentIndex = siblingRanks && siblingRanks.indexOf(currentRank),
-        /* we call positionBefore, so movement down is actually 2 spaces, not 1 */
-        newIndex = currentIndex + (relativeMovement > 0 ? relativeMovement + 1 : relativeMovement),
-        beforeSibling = (newIndex >= 0) && parentIdea && siblingRanks && parentIdea.ideas[siblingRanks[newIndex]];
-    if (newIndex < 0 || !parentIdea) {
-      return false;
-    }
-    return contentAggregate.positionBefore(ideaId, beforeSibling && beforeSibling.id, parentIdea);
-  };
-  contentAggregate.positionBefore = function (ideaId, positionBeforeIdeaId, parentIdea) {
-    return contentAggregate.execCommand('positionBefore', arguments);
-  };
-  commandProcessors.positionBefore = function (originSession, ideaId, positionBeforeIdeaId, parentIdea) {
-    parentIdea = parentIdea || contentAggregate;
-    var newRank, afterRank, siblingRanks, candidateSiblings, beforeRank, maxRank, currentRank;
-    currentRank = parentIdea.findChildRankById(ideaId);
-    if (!currentRank) {
-      return _.reduce(
-          parentIdea.ideas,
-          function (result, idea) {
-            return result || commandProcessors.positionBefore(originSession, ideaId, positionBeforeIdeaId, idea);
-          },
-          false
-      );
-    }
-    if (ideaId == positionBeforeIdeaId) {
-      return false;
-    }
-    newRank = 0;
-    if (positionBeforeIdeaId) {
-      afterRank = parentIdea.findChildRankById(positionBeforeIdeaId);
-      if (!afterRank) {
-        return false;
-      }
-      siblingRanks = sameSideSiblingRanks(parentIdea, currentRank);
-      candidateSiblings = _.reject(_.sortBy(siblingRanks, Math.abs), function (k) {
-        return Math.abs(k) >= Math.abs(afterRank);
-      });
-      beforeRank = candidateSiblings.length > 0 ? _.max(candidateSiblings, Math.abs) : 0;
-      if (beforeRank == currentRank) {
-        return false;
-      }
-      newRank = beforeRank + (afterRank - beforeRank) / 2;
-    } else {
-      maxRank = maxKey(parentIdea.ideas, currentRank < 0 ? -1 : 1);
-      if (maxRank == currentRank) {
-        return false;
-      }
-      newRank = maxRank + 10 * (currentRank < 0 ? -1 : 1);
-    }
-    if (newRank == currentRank) {
-      return false;
-    }
-    reorderChild(parentIdea, newRank, currentRank);
-    logChange('positionBefore', [ideaId, positionBeforeIdeaId], function () {
-      reorderChild(parentIdea, currentRank, newRank);
-    }, originSession);
-    return true;
-  };
-  observable(contentAggregate);
-  (function () {
-    var isLinkValid = function (ideaIdFrom, ideaIdTo) {
-      var isParentChild, ideaFrom, ideaTo;
-      if (ideaIdFrom === ideaIdTo) {
-        return false;
-      }
-      ideaFrom = findIdeaById(ideaIdFrom);
-      if (!ideaFrom) {
-        return false;
-      }
-      ideaTo = findIdeaById(ideaIdTo);
-      if (!ideaTo) {
-        return false;
-      }
-      isParentChild = _.find(
-              ideaFrom.ideas,
-              function (node) {
-                return node.id === ideaIdTo;
-              }
-          ) || _.find(
-              ideaTo.ideas,
-              function (node) {
-                return node.id === ideaIdFrom;
-              }
-          );
-      if (isParentChild) {
-        return false;
-      }
-      return true;
-    };
-    contentAggregate.addLink = function (ideaIdFrom, ideaIdTo) {
-      return contentAggregate.execCommand('addLink', arguments);
-    };
-    commandProcessors.addLink = function (originSession, ideaIdFrom, ideaIdTo) {
-      var alreadyExists, link;
-      if (!isLinkValid(ideaIdFrom, ideaIdTo)) {
-        return false;
-      }
-      alreadyExists = _.find(
-          contentAggregate.links,
-          function (link) {
-            return (link.ideaIdFrom === ideaIdFrom && link.ideaIdTo === ideaIdTo) || (link.ideaIdFrom === ideaIdTo && link.ideaIdTo === ideaIdFrom);
-          }
-      );
-      if (alreadyExists) {
-        return false;
-      }
-      contentAggregate.links = contentAggregate.links || [];
-      link = {
-        ideaIdFrom: ideaIdFrom,
-        ideaIdTo: ideaIdTo,
-        attr: {
-          style: {
-            color: '#FF0000',
-            lineStyle: 'dashed'
-          }
-        }
-      };
-      contentAggregate.links.push(link);
-      logChange('addLink', [ideaIdFrom, ideaIdTo], function () {
-        contentAggregate.links.pop();
-      }, originSession);
-      return true;
-    };
-    contentAggregate.removeLink = function (ideaIdOne, ideaIdTwo) {
-      return contentAggregate.execCommand('removeLink', arguments);
-    };
-    commandProcessors.removeLink = function (originSession, ideaIdOne, ideaIdTwo) {
-      var i = 0, link;
-
-      while (contentAggregate.links && i < contentAggregate.links.length) {
-        link = contentAggregate.links[i];
-        if (String(link.ideaIdFrom) === String(ideaIdOne) && String(link.ideaIdTo) === String(ideaIdTwo)) {
-          contentAggregate.links.splice(i, 1);
-          logChange('removeLink', [ideaIdOne, ideaIdTwo], function () {
-            contentAggregate.links.push(_.clone(link));
-          }, originSession);
-          return true;
-        }
-        i += 1;
-      }
-      return false;
-    };
-    contentAggregate.getLinkAttr = function (ideaIdFrom, ideaIdTo, name) {
-      var link = _.find(
-          contentAggregate.links,
-          function (link) {
-            return link.ideaIdFrom == ideaIdFrom && link.ideaIdTo == ideaIdTo;
-          }
-      );
-      if (link && link.attr && link.attr[name]) {
-        return link.attr[name];
-      }
-      return false;
-    };
-    contentAggregate.updateLinkAttr = function (ideaIdFrom, ideaIdTo, attrName, attrValue) {
-      return contentAggregate.execCommand('updateLinkAttr', arguments);
-    };
-    commandProcessors.updateLinkAttr = function (originSession, ideaIdFrom, ideaIdTo, attrName, attrValue) {
-      var link = _.find(
-          contentAggregate.links,
-          function (link) {
-            return link.ideaIdFrom == ideaIdFrom && link.ideaIdTo == ideaIdTo;
-          }
-      ), undoAction;
-      undoAction = updateAttr(link, attrName, attrValue);
-      if (undoAction) {
-        logChange('updateLinkAttr', [ideaIdFrom, ideaIdTo, attrName, attrValue], undoAction, originSession);
-      }
-      return !!undoAction;
-    };
-  }());
-  /* undo/redo */
-  contentAggregate.resetHistory = function () {
-    eventStacks = {};
-    redoStacks = {};
-  };
-  contentAggregate.canUndo = function () {
-    return !!(eventStacks[sessionKey] && eventStacks[sessionKey].length > 0);
-  };
-  contentAggregate.canRedo = function () {
-    return !!(redoStacks[sessionKey] && redoStacks[sessionKey].length > 0);
-  };
-  contentAggregate.undo = function () {
-    return contentAggregate.execCommand('undo', arguments);
-  };
-  commandProcessors.undo = function (originSession) {
-    contentAggregate.endBatch();
-    var topEvent;
-    topEvent = eventStacks[originSession] && eventStacks[originSession].pop();
-    if (topEvent && topEvent.undoFunction) {
-      topEvent.undoFunction();
-      if (!redoStacks[originSession]) {
-        redoStacks[originSession] = [];
-      }
-      redoStacks[originSession].push(topEvent);
-      contentAggregate.dispatchEvent('changed', 'undo', [], originSession);
-      return true;
-    }
-    return false;
-  };
-  contentAggregate.redo = function () {
-    return contentAggregate.execCommand('redo', arguments);
-  };
-  commandProcessors.redo = function (originSession) {
-    contentAggregate.endBatch();
-    var topEvent;
-    topEvent = redoStacks[originSession] && redoStacks[originSession].pop();
-    if (topEvent) {
-      isRedoInProgress = true;
-      contentAggregate.execCommand(topEvent.eventMethod, topEvent.eventArgs, originSession);
-      isRedoInProgress = false;
-      return true;
-    }
-    return false;
-  };
-  contentAggregate.storeResource = function (/*resourceBody, optionalKey*/) {
-    return contentAggregate.execCommand('storeResource', arguments);
-  };
-  commandProcessors.storeResource = function (originSession, resourceBody, optionalKey) {
-    var existingId, id,
-        maxIdForSession = function () {
-          if (_.isEmpty(contentAggregate.resources)) {
-            return 0;
-          }
-          var toInt = function (string) {
-                return parseInt(string, 10);
-              },
-              keys = _.keys(contentAggregate.resources),
-              filteredKeys = sessionKey ? _.filter(keys, RegExp.prototype.test.bind(new RegExp('\\/' + sessionKey + '$'))) : keys,
-              intKeys = _.map(filteredKeys, toInt);
-          return _.isEmpty(intKeys) ? 0 : _.max(intKeys);
-        },
-        nextResourceId = function () {
-          var intId = maxIdForSession() + 1;
-          return intId + uniqueResourcePostfix;
-        };
-
-    if (!optionalKey && contentAggregate.resources) {
-      existingId = _.find(_.keys(contentAggregate.resources), function (key) {
-        return contentAggregate.resources[key] === resourceBody;
-      });
-      if (existingId) {
-        return existingId;
-      }
-    }
-    id = optionalKey || nextResourceId();
-    contentAggregate.resources = contentAggregate.resources || {};
-    contentAggregate.resources[id] = resourceBody;
-    contentAggregate.dispatchEvent('resourceStored', resourceBody, id, originSession);
-    return id;
-  };
-  contentAggregate.getResource = function (id) {
-    return contentAggregate.resources && contentAggregate.resources[id];
-  };
-  contentAggregate.hasSiblings = function (id) {
-    if (id === contentAggregate.id) {
-      return false;
-    }
-    var parent = contentAggregate.findParent(id);
-    return parent && _.size(parent.ideas) > 1;
-  };
-  if (contentAggregate.formatVersion != 2) {
-    upgrade(contentAggregate);
-    contentAggregate.formatVersion = 2;
-  }
-  init(contentAggregate);
-  return contentAggregate;
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-view.js b/plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-view.js
deleted file mode 100644
index c5d8b0c..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-view.js
+++ /dev/null
@@ -1,1340 +0,0 @@
-/*global jQuery, Color, _, MAPJS, document, window*/
-MAPJS.DOMRender = {
-  svgPixel: 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"></svg>',
-  nodeCacheMark: function (idea, levelOverride) {
-    'use strict';
-    return {
-      title: idea.title,
-      icon: idea.attr && idea.attr.icon && _.pick(idea.attr.icon, 'width', 'height', 'position'),
-      collapsed: idea.attr && idea.attr.collapsed,
-      level: idea.level || levelOverride
-    };
-  },
-  dummyTextBox: jQuery('<div>').addClass('mapjs-node').css({position: 'absolute', visibility: 'hidden'}),
-  dimensionProvider: function (idea, level) {
-    'use strict';
-    /* support multiple stages? */
-    var textBox = jQuery(document).nodeWithId(idea.id),
-        translateToPixel = function () {
-          return MAPJS.DOMRender.svgPixel;
-        },
-        result;
-    if (textBox && textBox.length > 0) {
-      if (_.isEqual(textBox.data('nodeCacheMark'), MAPJS.DOMRender.nodeCacheMark(idea, level))) {
-        return _.pick(textBox.data(), 'width', 'height');
-      }
-    }
-    textBox = MAPJS.DOMRender.dummyTextBox;
-    textBox.attr('mapjs-level', level).appendTo('body').updateNodeContent(idea, translateToPixel);
-    result = {
-      width: textBox.outerWidth(true),
-      height: textBox.outerHeight(true)
-    };
-    textBox.detach();
-    return result;
-  },
-  layoutCalculator: function (contentAggregate) {
-    'use strict';
-    return MAPJS.calculateLayout(contentAggregate, MAPJS.DOMRender.dimensionProvider);
-  },
-  fixedLayout: false
-};
-MAPJS.createSVG = function (tag) {
-  'use strict';
-  return jQuery(document.createElementNS('http://www.w3.org/2000/svg', tag || 'svg'));
-};
-jQuery.fn.getBox = function () {
-  'use strict';
-  var domShape = this && this[0];
-  if (!domShape) {
-    return false;
-  }
-  return {
-    top: domShape.offsetTop,
-    left: domShape.offsetLeft,
-    width: domShape.offsetWidth,
-    height: domShape.offsetHeight
-  };
-};
-jQuery.fn.getDataBox = function () {
-  'use strict';
-  var domShapeData = this.data();
-  if (domShapeData && domShapeData.width && domShapeData.height) {
-    return {
-      top: domShapeData.y,
-      left: domShapeData.x,
-      width: domShapeData.width,
-      height: domShapeData.height
-    };
-  }
-  return this.getBox();
-};
-
-
-jQuery.fn.animateConnectorToPosition = function (animationOptions, tolerance) {
-  'use strict';
-  var element = jQuery(this),
-      shapeFrom = element.data('nodeFrom'),
-      shapeTo = element.data('nodeTo'),
-      fromBox = shapeFrom && shapeFrom.getDataBox(),
-      toBox = shapeTo && shapeTo.getDataBox(),
-      oldBox = {
-        from: shapeFrom && shapeFrom.getBox(),
-        to: shapeTo && shapeTo.getBox()
-      };
-  tolerance = tolerance || 1;
-  if (fromBox && toBox && oldBox && oldBox.from.width === fromBox.width &&
-      oldBox.to.width === toBox.width &&
-      oldBox.from.height === fromBox.height &&
-      oldBox.to.height === toBox.height &&
-      Math.abs(oldBox.from.top - oldBox.to.top - (fromBox.top - toBox.top)) < tolerance &&
-      Math.abs(oldBox.from.left - oldBox.to.left - (fromBox.left - toBox.left)) < tolerance) {
-
-    element.animate({
-      left: Math.round(Math.min(fromBox.left, toBox.left)),
-      top: Math.round(Math.min(fromBox.top, toBox.top))
-    }, animationOptions);
-    return true;
-  }
-  return false;
-};
-jQuery.fn.queueFadeOut = function (options) {
-  'use strict';
-  var element = this;
-  return element.fadeOut(_.extend({
-    complete: function () {
-      if (element.is(':focus')) {
-        element.parents('[tabindex]').focus();
-      }
-      element.remove();
-    }
-  }, options));
-};
-jQuery.fn.queueFadeIn = function (options) {
-  'use strict';
-  var element = this;
-  return element
-      .css('opacity', 0)
-      .animate(
-          {'opacity': 1},
-          _.extend({
-            complete: function () {
-              element.css('opacity', '');
-            }
-          }, options)
-      );
-};
-
-jQuery.fn.updateStage = function () {
-  'use strict';
-  var data = this.data(),
-      size = {
-        'min-width': Math.round(data.width - data.offsetX),
-        'min-height': Math.round(data.height - data.offsetY),
-        'width': Math.round(data.width - data.offsetX),
-        'height': Math.round(data.height - data.offsetY),
-        'transform-origin': 'top left',
-        'transform': 'translate3d(' + Math.round(data.offsetX) + 'px, ' + Math.round(data.offsetY) + 'px, 0)'
-      };
-  if (data.scale && data.scale !== 1) {
-    size.transform = 'scale(' + data.scale + ') translate(' + Math.round(data.offsetX) + 'px, ' + Math.round(data.offsetY) + 'px)';
-  }
-  this.css(size);
-  return this;
-};
-
-MAPJS.DOMRender.curvedPath = function (parent, child) {
-  'use strict';
-  var horizontalConnector = function (parentX, parentY, parentWidth, parentHeight, childX, childY, childWidth, childHeight) {
-        var childHorizontalOffset = parentX < childX ? 0.1 : 0.9,
-            parentHorizontalOffset = 1 - childHorizontalOffset;
-        return {
-          from: {
-            x: parentX + parentHorizontalOffset * parentWidth,
-            y: parentY + 0.5 * parentHeight
-          },
-          to: {
-            x: childX + childHorizontalOffset * childWidth,
-            y: childY + 0.5 * childHeight
-          },
-          controlPointOffset: 0
-        };
-      },
-      calculateConnector = function (parent, child) {
-        var tolerance = 10,
-            childHorizontalOffset,
-            childMid = child.top + child.height * 0.5,
-            parentMid = parent.top + parent.height * 0.5;
-        if (Math.abs(parentMid - childMid) + tolerance < Math.max(child.height, parent.height * 0.75)) {
-          return horizontalConnector(parent.left, parent.top, parent.width, parent.height, child.left, child.top, child.width, child.height);
-        }
-        childHorizontalOffset = parent.left < child.left ? 0 : 1;
-        return {
-          from: {
-            x: parent.left + 0.5 * parent.width,
-            y: parent.top + 0.5 * parent.height
-          },
-          to: {
-            x: child.left + childHorizontalOffset * child.width,
-            y: child.top + 0.5 * child.height
-          },
-          controlPointOffset: 0.75
-        };
-      },
-      position = {
-        left: Math.min(parent.left, child.left),
-        top: Math.min(parent.top, child.top)
-      },
-      calculatedConnector, offset, maxOffset;
-  position.width = Math.max(parent.left + parent.width, child.left + child.width, position.left + 1) - position.left;
-  position.height = Math.max(parent.top + parent.height, child.top + child.height, position.top + 1) - position.top;
-
-  calculatedConnector = calculateConnector(parent, child);
-  offset = calculatedConnector.controlPointOffset * (calculatedConnector.from.y - calculatedConnector.to.y);
-  maxOffset = Math.min(child.height, parent.height) * 1.5;
-  offset = Math.max(-maxOffset, Math.min(maxOffset, offset));
-  return {
-    'd': 'M' + Math.round(calculatedConnector.from.x - position.left) + ',' + Math.round(calculatedConnector.from.y - position.top) +
-    'Q' + Math.round(calculatedConnector.from.x - position.left) + ',' + Math.round(calculatedConnector.to.y - offset - position.top) + ' ' + Math.round(calculatedConnector.to.x - position.left) + ',' + Math.round(calculatedConnector.to.y - position.top),
-    // 'conn': calculatedConnector,
-    'position': position
-  };
-};
-MAPJS.DOMRender.straightPath = function (parent, child) {
-  'use strict';
-  var calculateConnector = function (parent, child) {
-        var parentPoints = [
-          {
-            x: parent.left + 0.5 * parent.width,
-            y: parent.top
-          },
-          {
-            x: parent.left + parent.width,
-            y: parent.top + 0.5 * parent.height
-          },
-          {
-            x: parent.left + 0.5 * parent.width,
-            y: parent.top + parent.height
-          },
-          {
-            x: parent.left,
-            y: parent.top + 0.5 * parent.height
-          }
-        ], childPoints = [
-          {
-            x: child.left + 0.5 * child.width,
-            y: child.top
-          },
-          {
-            x: child.left + child.width,
-            y: child.top + 0.5 * child.height
-          },
-          {
-            x: child.left + 0.5 * child.width,
-            y: child.top + child.height
-          },
-          {
-            x: child.left,
-            y: child.top + 0.5 * child.height
-          }
-        ], i, j, min = Infinity, bestParent, bestChild, dx, dy, current;
-        for (i = 0; i < parentPoints.length; i += 1) {
-          for (j = 0; j < childPoints.length; j += 1) {
-            dx = parentPoints[i].x - childPoints[j].x;
-            dy = parentPoints[i].y - childPoints[j].y;
-            current = dx * dx + dy * dy;
-            if (current < min) {
-              bestParent = i;
-              bestChild = j;
-              min = current;
-            }
-          }
-        }
-        return {
-          from: parentPoints[bestParent],
-          to: childPoints[bestChild]
-        };
-      },
-      position = {
-        left: Math.min(parent.left, child.left),
-        top: Math.min(parent.top, child.top)
-      },
-      conn = calculateConnector(parent, child);
-  position.width = Math.max(parent.left + parent.width, child.left + child.width, position.left + 1) - position.left;
-  position.height = Math.max(parent.top + parent.height, child.top + child.height, position.top + 1) - position.top;
-
-  return {
-    'd': 'M' + Math.round(conn.from.x - position.left) + ',' + Math.round(conn.from.y - position.top) + 'L' + Math.round(conn.to.x - position.left) + ',' + Math.round(conn.to.y - position.top),
-    'conn': conn,
-    'position': position
-  };
-};
-
-MAPJS.DOMRender.nodeConnectorPath = MAPJS.DOMRender.curvedPath;
-MAPJS.DOMRender.linkConnectorPath = MAPJS.DOMRender.straightPath;
-
-jQuery.fn.updateConnector = function (canUseData) {
-  'use strict';
-  return jQuery.each(this, function () {
-    var element = jQuery(this),
-        shapeFrom = element.data('nodeFrom'),
-        shapeTo = element.data('nodeTo'),
-        connection, pathElement, fromBox, toBox, changeCheck;
-    if (!shapeFrom || !shapeTo || shapeFrom.length === 0 || shapeTo.length === 0) {
-      element.hide();
-      return;
-    }
-    if (canUseData) {
-      fromBox = shapeFrom.getDataBox();
-      toBox = shapeTo.getDataBox();
-    } else {
-      fromBox = shapeFrom.getBox();
-      toBox = shapeTo.getBox();
-    }
-    changeCheck = {from: fromBox, to: toBox};
-    if (_.isEqual(changeCheck, element.data('changeCheck'))) {
-      return;
-    }
-
-    element.data('changeCheck', changeCheck);
-    connection = MAPJS.DOMRender.nodeConnectorPath(fromBox, toBox);
-    pathElement = element.find('path');
-    element.css(connection.position);
-    if (pathElement.length === 0) {
-      pathElement = MAPJS.createSVG('path').attr('class', 'mapjs-connector').appendTo(element);
-    }
-    // if only the relative position changed, do not re-update the curve!!!!
-    pathElement.attr('d',
-        connection.d
-    );
-  });
-};
-
-jQuery.fn.updateLink = function () {
-  'use strict';
-  return jQuery.each(this, function () {
-    var element = jQuery(this),
-        shapeFrom = element.data('nodeFrom'),
-        shapeTo = element.data('nodeTo'),
-        connection,
-        pathElement = element.find('path.mapjs-link'),
-        hitElement = element.find('path.mapjs-link-hit'),
-        arrowElement = element.find('path.mapjs-arrow'),
-        n = Math.tan(Math.PI / 9),
-        dashes = {
-          dashed: '8, 8',
-          solid: ''
-        },
-        attrs = _.pick(element.data(), 'lineStyle', 'arrow', 'color'),
-        fromBox, toBox, changeCheck,
-        a1x, a1y, a2x, a2y, len, iy, m, dx, dy;
-    if (!shapeFrom || !shapeTo || shapeFrom.length === 0 || shapeTo.length === 0) {
-      element.hide();
-      return;
-    }
-    fromBox = shapeFrom.getBox();
-    toBox = shapeTo.getBox();
-
-    changeCheck = {from: fromBox, to: toBox, attrs: attrs};
-    if (_.isEqual(changeCheck, element.data('changeCheck'))) {
-      return;
-    }
-
-    element.data('changeCheck', changeCheck);
-
-    connection = MAPJS.DOMRender.linkConnectorPath(fromBox, toBox);
-    element.css(connection.position);
-
-    if (pathElement.length === 0) {
-      pathElement = MAPJS.createSVG('path').attr('class', 'mapjs-link').appendTo(element);
-    }
-    pathElement.attr({
-      'd': connection.d,
-      'stroke-dasharray': dashes[attrs.lineStyle]
-    }).css('stroke', attrs.color);
-
-    if (hitElement.length === 0) {
-      hitElement = MAPJS.createSVG('path').attr('class', 'mapjs-link-hit').appendTo(element);
-    }
-    hitElement.attr({
-      'd': connection.d
-    });
-
-    if (attrs.arrow) {
-      if (arrowElement.length === 0) {
-        arrowElement = MAPJS.createSVG('path').attr('class', 'mapjs-arrow').appendTo(element);
-      }
-      len = 14;
-      dx = connection.conn.to.x - connection.conn.from.x;
-      dy = connection.conn.to.y - connection.conn.from.y;
-      if (dx === 0) {
-        iy = dy < 0 ? -1 : 1;
-        a1x = connection.conn.to.x + len * Math.sin(n) * iy;
-        a2x = connection.conn.to.x - len * Math.sin(n) * iy;
-        a1y = connection.conn.to.y - len * Math.cos(n) * iy;
-        a2y = connection.conn.to.y - len * Math.cos(n) * iy;
-      } else {
-        m = dy / dx;
-        if (connection.conn.from.x < connection.conn.to.x) {
-          len = -len;
-        }
-        a1x = connection.conn.to.x + (1 - m * n) * len / Math.sqrt((1 + m * m) * (1 + n * n));
-        a1y = connection.conn.to.y + (m + n) * len / Math.sqrt((1 + m * m) * (1 + n * n));
-        a2x = connection.conn.to.x + (1 + m * n) * len / Math.sqrt((1 + m * m) * (1 + n * n));
-        a2y = connection.conn.to.y + (m - n) * len / Math.sqrt((1 + m * m) * (1 + n * n));
-      }
-      arrowElement.attr('d',
-          'M' + Math.round(a1x - connection.position.left) + ',' + Math.round(a1y - connection.position.top) +
-          'L' + Math.round(connection.conn.to.x - connection.position.left) + ',' + Math.round(connection.conn.to.y - connection.position.top) +
-          'L' + Math.round(a2x - connection.position.left) + ',' + Math.round(a2y - connection.position.top) +
-          'Z')
-          .css('fill', attrs.color)
-          .show();
-    } else {
-      arrowElement.hide();
-    }
-
-  });
-};
-
-jQuery.fn.addNodeCacheMark = function (idea) {
-  'use strict';
-  this.data('nodeCacheMark', MAPJS.DOMRender.nodeCacheMark(idea));
-};
-
-jQuery.fn.updateNodeContent = function (nodeContent, resourceTranslator) {
-  'use strict';
-  var MAX_URL_LENGTH = 25,
-      self = jQuery(this),
-      textSpan = function () {
-        var span = self.find('[data-mapjs-role=title]');
-        if (span.length === 0) {
-          span = jQuery('<span>').attr('data-mapjs-role', 'title').appendTo(self);
-        }
-        return span;
-      },
-      applyLinkUrl = function (title) {
-        var url = MAPJS.URLHelper.getLink(title),
-            element = self.find('a.mapjs-hyperlink');
-        if (!url) {
-          element.hide();
-          return;
-        }
-        if (element.length === 0) {
-          element = jQuery('<a target="_blank" class="mapjs-hyperlink"></a>').appendTo(self);
-        }
-        element.attr('href', url).show();
-      },
-      applyLabel = function (label) {
-        var element = self.find('.mapjs-label');
-        if (!label && label !== 0) {
-          element.hide();
-          return;
-        }
-        if (element.length === 0) {
-          element = jQuery('<span class="mapjs-label"></span>').appendTo(self);
-        }
-        element.text(label).show();
-      },
-      applyAttachment = function () {
-        var attachment = nodeContent.attr && nodeContent.attr.attachment,
-            element = self.find('a.mapjs-attachment');
-        if (!attachment) {
-          element.hide();
-          return;
-        }
-        if (element.length === 0) {
-          element = jQuery('<a href="#" class="mapjs-attachment"></a>').appendTo(self).click(function () {
-            self.trigger('attachment-click');
-          });
-        }
-        element.show();
-      },
-      updateText = function (title) {
-        var text = MAPJS.URLHelper.stripLink(title) ||
-                (title.length < MAX_URL_LENGTH ? title : (title.substring(0, MAX_URL_LENGTH) + '...')),
-            nodeTextPadding = MAPJS.DOMRender.nodeTextPadding || 11,
-            element = textSpan(),
-            domElement = element[0],
-            height;
-
-        element.text(text.trim());
-        self.data('title', title);
-        element.css({'max-width': '', 'min-width': ''});
-        if ((domElement.scrollWidth - nodeTextPadding) > domElement.offsetWidth) {
-          element.css('max-width', domElement.scrollWidth + 'px');
-        } else {
-          height = domElement.offsetHeight;
-          element.css('min-width', element.css('max-width'));
-          if (domElement.offsetHeight === height) {
-            element.css('min-width', '');
-          }
-        }
-      },
-      setCollapseClass = function () {
-        if (nodeContent.attr && nodeContent.attr.collapsed) {
-          self.addClass('collapsed');
-        } else {
-          self.removeClass('collapsed');
-        }
-      },
-      foregroundClass = function (backgroundColor) {
-        /*jslint newcap:true*/
-        var luminosity = Color(backgroundColor).mix(Color('#EEEEEE')).luminosity();
-        if (luminosity < 0.5) {
-          return 'mapjs-node-dark';
-        } else if (luminosity < 0.9) {
-          return 'mapjs-node-light';
-        }
-        return 'mapjs-node-white';
-      },
-      setColors = function () {
-        var fromStyle = nodeContent.attr && nodeContent.attr.style && nodeContent.attr.style.background;
-        if (fromStyle === 'false' || fromStyle === 'transparent') {
-          fromStyle = false;
-        }
-        self.removeClass('mapjs-node-dark mapjs-node-white mapjs-node-light');
-        if (fromStyle) {
-          self.css('background-color', fromStyle);
-          self.addClass(foregroundClass(fromStyle));
-        } else {
-          self.css('background-color', '');
-        }
-      },
-      setIcon = function (icon) {
-        var textBox = textSpan(),
-            textHeight,
-            textWidth,
-            maxTextWidth,
-            padding,
-            selfProps = {
-              'min-height': '',
-              'min-width': '',
-              'background-image': '',
-              'background-repeat': '',
-              'background-size': '',
-              'background-position': ''
-            },
-            textProps = {
-              'margin-top': '',
-              'margin-left': ''
-            };
-        self.css({padding: ''});
-        if (icon) {
-          padding = parseInt(self.css('padding-left'), 10);
-          textHeight = textBox.outerHeight();
-          textWidth = textBox.outerWidth();
-          maxTextWidth = parseInt(textBox.css('max-width'), 10);
-          _.extend(selfProps, {
-            'background-image': 'url("' + (resourceTranslator ? resourceTranslator(icon.url) : icon.url) + '")',
-            'background-repeat': 'no-repeat',
-            'background-size': icon.width + 'px ' + icon.height + 'px',
-            'background-position': 'center center'
-          });
-          if (icon.position === 'top' || icon.position === 'bottom') {
-            if (icon.position === 'top') {
-              selfProps['background-position'] = 'center ' + padding + 'px';
-            } else if (MAPJS.DOMRender.fixedLayout) {
-              selfProps['background-position'] = 'center ' + (padding + textHeight) + 'px';
-            } else {
-              selfProps['background-position'] = 'center ' + icon.position + ' ' + padding + 'px';
-            }
-
-            selfProps['padding-' + icon.position] = icon.height + (padding * 2);
-            selfProps['min-width'] = icon.width;
-            if (icon.width > maxTextWidth) {
-              textProps['margin-left'] = (icon.width - maxTextWidth) / 2;
-            }
-          } else if (icon.position === 'left' || icon.position === 'right') {
-            if (icon.position === 'left') {
-              selfProps['background-position'] = padding + 'px center';
-            } else if (MAPJS.DOMRender.fixedLayout) {
-              selfProps['background-position'] = (textWidth + (2 * padding)) + 'px center ';
-            } else {
-              selfProps['background-position'] = icon.position + ' ' + padding + 'px center';
-            }
-
-            selfProps['padding-' + icon.position] = icon.width + (padding * 2);
-            if (icon.height > textHeight) {
-              textProps['margin-top'] = (icon.height - textHeight) / 2;
-              selfProps['min-height'] = icon.height;
-            }
-          } else {
-            if (icon.height > textHeight) {
-              textProps['margin-top'] = (icon.height - textHeight) / 2;
-              selfProps['min-height'] = icon.height;
-            }
-            selfProps['min-width'] = icon.width;
-            if (icon.width > maxTextWidth) {
-              textProps['margin-left'] = (icon.width - maxTextWidth) / 2;
-            }
-          }
-        }
-        self.css(selfProps);
-        textBox.css(textProps);
-      };
-  self.attr('mapjs-level', nodeContent.level);
-  updateText(nodeContent.title);
-  applyLinkUrl(nodeContent.title);
-  applyLabel(nodeContent.label);
-  applyAttachment();
-  self.data({
-    'x': Math.round(nodeContent.x),
-    'y': Math.round(nodeContent.y),
-    'width': Math.round(nodeContent.width),
-    'height': Math.round(nodeContent.height),
-    'nodeId': nodeContent.id
-  })
-      .addNodeCacheMark(nodeContent);
-  setColors();
-  setIcon(nodeContent.attr && nodeContent.attr.icon);
-  setCollapseClass();
-  return self;
-};
-jQuery.fn.placeCaretAtEnd = function () {
-  'use strict';
-  var el = this[0],
-      range, sel, textRange;
-  if (window.getSelection && document.createRange) {
-    range = document.createRange();
-    range.selectNodeContents(el);
-    range.collapse(false);
-    sel = window.getSelection();
-    sel.removeAllRanges();
-    sel.addRange(range);
-  } else if (document.body.createTextRange) {
-    textRange = document.body.createTextRange();
-    textRange.moveToElementText(el);
-    textRange.collapse(false);
-    textRange.select();
-  }
-};
-jQuery.fn.selectAll = function () {
-  'use strict';
-  var el = this[0],
-      range, sel, textRange;
-  if (window.getSelection && document.createRange) {
-    range = document.createRange();
-    range.selectNodeContents(el);
-    sel = window.getSelection();
-    sel.removeAllRanges();
-    sel.addRange(range);
-  } else if (document.body.createTextRange) {
-    textRange = document.body.createTextRange();
-    textRange.moveToElementText(el);
-    textRange.select();
-  }
-};
-jQuery.fn.innerText = function () {
-  'use strict';
-  var htmlContent = this.html(),
-      containsBr = /<br\/?>/.test(htmlContent),
-      containsDiv = /<div>/.test(htmlContent);
-  if (containsDiv && this[0].innerText) { /* broken safari jquery text */
-    return this[0].innerText.trim();
-  } else if (containsBr) { /*broken firefox innerText */
-    return htmlContent.replace(/<br\/?>/gi, '\n').replace(/(<([^>]+)>)/gi, '');
-  }
-  return this.text();
-};
-jQuery.fn.editNode = function (shouldSelectAll) {
-  'use strict';
-  var node = this,
-      textBox = this.find('[data-mapjs-role=title]'),
-      unformattedText = this.data('title'),
-      originalText = textBox.text(),
-      result = jQuery.Deferred(),
-      clear = function () {
-        detachListeners();
-        textBox.css('word-break', '');
-        textBox.removeAttr('contenteditable');
-        node.shadowDraggable();
-      },
-      finishEditing = function () {
-        var content = textBox.innerText();
-        if (content === unformattedText) {
-          return cancelEditing();
-        }
-        clear();
-        result.resolve(content);
-      },
-      cancelEditing = function () {
-        clear();
-        textBox.text(originalText);
-        result.reject();
-      },
-      keyboardEvents = function (e) {
-        var ENTER_KEY_CODE = 13,
-            ESC_KEY_CODE = 27,
-            TAB_KEY_CODE = 9,
-            S_KEY_CODE = 83,
-            Z_KEY_CODE = 90;
-        if (e.shiftKey && e.which === ENTER_KEY_CODE) {
-          return; // allow shift+enter to break lines
-        } else if (e.which === ENTER_KEY_CODE) {
-          finishEditing();
-          e.stopPropagation();
-        } else if (e.which === ESC_KEY_CODE) {
-          cancelEditing();
-          e.stopPropagation();
-        } else if (e.which === TAB_KEY_CODE || (e.which === S_KEY_CODE && (e.metaKey || e.ctrlKey) && !e.altKey)) {
-          finishEditing();
-          e.preventDefault();
-          /* stop focus on another object */
-        } else if (!e.shiftKey && e.which === Z_KEY_CODE && (e.metaKey || e.ctrlKey) && !e.altKey) { /* undo node edit on ctrl+z if text was not changed */
-          if (textBox.text() === unformattedText) {
-            cancelEditing();
-          }
-          e.stopPropagation();
-        }
-      },
-      attachListeners = function () {
-        textBox.on('blur', finishEditing).on('keydown', keyboardEvents);
-      },
-      detachListeners = function () {
-        textBox.off('blur', finishEditing).off('keydown', keyboardEvents);
-      };
-  attachListeners();
-  if (unformattedText !== originalText) { /* links or some other potential formatting issues */
-    textBox.css('word-break', 'break-all');
-  }
-  textBox.text(unformattedText).attr('contenteditable', true).focus();
-  if (shouldSelectAll) {
-    textBox.selectAll();
-  } else if (unformattedText) {
-    textBox.placeCaretAtEnd();
-  }
-  node.shadowDraggable({disable: true});
-  return result.promise();
-};
-jQuery.fn.updateReorderBounds = function (border, box) {
-  'use strict';
-  var element = this;
-  if (!border) {
-    element.hide();
-    return;
-  }
-  element.show();
-  element.attr('mapjs-edge', border.edge);
-  element.css({
-    top: box.y + box.height / 2 - element.height() / 2,
-    left: border.x - (border.edge === 'left' ? element.width() : 0)
-  });
-
-};
-
-(function () {
-  'use strict';
-  var cleanDOMId = function (s) {
-        return s.replace(/[^A-Za-z0-9_-]/g, '_');
-      },
-      connectorKey = function (connectorObj) {
-        return cleanDOMId('connector_' + connectorObj.from + '_' + connectorObj.to);
-      },
-      linkKey = function (linkObj) {
-        return cleanDOMId('link_' + linkObj.ideaIdFrom + '_' + linkObj.ideaIdTo);
-      },
-      nodeKey = function (id) {
-        return cleanDOMId('node_' + id);
-      };
-
-  jQuery.fn.createNode = function (node) {
-    return jQuery('<div>')
-        .attr({'id': nodeKey(node.id), 'tabindex': 0, 'data-mapjs-role': 'node'})
-        .css({display: 'block', position: 'absolute'})
-        .addClass('mapjs-node')
-        .appendTo(this);
-  };
-  jQuery.fn.createConnector = function (connector) {
-    return MAPJS.createSVG()
-        .attr({'id': connectorKey(connector), 'data-mapjs-role': 'connector', 'class': 'mapjs-draw-container'})
-        .data({'nodeFrom': this.nodeWithId(connector.from), 'nodeTo': this.nodeWithId(connector.to)})
-        .appendTo(this);
-  };
-  jQuery.fn.createLink = function (l) {
-    var defaults = _.extend({color: 'red', lineStyle: 'dashed'}, l.attr && l.attr.style);
-    return MAPJS.createSVG()
-        .attr({
-          'id': linkKey(l),
-          'data-mapjs-role': 'link',
-          'class': 'mapjs-draw-container'
-        })
-        .data({'nodeFrom': this.nodeWithId(l.ideaIdFrom), 'nodeTo': this.nodeWithId(l.ideaIdTo)})
-        .data(defaults)
-        .appendTo(this);
-  };
-  jQuery.fn.nodeWithId = function (id) {
-    return this.find('#' + nodeKey(id));
-  };
-  jQuery.fn.findConnector = function (connectorObj) {
-    return this.find('#' + connectorKey(connectorObj));
-  };
-  jQuery.fn.findLink = function (linkObj) {
-    return this.find('#' + linkKey(linkObj));
-  };
-  jQuery.fn.createReorderBounds = function () {
-    var result = jQuery('<div>').attr({
-      'data-mapjs-role': 'reorder-bounds',
-      'class': 'mapjs-reorder-bounds'
-    }).hide().css('position', 'absolute').appendTo(this);
-    return result;
-  };
-})();
-
-MAPJS.DOMRender.viewController = function (mapModel, stageElement, touchEnabled, imageInsertController, resourceTranslator, options) {
-  'use strict';
-  var viewPort = stageElement.parent(),
-      connectorsForAnimation = [],
-      linksForAnimation = [],
-      nodeAnimOptions = {duration: 400, queue: 'nodeQueue', easing: 'linear'},
-      reorderBounds = mapModel.isEditingEnabled() ? stageElement.createReorderBounds() : jQuery('<div>'),
-      toolbarHeight = resourceTranslator.$menu.outerHeight(),
-      getViewPortDimensions = function () {
-        if (viewPortDimensions) {
-          return viewPortDimensions;
-        }
-        viewPortDimensions = {
-          left: viewPort.scrollLeft(),
-          top: viewPort.scrollTop(),
-          innerWidth: viewPort.innerWidth(),
-          innerHeight: viewPort.innerHeight()
-        };
-        return viewPortDimensions;
-      },
-      stageToViewCoordinates = function (x, y) {
-        var stage = stageElement.data(),
-            scrollPosition = getViewPortDimensions();
-        return {
-          x: stage.scale * (x + stage.offsetX) - scrollPosition.left,
-          y: stage.scale * (y + stage.offsetY) - scrollPosition.top
-        };
-      },
-      stageToWindowTop = function (y) {
-        var stage = stageElement.data();
-        return stage.scale * (y + stage.offsetY) - $(document).scrollTop() + viewPort.offset().top;
-      },
-      viewToStageCoordinates = function (x, y) {
-        var stage = stageElement.data(),
-            scrollPosition = getViewPortDimensions();
-        return {
-          x: (scrollPosition.left + x) / stage.scale - stage.offsetX,
-          y: (scrollPosition.top + y) / stage.scale - stage.offsetY
-        };
-      },
-      dirtyNodesToUpdate=[],
-      updateScreenCoordinates = function () {
-        var element = jQuery(this);
-        if(stageElement.data('dirty')){
-          dirtyNodesToUpdate.push(element);
-          return;
-        }
-        element.css({
-          'left': element.data('x'),
-          'top': element.data('y')
-        }).trigger('mapjs:move');
-      },
-      updateDirtyStage = function(){
-        if(stageElement.data('dirty')){
-          stageElement.updateStage();
-          stageElement.data('dirty',false);
-        }
-        _.each(dirtyNodesToUpdate,function(element){
-          element.css({
-            'left': element.data('x'),
-            'top': element.data('y')
-          }).trigger('mapjs:move');
-        });
-        dirtyNodesToUpdate=[];
-      },
-      animateToPositionCoordinates = function () {
-        var element = jQuery(this);
-        element.clearQueue(nodeAnimOptions.queue).animate({
-          'left': element.data('x'),
-          'top': element.data('y'),
-          'opacity': 1 /* previous animation can be cancelled with clearqueue, so ensure it gets visible */
-        }, _.extend({
-          complete: function () {
-            element.css('opacity', '');
-            element.each(updateScreenCoordinates);
-          }
-        }, nodeAnimOptions)).trigger('mapjs:animatemove');
-      },
-      ensureSpaceForPoint = function (x, y) {/* in stage coordinates */
-        var stage = stageElement.data();
-        if (x < -1 * stage.offsetX) {
-          stage.width = stage.width - stage.offsetX - x;
-          stage.offsetX = -1 * x;
-          stage.dirty = true;
-        }
-        if (y < -1 * stage.offsetY) {
-          stage.height = stage.height - stage.offsetY - y;
-          stage.offsetY = -1 * y;
-          stage.dirty = true;
-        }
-        if (x > stage.width - stage.offsetX) {
-          stage.width = stage.offsetX + x;
-          stage.dirty = true;
-        }
-        if (y > stage.height - stage.offsetY) {
-          stage.height = stage.offsetY + y;
-          stage.dirty = true;
-        }
-      },
-      ensureSpaceForNode = function () {
-        return jQuery(this).each(function () {
-          var node = jQuery(this).data(),
-              margin = MAPJS.DOMRender.stageMargin || {top: 0, left: 0, bottom: 0, right: 0};
-          /* sequence of calculations is important because maxX and maxY take into consideration the new offsetX snd offsetY */
-          ensureSpaceForPoint(node.x - margin.left, node.y - margin.top);
-          ensureSpaceForPoint(node.x + node.width + margin.right, node.y + node.height + margin.bottom);
-        });
-      },
-      centerViewOn = function (x, y, animate) { /*in the stage coordinate system*/
-        var stage = stageElement.data(),
-            windowHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
-            viewPortCenter = {
-              x: viewPort.innerWidth() / 2,
-              y: windowHeight / 2 - viewPort.offset().top
-            },
-            newLeftScroll, newTopScroll,
-            margin = MAPJS.DOMRender.stageVisibilityMargin || {top: 0, left: 0, bottom: 0, right: 0};
-        ensureSpaceForPoint(x - viewPortCenter.x / stage.scale, y - viewPortCenter.y / stage.scale);
-        ensureSpaceForPoint(x + viewPortCenter.x / stage.scale - margin.left, y + viewPortCenter.y / stage.scale - margin.top);
-        updateDirtyStage();
-        newLeftScroll = stage.scale * (x + stage.offsetX) - viewPortCenter.x;
-        newTopScroll = stage.scale * (y + stage.offsetY) - viewPortCenter.y;
-        viewPort.finish();
-        if (animate) {
-          viewPort.animate({
-            scrollLeft: newLeftScroll
-          }, {
-            duration: 400
-          });
-          $("html, body").animate({
-            scrollTop: newTopScroll
-          }, {
-            duration: 400
-          });
-        } else {
-          viewPort.scrollLeft(newLeftScroll);
-          $(document).scrollTop(newTopScroll);
-        }
-      },
-      stagePointAtViewportCenter = function () {
-        return viewToStageCoordinates(viewPort.innerWidth() / 2, viewPort.innerHeight() / 2);
-      },
-      ensureNodeVisible = function (domElement) {
-        if (!domElement || domElement.length === 0) {
-          return;
-        }
-        viewPort.finish();
-        var node = domElement.data(),
-            nodeTopLeft = stageToViewCoordinates(node.x, node.y),
-            nodeBottomRight = stageToViewCoordinates(node.x + node.width, node.y + node.height),
-            windowHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
-            scrollLeft = null,
-            scrollTop = null,
-            margin = MAPJS.DOMRender.stageVisibilityMargin || {top: 10, left: 10, bottom: 10, right: 10};
-        nodeTopLeft.y = stageToWindowTop(node.y);
-        nodeBottomRight.y = stageToWindowTop(node.y + node.height);
-        if ((nodeTopLeft.x - margin.left) < 0) {
-          scrollLeft = viewPort.scrollLeft() + nodeTopLeft.x - margin.left;
-        } else if ((nodeBottomRight.x + margin.right) > viewPort.innerWidth()) {
-          scrollLeft = viewPort.scrollLeft() + nodeBottomRight.x - viewPort.innerWidth() + margin.right;
-        }
-        if ((nodeTopLeft.y - margin.top) < toolbarHeight) {
-          scrollTop = $(document).scrollTop() + nodeTopLeft.y - margin.top - toolbarHeight;
-        } else if ((nodeBottomRight.y + margin.bottom) > windowHeight) {
-          scrollTop = $(document).scrollTop() + nodeBottomRight.y - windowHeight + margin.bottom;
-        }
-        if (scrollLeft !== null) {
-          viewPort[0].scrollLeft = scrollLeft;
-          //viewPort.animate({scrollLeft: scrollLeft}, {duration: 100});
-        }
-        if (scrollTop !== null) {
-          $("html, body").scrollTop(scrollTop);
-          // $("html, body").animate({scrollTop: scrollTop}, {duration: 100});
-
-        }
-      },
-      viewportCoordinatesForPointEvent = function (evt) {
-        var dropPosition = (evt && evt.gesture && evt.gesture.center) || evt,
-            vpOffset = viewPort.offset(),
-            result;
-        if (dropPosition) {
-          result = {
-            x: dropPosition.pageX - vpOffset.left,
-            y: dropPosition.pageY - vpOffset.top
-          };
-          if (result.x >= 0 && result.x <= viewPort.innerWidth() && result.y >= 0 && result.y <= viewPort.innerHeight()) {
-            return result;
-          }
-        }
-      },
-      stagePositionForPointEvent = function (evt) {
-        var viewportDropCoordinates = viewportCoordinatesForPointEvent(evt);
-        if (viewportDropCoordinates) {
-          return viewToStageCoordinates(viewportDropCoordinates.x, viewportDropCoordinates.y);
-        }
-      },
-      clearCurrentDroppable = function () {
-        if (currentDroppable || currentDroppable === false) {
-          jQuery('.mapjs-node').removeClass('droppable');
-          currentDroppable = undefined;
-        }
-      },
-      showDroppable = function (nodeId) {
-        stageElement.nodeWithId(nodeId).addClass('droppable');
-        currentDroppable = nodeId;
-      },
-      currentDroppable = false,
-      viewPortDimensions,
-      withinReorderBoundary = function (boundaries, box) {
-        if (_.isEmpty(boundaries)) {
-          return false;
-        }
-        if (!box) {
-          return false;
-        }
-        var closeTo = function (reorderBoundary) {
-          var nodeX = box.x;
-          if (reorderBoundary.edge === 'right') {
-            nodeX += box.width;
-          }
-          return Math.abs(nodeX - reorderBoundary.x) < reorderBoundary.margin * 2 &&
-              box.y < reorderBoundary.maxY &&
-              box.y > reorderBoundary.minY;
-        };
-        return _.find(boundaries, closeTo);
-      };
-
-
-  viewPort.on('scroll', function () {
-    viewPortDimensions = undefined;
-  });
-  if (imageInsertController) {
-    imageInsertController.addEventListener('imageInserted', function (dataUrl, imgWidth, imgHeight, evt) {
-      var point = stagePositionForPointEvent(evt);
-      mapModel.dropImage(dataUrl, imgWidth, imgHeight, point && point.x, point && point.y);
-    });
-  }
-  mapModel.addEventListener('nodeCreated', function (node) {
-    var currentReorderBoundary,
-        element = stageElement.createNode(node)
-            .queueFadeIn(nodeAnimOptions)
-            .updateNodeContent(node, resourceTranslator)
-            .on('tap', function (evt) {
-
-              var realEvent = (evt.gesture && evt.gesture.srcEvent) || evt;
-              if (realEvent.button && realEvent.button !== -1) {
-                return;
-              }
-              mapModel.clickNode(node.id, realEvent);
-              if (evt) {
-                evt.stopPropagation();
-              }
-              if (evt && evt.gesture) {
-                evt.gesture.stopPropagation();
-              }
-
-            })
-            .on('doubletap', function (event) {
-              if (event) {
-                event.stopPropagation();
-                if (event.gesture) {
-                  event.gesture.stopPropagation();
-                }
-              }
-              if (!mapModel.isEditingEnabled()) {
-                mapModel.toggleCollapse('mouse');
-                return;
-              }
-              mapModel.editNode('mouse');
-            })
-            .on('attachment-click', function () {
-              mapModel.openAttachment('mouse', node.id);
-            })
-            .each(ensureSpaceForNode)
-            .each(updateScreenCoordinates)
-            .on('mm:start-dragging mm:start-dragging-shadow', function () {
-              mapModel.selectNode(node.id);
-              currentReorderBoundary = mapModel.getReorderBoundary(node.id);
-              element.addClass('dragging');
-            })
-            .on('mm:drag', function (evt) {
-              var dropCoords = stagePositionForPointEvent(evt),
-                  currentPosition = evt.currentPosition && stagePositionForPointEvent({
-                        pageX: evt.currentPosition.left,
-                        pageY: evt.currentPosition.top
-                      }),
-                  nodeId,
-                  hasShift = evt && evt.gesture && evt.gesture.srcEvent && evt.gesture.srcEvent.shiftKey,
-                  border;
-              if (!dropCoords) {
-                clearCurrentDroppable();
-                return;
-              }
-              //ysy.log.debug("Diff={x:"+(currentPosition.x-dropCoords.x)+",y:"+(currentPosition.y-dropCoords.y)+"} \
-              //evtCurr="+JSON.stringify(evt.currentPosition)+"\
-              //curr="+JSON.stringify(currentPosition)+"\
-              //drop="+JSON.stringify(dropCoords),"mm:drag");
-              nodeId = mapModel.getNodeIdAtPosition(dropCoords.x, dropCoords.y);
-              if (!hasShift && !nodeId && currentPosition) {
-                currentPosition.width = element.outerWidth();
-                currentPosition.height = element.outerHeight();
-                border = withinReorderBoundary(currentReorderBoundary, currentPosition);
-                reorderBounds.updateReorderBounds(border, currentPosition);
-              } else {
-                reorderBounds.hide();
-              }
-              if (!nodeId || nodeId === node.id) {
-                clearCurrentDroppable();
-              } else if (nodeId !== currentDroppable) {
-                clearCurrentDroppable();
-                if (nodeId) {
-                  showDroppable(nodeId);
-                }
-              }
-            })
-            .on('contextmenu', function (event) {
-              mapModel.selectNode(node.id, false, event.shiftKey || event.ctrlKey);
-              if (mapModel.requestContextMenu(event.pageX, event.pageY)) {
-                event.preventDefault();
-                return false;
-              }
-            })
-            .on('mm:stop-dragging', function (evt) {
-              element.removeClass('dragging');
-              reorderBounds.hide();
-              var isShift = evt && evt.gesture && evt.gesture.srcEvent && evt.gesture.srcEvent.shiftKey,
-                  stageDropCoordinates = stagePositionForPointEvent(evt),
-                  nodeAtDrop, finalPosition, dropResult, manualPosition, vpCenter;
-              clearCurrentDroppable();
-              if (!stageDropCoordinates) {
-                return;
-              }
-              nodeAtDrop = mapModel.getNodeIdAtPosition(stageDropCoordinates.x, stageDropCoordinates.y);
-              finalPosition = stagePositionForPointEvent({pageX: evt.finalPosition.left, pageY: evt.finalPosition.top});
-              if (!finalPosition) return false;
-              if (nodeAtDrop && nodeAtDrop !== node.id) {
-                dropResult = mapModel.dropNode(node.id, nodeAtDrop, !!isShift);
-              } else if (node.level > 1) {
-                finalPosition.width = element.outerWidth();
-                finalPosition.height = element.outerHeight();
-                manualPosition = (!!isShift) || !withinReorderBoundary(currentReorderBoundary, finalPosition);
-                dropResult = mapModel.positionNodeAt(node.id, finalPosition.x, finalPosition.y, manualPosition);
-              } else if (node.level === 1 && evt.gesture) {
-                vpCenter = stagePointAtViewportCenter();
-                vpCenter.x -= evt.gesture.deltaX || 0;
-                vpCenter.y -= evt.gesture.deltaY || 0;
-                centerViewOn(vpCenter.x, vpCenter.y, true);
-                dropResult = true;
-              } else {
-                dropResult = false;
-              }
-              return dropResult;
-            })
-            .on('mm:cancel-dragging', function () {
-              clearCurrentDroppable();
-              element.removeClass('dragging');
-              reorderBounds.hide();
-            });
-    if (touchEnabled) {
-      element.on('hold', function (evt) {
-        var realEvent = (evt.gesture && evt.gesture.srcEvent) || evt;
-        mapModel.clickNode(node.id, realEvent);
-        if (mapModel.requestContextMenu(evt.gesture.center.pageX, evt.gesture.center.pageY)) {
-          evt.preventDefault();
-          if (evt.gesture) {
-            evt.gesture.preventDefault();
-            evt.gesture.stopPropagation();
-          }
-          return false;
-        }
-      });
-    }
-    // element.css('min-width', element.css('width'));
-    if (mapModel.isEditingEnabled()) {
-      element.shadowDraggable();
-    }
-  });
-  mapModel.addEventListener('nodeSelectionChanged', function (ideaId, isSelected) {
-    var node = stageElement.nodeWithId(ideaId);
-    if (isSelected) {
-      node.addClass('selected');
-      ensureNodeVisible(node);
-    } else {
-      node.removeClass('selected');
-    }
-  });
-  mapModel.addEventListener('nodeRemoved', function (node) {
-    stageElement.nodeWithId(node.id).queueFadeOut(nodeAnimOptions);
-  });
-  mapModel.addEventListener('nodeMoved', function (node /*, reason*/) {
-    var currentViewPortDimensions = getViewPortDimensions(),
-        //nodeDomData = {x:stageElement.nodeWithId(node.id).data('x'),y:stageElement.nodeWithId(node.id).data('y')},
-        nodeDom = stageElement.nodeWithId(node.id).data({
-          'x': Math.round(node.x),
-          'y': Math.round(node.y)
-        }).each(ensureSpaceForNode),
-        screenTopLeft = stageToViewCoordinates(Math.round(node.x), Math.round(node.y)),
-        screenBottomRight = stageToViewCoordinates(Math.round(node.x + node.width), Math.round(node.y + node.height));
-    //ysy.log.debug("VIEW: "+node.title+" old=["+nodeDomData.x+","+nodeDomData.y+"] new=["+nodeDom.data('x')+","+nodeDom.data('y')+"]");
-    if (screenBottomRight.x < 0 || screenBottomRight.y < 0 || screenTopLeft.x > currentViewPortDimensions.innerWidth || screenTopLeft.y > currentViewPortDimensions.innerHeight) {
-      nodeDom.each(updateScreenCoordinates);
-    } else {
-      nodeDom.each(animateToPositionCoordinates);
-    }
-  });
-  mapModel.addEventListener('nodeTitleChanged nodeAttrChanged nodeLabelChanged', function (n) {
-    stageElement.nodeWithId(n.id).updateNodeContent(n, resourceTranslator);
-  });
-  mapModel.addEventListener('connectorCreated', function (connector) {
-    var element = stageElement.createConnector(connector).queueFadeIn(nodeAnimOptions).updateConnector(true);
-    stageElement.nodeWithId(connector.from).add(stageElement.nodeWithId(connector.to))
-        .on('mapjs:move', function () {
-          element.updateConnector(true);
-        })
-        .on('mm:drag', function () {
-          element.updateConnector();
-        })
-        .on('mapjs:animatemove', function () {
-          connectorsForAnimation.push(element);
-        });
-  });
-  mapModel.addEventListener('connectorRemoved', function (connector) {
-    stageElement.findConnector(connector).queueFadeOut(nodeAnimOptions);
-  });
-  mapModel.addEventListener('linkCreated', function (l) {
-    var link = stageElement.createLink(l).queueFadeIn(nodeAnimOptions).updateLink();
-    link.find('.mapjs-link-hit').on('tap', function (event) {
-      mapModel.selectLink('mouse', l, {x: event.gesture.center.pageX, y: event.gesture.center.pageY});
-      event.stopPropagation();
-      event.gesture.stopPropagation();
-    });
-    stageElement.nodeWithId(l.ideaIdFrom).add(stageElement.nodeWithId(l.ideaIdTo))
-        .on('mapjs:move mm:drag', function () {
-          link.updateLink();
-        })
-        .on('mapjs:animatemove', function () {
-          linksForAnimation.push(link);
-        });
-
-  });
-  mapModel.addEventListener('linkRemoved', function (l) {
-    stageElement.findLink(l).queueFadeOut(nodeAnimOptions);
-  });
-  mapModel.addEventListener('mapScaleChanged', function (scaleMultiplier /*, zoomPoint */) {
-    var currentScale = stageElement.data('scale'),
-        targetScale = Math.max(Math.min(currentScale * scaleMultiplier, 5), 0.2),
-        currentCenter = stagePointAtViewportCenter();
-    if (currentScale === targetScale) {
-      return;
-    }
-    stageElement.data('scale', targetScale).updateStage();
-    centerViewOn(currentCenter.x, currentCenter.y);
-  });
-  mapModel.addEventListener('nodeVisibilityRequested', function (ideaId) {
-    var id = ideaId || mapModel.getCurrentlySelectedIdeaId(),
-        node = stageElement.nodeWithId(id);
-    if (node) {
-      ensureNodeVisible(node);
-      viewPort.finish();
-    }
-
-  });
-  mapModel.addEventListener('nodeFocusRequested', function (ideaId) {
-    var node = stageElement.nodeWithId(ideaId).data(),
-        nodeCenterX = node.x + node.width / 2,
-        nodeCenterY = node.y + node.height / 2;
-    if (stageElement.data('scale') !== 1) {
-      stageElement.data('scale', 1).updateStage();
-    }
-    centerViewOn(nodeCenterX, nodeCenterY, true);
-  });
-  mapModel.addEventListener('mapViewResetRequested', function () {
-    stageElement.data({'scale': 1, 'height': 0, 'width': 0, 'offsetX': 0, 'offsetY': 0}).updateStage();
-    stageElement.children().andSelf().finish(nodeAnimOptions.queue);
-    jQuery(stageElement).find('.mapjs-node').each(ensureSpaceForNode);
-    updateDirtyStage();
-    jQuery(stageElement).find('[data-mapjs-role=connector]').updateConnector(true);
-    jQuery(stageElement).find('[data-mapjs-role=link]').updateLink();
-    centerViewOn(0, 0);
-    viewPort.focus();
-  });
-  mapModel.addEventListener('layoutChangeStarting', function () {
-    viewPortDimensions = undefined;
-    stageElement.children().finish(nodeAnimOptions.queue);
-    stageElement.finish(nodeAnimOptions.queue);
-  });
-  mapModel.addEventListener('layoutChangeComplete', function () {
-    var connectorGroupClone = [], linkGroupClone = [];
-
-    _.each(connectorsForAnimation,function (connector) {
-      if (!jQuery(connector).animateConnectorToPosition(nodeAnimOptions, 2)) {
-        connectorGroupClone.push(connector);
-      }
-    });
-    _.each(linksForAnimation, function (link) {
-      if (!jQuery(link).animateConnectorToPosition(nodeAnimOptions, 2)) {
-        linkGroupClone.push(link);
-      }
-    });
-    connectorsForAnimation = [];
-    linksForAnimation = [];
-    stageElement.animate({'opacity': 1}, _.extend({
-      progress: function () {
-        $(connectorGroupClone).updateConnector();
-        $(linkGroupClone).updateLink();
-      }
-    }, nodeAnimOptions));
-    ensureNodeVisible(stageElement.nodeWithId(mapModel.getCurrentlySelectedIdeaId()));
-    updateDirtyStage();
-    stageElement.children().dequeue(nodeAnimOptions.queue);
-    stageElement.dequeue(nodeAnimOptions.queue);
-  });
-
-  /* editing */
-  if (!options || !options.inlineEditingDisabled) {
-    mapModel.addEventListener('nodeEditRequested', function (nodeId, shouldSelectAll, editingNew) {
-      var editingElement = stageElement.nodeWithId(nodeId);
-      mapModel.setInputEnabled(false);
-      viewPort.finish();
-      /* close any pending animations */
-      editingElement.editNode(shouldSelectAll).done(
-          function (newText) {
-            mapModel.setInputEnabled(true);
-            mapModel.updateTitle(nodeId, newText, editingNew);
-            editingElement.focus();
-
-          }).fail(function () {
-        mapModel.setInputEnabled(true);
-        if (editingNew) {
-          mapModel.undo('internal');
-        }
-        editingElement.focus();
-      });
-    });
-  }
-  mapModel.addEventListener('addLinkModeToggled', function (isOn) {
-    if (isOn) {
-      stageElement.addClass('mapjs-add-link');
-    } else {
-      stageElement.removeClass('mapjs-add-link');
-    }
-  });
-  mapModel.addEventListener('linkAttrChanged', function (l) {
-    var attr = _.extend({arrow: false}, l.attr && l.attr.style);
-    stageElement.findLink(l).data(attr).updateLink();
-  });
-
-  mapModel.addEventListener('activatedNodesChanged', function (activatedNodes, deactivatedNodes) {
-    _.each(activatedNodes, function (nodeId) {
-      stageElement.nodeWithId(nodeId).addClass('activated');
-    });
-    _.each(deactivatedNodes, function (nodeId) {
-      stageElement.nodeWithId(nodeId).removeClass('activated');
-    });
-  });
-};
-
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-widget.js b/plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-widget.js
deleted file mode 100644
index be6b7dd..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/dom-map-widget.js
+++ /dev/null
@@ -1,218 +0,0 @@
-/*jslint nomen: true, newcap: true, browser: true*/
-/*global MAPJS, $, _, jQuery*/
-
-jQuery.fn.scrollWhenDragging = function (scrollPredicate) {
-  /*jslint newcap:true*/
-  'use strict';
-  return this.each(function () {
-    var element = $(this),
-        dragOrigin;
-    element.on('dragstart', function () {
-      if (scrollPredicate()) {
-        dragOrigin = {
-          top: element.scrollTop(),
-          left: element.scrollLeft()
-        };
-      }
-    }).on('drag', function (e) {
-      if (e.gesture && dragOrigin) {
-        element.scrollTop(dragOrigin.top - e.gesture.deltaY);
-        element.scrollLeft(dragOrigin.left - e.gesture.deltaX);
-      }
-    }).on('dragend', function () {
-      dragOrigin = undefined;
-    });
-  });
-};
-$.fn.domMapWidget = function (activityLog, mapModel, touchEnabled, imageInsertController, dragContainer, resourceTranslator, centerSelectedNodeOnOrientationChange, options) {
-  'use strict';
-  var hotkeyEventHandlers = {
-        'return': 'addSiblingIdea',
-        'shift+return': 'addSiblingIdeaBefore',
-        'del backspace': 'removeSubIdea',
-        'tab insert': 'addSubIdea',
-        'left': 'selectNodeLeft',
-        'up': 'selectNodeUp',
-        'right': 'selectNodeRight',
-        'shift+right': 'activateNodeRight',
-        'shift+left': 'activateNodeLeft',
-        'meta+right ctrl+right meta+left ctrl+left': 'flip',
-        'shift+up': 'activateNodeUp',
-        'shift+down': 'activateNodeDown',
-        'down': 'selectNodeDown',
-        'space f2': 'editNode',
-        'shift+space': 'editNodeData',
-        'f': 'toggleCollapse',
-        'c meta+x ctrl+x': 'cut',
-        'p meta+v ctrl+v': 'paste',
-        'y meta+c ctrl+c': 'copy',
-        'u meta+z ctrl+z': 'undo',
-        'shift+tab': 'insertIntermediate',
-        'Esc 0 meta+0 ctrl+0': 'resetView',
-        'r meta+shift+z ctrl+shift+z meta+y ctrl+y': 'redo',
-        'meta++ ctrl++ z': 'scaleUp',
-        'meta+- ctrl+- shift+z': 'scaleDown',
-        'meta+up ctrl+up': 'moveUp',
-        'meta+down ctrl+down': 'moveDown',
-        //'ctrl+shift+v meta+shift+v': 'pasteStyle',
-        'Esc': 'cancelCurrentAction',
-        'ctrl+s meta+s': 'save',
-        'k': 'requestContextMenu'
-      },
-      charEventHandlers = {
-        '[': 'activateChildren',
-        '{': 'activateNodeAndChildren',
-        '=': 'activateSiblingNodes',
-        '.': 'activateSelectedNode',
-        '/': 'toggleCollapse'
-        //'a': 'openAttachment',
-        //'i': 'editIcon'
-      },
-      actOnKeys = true,
-      self = this;
-  mapModel.addEventListener('inputEnabledChanged', function (canInput, holdFocus) {
-    actOnKeys = canInput;
-    if (canInput && !holdFocus) {
-      self.focus();
-    }
-  });
-
-  return this.each(function () {
-    var element = $(this),
-        stage = $('<div>').css({
-          position: 'relative'
-        }).attr('data-mapjs-role', 'stage').appendTo(element).data({
-          'offsetX': element.innerWidth() / 2,
-          'offsetY': element.innerHeight() / 2,
-          'width': element.innerWidth() - 20,
-          'height': element.innerHeight() - 20,
-          'scale': 1
-        }).updateStage(),
-        previousPinchScale = false;
-    element.css('overflow', 'auto').attr('tabindex', 1);
-    if (mapModel.isEditingEnabled()) {
-      (dragContainer || element).simpleDraggableContainer();
-    }
-
-    if (!touchEnabled) {
-      element.scrollWhenDragging(mapModel.getInputEnabled); //no need to do this for touch, this is native
-      element.on('mousedown', function (e) {
-        if (e.target !== element[0]) {
-          element.css('overflow', 'hidden');
-        }
-      });
-      jQuery(document).on('mouseup', function () {
-        if (element.css('overflow') !== 'auto') {
-          element.css('overflow', 'auto');
-        }
-      });
-      element.imageDropWidget(imageInsertController);
-    } else {
-      element.on('doubletap', function (event) {
-        if (mapModel.requestContextMenu(event.gesture.center.pageX, event.gesture.center.pageY)) {
-          event.preventDefault();
-          event.gesture.preventDefault();
-          return false;
-        }
-      }).on('pinch', function (event) {
-        if (!event || !event.gesture || !event.gesture.scale) {
-          return;
-        }
-        event.preventDefault();
-        event.gesture.preventDefault();
-
-        var scale = event.gesture.scale;
-        if (previousPinchScale) {
-          scale = scale / previousPinchScale;
-        }
-        if (Math.abs(scale - 1) < 0.05) {
-          return;
-        }
-        previousPinchScale = event.gesture.scale;
-
-        mapModel.scale('touch', scale, {
-          x: event.gesture.center.pageX - stage.data('offsetX'),
-          y: event.gesture.center.pageY - stage.data('offsetY')
-        });
-      }).on('gestureend', function () {
-        previousPinchScale = false;
-      });
-
-    }
-    MAPJS.DOMRender.viewController(mapModel, stage, touchEnabled, imageInsertController, resourceTranslator, options);
-    _.each(hotkeyEventHandlers, function (mappedFunction, keysPressed) {
-      element.keydown(keysPressed, function (event) {
-        mapModel.getYsy().log.debug("keydown " + keysPressed + " => " + mappedFunction, "keys");
-        if (actOnKeys) {
-          event.stopImmediatePropagation();
-          event.preventDefault();
-          mapModel[mappedFunction]('keyboard');
-        }
-      });
-    });
-    if (!touchEnabled) {
-      jQuery(window).on('resize', function () {
-        mapModel.resetView();
-      });
-    }
-
-    jQuery(window).on('orientationchange', function () {
-      if (centerSelectedNodeOnOrientationChange) {
-        mapModel.centerOnNode(mapModel.getSelectedNodeId());
-      } else {
-        mapModel.resetView();
-      }
-
-    });
-    jQuery("#container").on('keydown', function (e) {
-      var functions = {
-        'U+003D': 'scaleUp',
-        'U+002D': 'scaleDown',
-        61: 'scaleUp',
-        173: 'scaleDown'
-      }, mappedFunction;
-      if (e && !e.altKey && (e.ctrlKey || e.metaKey)) {
-        if (e.originalEvent && e.originalEvent.keyIdentifier) { /* webkit */
-          mappedFunction = functions[e.originalEvent.keyIdentifier];
-        } else if (e.key === 'MozPrintableKey') {
-          mappedFunction = functions[e.which];
-        }
-        if (mappedFunction) {
-          mapModel.getYsy().log.debug("keydown => " + mappedFunction, "keys");
-          if (actOnKeys) {
-            e.preventDefault();
-            mapModel[mappedFunction]('keyboard');
-          }
-        }
-      }
-    }).on('wheel mousewheel', function (e) {
-      var scroll = e.originalEvent.deltaX || (-1 * e.originalEvent.wheelDeltaX);
-      if (scroll < 0 && element.scrollLeft() === 0) {
-        e.preventDefault();
-      }
-      if (scroll > 0 && (element[0].scrollWidth - element.width() - element.scrollLeft() === 0)) {
-        e.preventDefault();
-      }
-    });
-
-    element.on('keypress', function (evt) {
-      if (!actOnKeys) {
-        return;
-      }
-      if (/INPUT|TEXTAREA/.test(evt && evt.target && evt.target.tagName)) {
-        return;
-      }
-      var unicode = evt.charCode || evt.keyCode,
-          actualkey = String.fromCharCode(unicode),
-          mappedFunction = charEventHandlers[actualkey];
-      mapModel.getYsy().log.debug("keydown " + actualkey + " => " + mappedFunction, "keys");
-      if (mappedFunction) {
-        evt.preventDefault();
-        mapModel[mappedFunction]('keyboard');
-      } else if (Number(actualkey) <= 9 && Number(actualkey) >= 1) {
-        evt.preventDefault();
-        mapModel.activateLevel('keyboard', Number(actualkey) + 1);
-      }
-    });
-  });
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/hammer-draggable.js b/plugins/easy_mindmup/assets/javascripts/mindmup/hammer-draggable.js
deleted file mode 100644
index 9a3678f..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/hammer-draggable.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/*global $, Hammer*/
-/*jslint newcap:true*/
-(function () {
-  'use strict';
-  $.fn.simpleDraggableContainer = function () {
-    var currentDragObject,
-        originalDragObjectPosition,
-        originalScroll,
-        container = this,
-        drag = function (event) {
-
-          if (currentDragObject && event.gesture) {
-            var currentScroll = $(document).scrollTop();
-            var newpos = {
-              top: Math.round(originalDragObjectPosition.top + event.gesture.deltaY - originalScroll + currentScroll),
-              left: Math.round(originalDragObjectPosition.left + event.gesture.deltaX)
-            };
-            currentDragObject.offset(newpos).trigger($.Event('mm:drag', {
-              currentPosition: newpos,
-              gesture: event.gesture
-            }));
-            if (event.gesture) {
-              event.gesture.preventDefault();
-            }
-            return false;
-          }
-        },
-        rollback = function (e) {
-          var target = currentDragObject; // allow it to be cleared while animating
-          if (target.attr('mapjs-drag-role') !== 'shadow') {
-            target.animate(originalDragObjectPosition, {
-              complete: function () {
-                target.trigger($.Event('mm:cancel-dragging', {gesture: e.gesture}));
-              },
-              progress: function () {
-                target.trigger('mm:drag');
-              }
-            });
-          } else {
-            target.trigger($.Event('mm:cancel-dragging', {gesture: e.gesture}));
-          }
-        };
-    Hammer(this, {'drag_min_distance': 2});
-    return this.on('mm:start-dragging', function (event) {
-      if (!currentDragObject) {
-        currentDragObject = $(event.relatedTarget);
-        //originalDragObjectPosition = {
-        //  top: currentDragObject.css('top'),
-        //  left: currentDragObject.css('left')
-        //};
-        originalScroll = $(document).scrollTop();
-        originalDragObjectPosition = currentDragObject.offset();
-        $(this).on('drag', drag);
-      }
-    }).on('mm:start-dragging-shadow', function (event) {
-      var target = $(event.relatedTarget),
-          clone = function () {
-            var result = target.clone().addClass('drag-shadow').appendTo(container).offset(target.offset()).data(target.data()).attr('mapjs-drag-role', 'shadow'),
-                scale = target.parent().data('scale') || 1;
-            if (scale !== 0) {
-              result.css({
-                'transform': 'scale(' + scale + ')',
-                'transform-origin': 'top left'
-              });
-            }
-            return result;
-          };
-      if (!currentDragObject) {
-        currentDragObject = clone();
-        //originalDragObjectPosition = {
-        //  top: currentDragObject.css('top'),
-        //  left: currentDragObject.css('left')
-        //};
-        originalScroll = $(document).scrollTop();
-        originalDragObjectPosition = currentDragObject.offset();
-        currentDragObject.on('mm:stop-dragging mm:cancel-dragging', function (e) {
-          $(this).remove();
-          e.stopPropagation();
-          e.stopImmediatePropagation();
-          var evt = $.Event(e.type, {
-            gesture: e.gesture,
-            finalPosition: e.finalPosition
-          });
-          target.trigger(evt);
-        }).on('mm:drag', function (e) {
-          target.trigger(e);
-        });
-        $(this).on('drag', drag);
-      }
-    }).on('dragend', function (e) {
-      $(this).off('drag', drag);
-      if (currentDragObject) {
-        var evt = $.Event('mm:stop-dragging', {
-          gesture: e.gesture,
-          finalPosition: currentDragObject.offset()
-        });
-        currentDragObject.trigger(evt);
-        if (evt.result === false) {
-          rollback(e);
-        }
-        currentDragObject = undefined;
-      }
-    }).on('mouseleave', function (e) {
-      if (currentDragObject) {
-        $(this).off('drag', drag);
-        rollback(e);
-        currentDragObject = undefined;
-      }
-    }).attr('data-drag-role', 'container');
-  };
-
-  var onDrag = function (e) {
-    $(this).trigger(
-        $.Event('mm:start-dragging', {
-          relatedTarget: this,
-          gesture: e.gesture
-        })
-    );
-    e.stopPropagation();
-    e.preventDefault();
-    if (e.gesture) {
-      e.gesture.stopPropagation();
-      e.gesture.preventDefault();
-    }
-  }, onShadowDrag = function (e) {
-    $(this).trigger(
-        $.Event('mm:start-dragging-shadow', {
-          relatedTarget: this,
-          gesture: e.gesture
-        })
-    );
-    e.stopPropagation();
-    e.preventDefault();
-    if (e.gesture) {
-      e.gesture.stopPropagation();
-      e.gesture.preventDefault();
-    }
-  };
-  $.fn.simpleDraggable = function (options) {
-    if (!options || !options.disable) {
-      return $(this).on('dragstart', onDrag);
-    } else {
-      return $(this).off('dragstart', onDrag);
-    }
-  };
-  $.fn.shadowDraggable = function (options) {
-    if (!options || !options.disable) {
-      return $(this).on('dragstart', onShadowDrag);
-    } else {
-      return $(this).off('dragstart', onShadowDrag);
-    }
-  };
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/image-drop-widget.js b/plugins/easy_mindmup/assets/javascripts/mindmup/image-drop-widget.js
deleted file mode 100644
index 4d139e7..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/image-drop-widget.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/*global observable, jQuery, FileReader, Image, MAPJS, document, _ */
-MAPJS.getDataURIAndDimensions = function (src, corsProxyUrl) {
-  'use strict';
-  var isDataUri = function (string) {
-        return (/^data:image/).test(string);
-      },
-      convertSrcToDataUri = function (img) {
-        if (isDataUri(img.src)) {
-          return img.src;
-        }
-        var canvas = document.createElement('canvas'),
-            ctx;
-        canvas.width = img.width;
-        canvas.height = img.height;
-        ctx = canvas.getContext('2d');
-        ctx.drawImage(img, 0, 0);
-        return canvas.toDataURL('image/png');
-      },
-      deferred = jQuery.Deferred(),
-      domImg = new Image();
-
-  domImg.onload = function () {
-    try {
-      deferred.resolve({dataUri: convertSrcToDataUri(domImg), width: domImg.width, height: domImg.height});
-    } catch (e) {
-      deferred.reject();
-    }
-  };
-  domImg.onerror = function () {
-    deferred.reject();
-  };
-  if (!isDataUri(src)) {
-    if (corsProxyUrl) {
-      domImg.crossOrigin = 'Anonymous';
-      src = corsProxyUrl + encodeURIComponent(src);
-    } else {
-      deferred.reject('no-cors');
-    }
-  }
-  domImg.src = src;
-  return deferred.promise();
-};
-MAPJS.ImageInsertController = function (corsProxyUrl, resourceConverter) {
-  'use strict';
-  var self = observable(this),
-      readFileIntoDataUrl = function (fileInfo) {
-        var loader = jQuery.Deferred(),
-            fReader = new FileReader();
-        fReader.onload = function (e) {
-          loader.resolve(e.target.result);
-        };
-        fReader.onerror = loader.reject;
-        fReader.onprogress = loader.notify;
-        fReader.readAsDataURL(fileInfo);
-        return loader.promise();
-      };
-  self.insertDataUrl = function (dataUrl, evt) {
-    self.dispatchEvent('imageLoadStarted');
-    MAPJS.getDataURIAndDimensions(dataUrl, corsProxyUrl).then(
-        function (result) {
-          var storeUrl = result.dataUri;
-          if (resourceConverter) {
-            storeUrl = resourceConverter(storeUrl);
-          }
-          self.dispatchEvent('imageInserted', storeUrl, result.width, result.height, evt);
-        },
-        function (reason) {
-          self.dispatchEvent('imageInsertError', reason);
-        }
-    );
-  };
-  self.insertFiles = function (files, evt) {
-    jQuery.each(files, function (idx, fileInfo) {
-      if (/^image\//.test(fileInfo.type)) {
-        jQuery.when(readFileIntoDataUrl(fileInfo)).done(function (dataUrl) {
-          self.insertDataUrl(dataUrl, evt);
-        });
-      }
-    });
-  };
-  self.insertHtmlContent = function (htmlContent, evt) {
-    var images = htmlContent.match(/img[^>]*src="([^"]*)"/);
-    if (images && images.length > 0) {
-      _.each(images.slice(1), function (dataUrl) {
-        self.insertDataUrl(dataUrl, evt);
-      });
-    }
-  };
-};
-jQuery.fn.imageDropWidget = function (imageInsertController) {
-  'use strict';
-  this.on('dragenter dragover', function (e) {
-    if (e.originalEvent.dataTransfer) {
-      return false;
-    }
-  }).on('drop', function (e) {
-    var dataTransfer = e.originalEvent.dataTransfer,
-        htmlContent;
-    e.stopPropagation();
-    e.preventDefault();
-    if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {
-      imageInsertController.insertFiles(dataTransfer.files, e.originalEvent);
-    } else if (dataTransfer) {
-      htmlContent = dataTransfer.getData('text/html');
-      imageInsertController.insertHtmlContent(htmlContent, e.originalEvent);
-    }
-  });
-  return this;
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/layout.js b/plugins/easy_mindmup/assets/javascripts/mindmup/layout.js
deleted file mode 100644
index 080f4f9..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/layout.js
+++ /dev/null
@@ -1,349 +0,0 @@
-/*jslint nomen: true*/
-/*global _, Color, MAPJS*/
-MAPJS.defaultStyles = {};
-MAPJS.layoutLinks = function (idea, visibleNodes) {
-  'use strict';
-  var result = {};
-  _.each(idea.links, function (link) {
-    if (visibleNodes[link.ideaIdFrom] && visibleNodes[link.ideaIdTo]) {
-      result[link.ideaIdFrom + '_' + link.ideaIdTo] = {
-        ideaIdFrom: link.ideaIdFrom,
-        ideaIdTo: link.ideaIdTo,
-        attr: _.clone(link.attr)
-      };
-      //todo - clone
-    }
-  });
-  return result;
-};
-MAPJS.calculateFrame = function (nodes, margin) {
-  'use strict';
-  margin = margin || 0;
-  var result = {
-    top: _.min(nodes, function (node) {
-      return node.y;
-    }).y - margin,
-    left: _.min(nodes, function (node) {
-      return node.x;
-    }).x - margin
-  };
-  result.width = margin + _.max(_.map(nodes, function (node) {
-        return node.x + node.width;
-      })) - result.left;
-  result.height = margin + _.max(_.map(nodes, function (node) {
-        return node.y + node.height;
-      })) - result.top;
-  return result;
-};
-MAPJS.contrastForeground = function (background) {
-  'use strict';
-  /*jslint newcap:true*/
-  var luminosity = Color(background).luminosity();
-  if (luminosity < 0.5) {
-    return '#EEEEEE';
-  }
-  if (luminosity < 0.9) {
-    return '#4F4F4F';
-  }
-  return '#000000';
-};
-MAPJS.Outline = function (topBorder, bottomBorder) {
-  'use strict';
-  var shiftBorder = function (border, deltaH) {
-    return _.map(border, function (segment) {
-      return {
-        l: segment.l,
-        h: segment.h + deltaH
-      };
-    });
-  };
-  this.initialHeight = function () {
-    return this.bottom[0].h - this.top[0].h;
-  };
-  this.borders = function () {
-    return _.pick(this, 'top', 'bottom');
-  };
-  this.spacingAbove = function (outline) {
-    var i = 0, j = 0, result = 0, li = 0, lj = 0;
-    while (i < this.bottom.length && j < outline.top.length) {
-      result = Math.max(result, this.bottom[i].h - outline.top[j].h);
-      if (li + this.bottom[i].l < lj + outline.top[j].l) {
-        li += this.bottom[i].l;
-        i += 1;
-      } else if (li + this.bottom[i].l === lj + outline.top[j].l) {
-        li += this.bottom[i].l;
-        i += 1;
-        lj += outline.top[j].l;
-        j += 1;
-      } else {
-        lj += outline.top[j].l;
-        j += 1;
-      }
-    }
-    return result;
-  };
-  this.indent = function (horizontalIndent, margin) {
-    if (!horizontalIndent) {
-      return this;
-    }
-    var top = this.top.slice(),
-        bottom = this.bottom.slice(),
-        vertCenter = (bottom[0].h + top[0].h) / 2;
-    top.unshift({h: vertCenter - margin / 2, l: horizontalIndent});
-    bottom.unshift({h: vertCenter + margin / 2, l: horizontalIndent});
-    return new MAPJS.Outline(top, bottom);
-  };
-  this.stackBelow = function (outline, margin) {
-    var spacing = outline.spacingAbove(this),
-        top = MAPJS.Outline.extendBorder(outline.top, shiftBorder(this.top, spacing + margin)),
-        bottom = MAPJS.Outline.extendBorder(shiftBorder(this.bottom, spacing + margin), outline.bottom);
-    return new MAPJS.Outline(
-        top,
-        bottom
-    );
-  };
-  this.expand = function (initialTopHeight, initialBottomHeight) {
-    var topAlignment = initialTopHeight - this.top[0].h,
-        bottomAlignment = initialBottomHeight - this.bottom[0].h,
-        top = shiftBorder(this.top, topAlignment),
-        bottom = shiftBorder(this.bottom, bottomAlignment);
-    return new MAPJS.Outline(
-        top,
-        bottom
-    );
-  };
-  this.insertAtStart = function (dimensions, margin) {
-    var alignment = 0, //-1 * this.top[0].h - suboutlineHeight * 0.5,
-        topBorder = shiftBorder(this.top, alignment),
-        bottomBorder = shiftBorder(this.bottom, alignment),
-        easeIn = function (border) {
-          border[0].l *= 0.5;
-          border[1].l += border[0].l;
-        };
-    topBorder[0].l += margin;
-    bottomBorder[0].l += margin;
-    topBorder.unshift({h: -0.5 * dimensions.height, l: dimensions.width});
-    bottomBorder.unshift({h: 0.5 * dimensions.height, l: dimensions.width});
-    if (topBorder[0].h > topBorder[1].h) {
-      easeIn(topBorder);
-    }
-    if (bottomBorder[0].h < bottomBorder[1].h) {
-      easeIn(bottomBorder);
-    }
-    return new MAPJS.Outline(topBorder, bottomBorder);
-  };
-  this.top = topBorder.slice();
-  this.bottom = bottomBorder.slice();
-};
-MAPJS.Outline.borderLength = function (border) {
-  'use strict';
-  return _.reduce(border, function (seed, el) {
-    return seed + el.l;
-  }, 0);
-};
-MAPJS.Outline.borderSegmentIndexAt = function (border, length) {
-  'use strict';
-  var l = 0, i = -1;
-  while (l <= length) {
-    i += 1;
-    if (i >= border.length) {
-      return -1;
-    }
-    l += border[i].l;
-  }
-  return i;
-};
-MAPJS.Outline.extendBorder = function (originalBorder, extension) {
-  'use strict';
-  var result = originalBorder.slice(),
-      origLength = MAPJS.Outline.borderLength(originalBorder),
-      i = MAPJS.Outline.borderSegmentIndexAt(extension, origLength),
-      lengthToCut;
-  if (i >= 0) {
-    lengthToCut = MAPJS.Outline.borderLength(extension.slice(0, i + 1));
-    result.push({h: extension[i].h, l: lengthToCut - origLength});
-    result = result.concat(extension.slice(i + 1));
-  }
-  return result;
-};
-MAPJS.Tree = function (options) {
-  'use strict';
-  _.extend(this, options);
-  this.toLayout = function (x, y, parentId) {
-    x = x || 0;
-    y = y || 0;
-    var result = {
-      nodes: {},
-      connectors: {}
-    }, self;
-    self = _.pick(this, 'id', 'title', 'attr', 'width', 'height', 'level');
-    self.attr.data = _.extend({}, self.attr.data);
-    if (self.level === 1) {
-      self.x = -0.5 * this.width;
-      self.y = -0.5 * this.height;
-    } else {
-      self.x = x + this.deltaX || 0;
-      self.y = y + this.deltaY || 0;
-    }
-    if (!self.attr.style) {
-      self.attr.style = {};
-    }
-    result.nodes[this.id] = self;
-    if (parentId !== undefined) {
-      result.connectors[self.id] = {
-        from: parentId,
-        to: self.id
-      };
-    }
-    if (this.subtrees) {
-      this.subtrees.forEach(function (t) {
-        var subLayout = t.toLayout(self.x, self.y, self.id);
-        _.extend(result.nodes, subLayout.nodes);
-        _.extend(result.connectors, subLayout.connectors);
-      });
-    }
-    return result;
-  };
-};
-MAPJS.Outline.fromDimensions = function (dimensions) {
-  'use strict';
-  return new MAPJS.Outline([{
-    h: -0.5 * dimensions.height,
-    l: dimensions.width
-  }], [{
-    h: 0.5 * dimensions.height,
-    l: dimensions.width
-  }]);
-};
-MAPJS.calculateTree = function (content, dimensionProvider, margin, rankAndParentPredicate, level) {
-  'use strict';
-  var options = {
-        id: content.id,
-        title: content.title,
-        attr: $.extend({}, content.attr, {hasChildren: !_.isEmpty(content.ideas)}),
-        deltaY: 0,
-        deltaX: 0,
-        level: level || 1
-      },
-      setVerticalSpacing = function (treeArray, dy) {
-        var i,
-            tree,
-            oldSpacing,
-            newSpacing,
-            oldPositions = _.map(treeArray, function (t) {
-              return _.pick(t, 'deltaX', 'deltaY');
-            }),
-            referenceTree,
-            alignment;
-        for (i = 0; i < treeArray.length; i += 1) {
-          tree = treeArray[i];
-          if (tree.attr && tree.attr.position) {
-            tree.deltaY = tree.attr.position[1];
-            if (referenceTree === undefined || tree.attr.position[2] > treeArray[referenceTree].attr.position[2]) {
-              referenceTree = i;
-            }
-          } else {
-            tree.deltaY += dy;
-          }
-          if (i > 0) {
-            oldSpacing = oldPositions[i].deltaY - oldPositions[i - 1].deltaY;
-            newSpacing = treeArray[i].deltaY - treeArray[i - 1].deltaY;
-            if (newSpacing < oldSpacing) {
-              tree.deltaY += oldSpacing - newSpacing;
-            }
-          }
-        }
-        alignment = referenceTree && (treeArray[referenceTree].attr.position[1] - treeArray[referenceTree].deltaY);
-        if (alignment) {
-          for (i = 0; i < treeArray.length; i += 1) {
-            treeArray[i].deltaY += alignment;
-          }
-        }
-      },
-      shouldIncludeSubIdeas = function () {
-        return !(_.isEmpty(content.ideas) || (content.attr && content.attr.collapsed));
-      },
-      includedSubIdeaKeys = function () {
-        var allRanks = _.map(_.keys(content.ideas), parseFloat),
-            includedRanks = rankAndParentPredicate ? _.filter(allRanks, function (rank) {
-              return rankAndParentPredicate(rank, content);
-            }) : allRanks;
-        return _.sortBy(includedRanks, Math.abs);
-      },
-      includedSubIdeas = function () {
-        var result = [];
-        _.each(includedSubIdeaKeys(), function (key) {
-          result.push(content.ideas[key]);
-        });
-        return result;
-      },
-      nodeDimensions = dimensionProvider(content, options.level),
-      appendSubtrees = function (subtrees) {
-        var suboutline, deltaHeight, subtreePosition, horizontal, treeOutline;
-        _.each(subtrees, function (subtree) {
-          subtree.deltaX = nodeDimensions.width + margin;
-          subtreePosition = subtree.attr && subtree.attr.position && subtree.attr.position[0];
-          if (subtreePosition && subtreePosition > subtree.deltaX) {
-            horizontal = subtreePosition - subtree.deltaX;
-            subtree.deltaX = subtreePosition;
-          } else {
-            horizontal = 0;
-          }
-          if (!suboutline) {
-            suboutline = subtree.outline.indent(horizontal, margin);
-          } else {
-            treeOutline = subtree.outline.indent(horizontal, margin);
-            deltaHeight = treeOutline.initialHeight();
-            suboutline = treeOutline.stackBelow(suboutline, margin);
-            subtree.deltaY = suboutline.initialHeight() - deltaHeight / 2 - subtree.height / 2;
-          }
-        });
-        if (subtrees && subtrees.length) {
-          setVerticalSpacing(subtrees, 0.5 * (nodeDimensions.height - suboutline.initialHeight()));
-          suboutline = suboutline.expand(
-              subtrees[0].deltaY - nodeDimensions.height * 0.5,
-              subtrees[subtrees.length - 1].deltaY + subtrees[subtrees.length - 1].height - nodeDimensions.height * 0.5
-          );
-        }
-        options.outline = suboutline.insertAtStart(nodeDimensions, margin);
-      };
-  _.extend(options, nodeDimensions);
-  options.outline = new MAPJS.Outline.fromDimensions(nodeDimensions);
-  if (shouldIncludeSubIdeas()) {
-    options.subtrees = _.map(includedSubIdeas(), function (i) {
-      return MAPJS.calculateTree(i, dimensionProvider, margin, rankAndParentPredicate, options.level + 1);
-    });
-    if (!_.isEmpty(options.subtrees)) {
-      appendSubtrees(options.subtrees);
-    }
-  }
-  return new MAPJS.Tree(options);
-};
-
-MAPJS.calculateLayout = function (idea, dimensionProvider, margin,layoutPredicate) {
-  'use strict';
-  var positiveTree, negativeTree, layout, negativeLayout, positive, negative,
-      setDefaultStyles = function (nodes) {
-        _.each(nodes, function (node) {
-          node.attr = node.attr || {};
-          node.attr.style = _.extend({}, MAPJS.defaultStyles[(node.level === 1) ? 'root' : 'nonRoot'], node.attr.style);
-        });
-      };
-  positive = layoutPredicate(idea, true);
-  negative = layoutPredicate(idea, false);
-  margin = margin || 20;
-  positiveTree = MAPJS.calculateTree(idea, dimensionProvider, margin, positive);
-  negativeTree = MAPJS.calculateTree(idea, dimensionProvider, margin, negative);
-  layout = positiveTree.toLayout();
-  negativeLayout = negativeTree.toLayout();
-  _.each(negativeLayout.nodes, function (n) {
-    n.x = -1 * n.x - n.width;
-  });
-  _.extend(negativeLayout.nodes, layout.nodes);
-  _.extend(negativeLayout.connectors, layout.connectors);
-  setDefaultStyles(negativeLayout.nodes);
-  negativeLayout.links = MAPJS.layoutLinks(idea, negativeLayout.nodes);
-  negativeLayout.rootNodeId = idea.id;
-  return negativeLayout;
-};
-
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/link-edit-widget.js b/plugins/easy_mindmup/assets/javascripts/mindmup/link-edit-widget.js
deleted file mode 100644
index d705765..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/link-edit-widget.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*global jQuery*/
-jQuery.fn.linkEditWidget = function (mapModel) {
-  'use strict';
-  return this.each(function () {
-    var element = jQuery(this), currentLink, width, height, colorElement, lineStyleElement, arrowElement;
-    colorElement = element.find('.color');
-    lineStyleElement = element.find('.lineStyle');
-    arrowElement = element.find('.arrow');
-    mapModel.addEventListener('linkSelected', function (link, selectionPoint, linkStyle) {
-      currentLink = link;
-      element.show();
-      width = width || element.width();
-      height = height || element.height();
-      element.css({
-        top: (selectionPoint.y - 0.5 * height - 15) + 'px',
-        left: (selectionPoint.x - 0.5 * width - 15) + 'px'
-      });
-      colorElement.val(linkStyle.color).change();
-      lineStyleElement.val(linkStyle.lineStyle);
-      arrowElement[linkStyle.arrow ? 'addClass' : 'removeClass']('active');
-    });
-    mapModel.addEventListener('mapMoveRequested', function () {
-      element.hide();
-    });
-    element.find('.delete').click(function () {
-      mapModel.removeLink('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo);
-      element.hide();
-    });
-    colorElement.change(function () {
-      mapModel.updateLinkStyle('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo, 'color', jQuery(this).val());
-    });
-    lineStyleElement.find('a').click(function () {
-      mapModel.updateLinkStyle('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo, 'lineStyle', jQuery(this).text());
-    });
-    arrowElement.click(function () {
-      mapModel.updateLinkStyle('mouse', currentLink.ideaIdFrom, currentLink.ideaIdTo, 'arrow', !arrowElement.hasClass('active'));
-    });
-    element.mouseleave(element.hide.bind(element));
-  });
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/map-model.js b/plugins/easy_mindmup/assets/javascripts/mindmup/map-model.js
deleted file mode 100644
index 2e41758..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/map-model.js
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*jslint forin: true, nomen: true*/
-/*global _, MAPJS, observable*/
-MAPJS.MapModel = function (layoutCalculatorArg, selectAllTitles, clipboardProvider, defaultReorderMargin) {
-  'use strict';
-  var self = this,
-      layoutCalculator = layoutCalculatorArg,
-      reorderMargin = defaultReorderMargin || 20,
-      clipboard = clipboardProvider || new MAPJS.MemoryClipboard(),
-      analytic,
-      currentLayout = {
-        nodes: {},
-        connectors: {}
-      },
-      idea,
-      currentLabelGenerator,
-      isInputEnabled = true,
-      isEditingEnabled = true,
-      currentlySelectedIdeaId,
-      activatedNodes = [],
-      setActiveNodes = function (activated) {
-        var wasActivated = _.clone(activatedNodes);
-        if (activated.length === 0) {
-          activatedNodes = [currentlySelectedIdeaId];
-        } else {
-          activatedNodes = activated;
-        }
-        self.dispatchEvent('activatedNodesChanged', _.difference(activatedNodes, wasActivated), _.difference(wasActivated, activatedNodes));
-      },
-      horizontalSelectionThreshold = 300,
-      isAddLinkMode,
-      applyLabels = function (newLayout) {
-        var labelMap;
-        if (!currentLabelGenerator) {
-          return;
-        }
-        labelMap = currentLabelGenerator(idea);
-        _.each(newLayout.nodes, function (node, id) {
-          if (labelMap[id] || labelMap[id] === 0) {
-            node.label = labelMap[id];
-          }
-        });
-      },
-      updateCurrentLayout = function (newLayout, sessionId) {
-        self.getYsy().log.debug("updateCurrentLayout", "redraw");
-        self.dispatchEvent('layoutChangeStarting', _.size(newLayout.nodes) - _.size(currentLayout.nodes));
-        applyLabels(newLayout);
-
-        _.each(currentLayout.connectors, function (oldConnector, connectorId) {
-          var newConnector = newLayout.connectors[connectorId];
-          if (!newConnector || newConnector.from !== oldConnector.from || newConnector.to !== oldConnector.to) {
-            self.dispatchEvent('connectorRemoved', oldConnector);
-          }
-        });
-        _.each(currentLayout.links, function (oldLink, linkId) {
-          var newLink = newLayout.links && newLayout.links[linkId];
-          if (!newLink) {
-            self.dispatchEvent('linkRemoved', oldLink);
-          }
-        });
-        _.each(currentLayout.nodes, function (oldNode, nodeId) {
-          var newNode = newLayout.nodes[nodeId],
-              newActive;
-          if (!newNode) {
-            /*jslint eqeq: true*/
-            if (nodeId == currentlySelectedIdeaId) {
-              self.selectNode(idea.id);
-            }
-            newActive = _.reject(activatedNodes, function (e) {
-              return e == nodeId;
-            });
-            if (newActive.length !== activatedNodes.length) {
-              setActiveNodes(newActive);
-            }
-            self.dispatchEvent('nodeRemoved', oldNode, nodeId, sessionId);
-          }
-        });
-
-        _.each(newLayout.nodes, function (newNode, nodeId) {
-          var oldNode = currentLayout.nodes[nodeId];
-          if (!oldNode) {
-            self.dispatchEvent('nodeCreated', newNode, sessionId);
-          } else {
-            if (newNode.x !== oldNode.x || newNode.y !== oldNode.y) {
-              //ysy.log.debug("CONTENT: "+newNode.title+" old=["+oldNode.x+","+oldNode.y+"] new=["+newNode.x+","+newNode.y+"]");
-              self.dispatchEvent('nodeMoved', newNode, sessionId);
-            }
-            if (newNode.title !== oldNode.title) {
-              self.dispatchEvent('nodeTitleChanged', newNode, sessionId);
-            }
-            if (!_.isEqual(newNode.attr || {}, oldNode.attr || {})) {
-              self.dispatchEvent('nodeAttrChanged', newNode, sessionId);
-            }
-            if (newNode.label !== oldNode.label) {
-              self.dispatchEvent('nodeLabelChanged', newNode, sessionId);
-            }
-          }
-        });
-        _.each(newLayout.connectors, function (newConnector, connectorId) {
-          var oldConnector = currentLayout.connectors[connectorId];
-          if (!oldConnector || newConnector.from !== oldConnector.from || newConnector.to !== oldConnector.to) {
-            self.dispatchEvent('connectorCreated', newConnector, sessionId);
-          }
-        });
-        _.each(newLayout.links, function (newLink, linkId) {
-          var oldLink = currentLayout.links && currentLayout.links[linkId];
-          if (oldLink) {
-            if (!_.isEqual(newLink.attr || {}, (oldLink && oldLink.attr) || {})) {
-              self.dispatchEvent('linkAttrChanged', newLink, sessionId);
-            }
-          } else {
-            self.dispatchEvent('linkCreated', newLink, sessionId);
-          }
-        });
-        currentLayout = newLayout;
-        if (!self.isInCollapse) {
-          self.dispatchEvent('layoutChangeComplete');
-        }
-      },
-      revertSelectionForUndo,
-      revertActivatedForUndo,
-      selectNewIdea = function (newIdeaId) {
-        revertSelectionForUndo = currentlySelectedIdeaId;
-        revertActivatedForUndo = activatedNodes.slice(0);
-        self.selectNode(newIdeaId);
-      },
-      editNewIdea = function (newIdeaId) {
-        selectNewIdea(newIdeaId);
-        self.editNode(false, true, true);
-      },
-      getCurrentlySelectedIdeaId = function () {
-        return currentlySelectedIdeaId || idea.id;
-      },
-      paused = false,
-      onIdeaChanged = function (action, args, sessionId) {
-        if (paused) {
-          return;
-        }
-        revertSelectionForUndo = false;
-        revertActivatedForUndo = false;
-        self.rebuildRequired(sessionId);
-      },
-      currentlySelectedIdea = function () {
-        return (idea.findSubIdeaById(currentlySelectedIdeaId) || idea);
-      },
-      ensureNodeIsExpanded = function (source, nodeId) {
-        var node = idea.findSubIdeaById(nodeId) || idea;
-        if (node.getAttr('collapsed')) {
-          idea.updateAttr(nodeId, 'collapsed', false);
-        }
-      };
-  observable(this);
-  analytic = self.dispatchEvent.bind(self, 'analytic', 'mapModel');
-  self.pause = function () {
-    paused = true;
-  };
-  self.resume = function () {
-    paused = false;
-    self.rebuildRequired();
-  };
-  self.getIdea = function () {
-    return idea;
-  };
-  self.isEditingEnabled = function () {
-    return isEditingEnabled;
-  };
-  self.getCurrentLayout = function () {
-    return currentLayout;
-  };
-  self.analytic = analytic;
-  self.getCurrentlySelectedIdeaId = getCurrentlySelectedIdeaId;
-  self.rebuildRequired = function (sessionId) {
-    if (!idea) {
-      return;
-    }
-    updateCurrentLayout(self.reactivate(layoutCalculator(idea)), sessionId);
-  };
-  this.setIdea = function (anIdea) {
-    if (idea) {
-      idea.removeEventListener('changed', onIdeaChanged);
-      paused = false;
-      setActiveNodes([]);
-      self.dispatchEvent('nodeSelectionChanged', currentlySelectedIdeaId, false);
-      currentlySelectedIdeaId = undefined;
-    }
-    idea = anIdea;
-    idea.addEventListener('changed', onIdeaChanged);
-    onIdeaChanged();
-    self.selectNode(idea.id, true);
-    self.dispatchEvent('mapViewResetRequested');
-  };
-  this.setEditingEnabled = function (value) {
-    isEditingEnabled = value;
-  };
-  this.getEditingEnabled = function () {
-    return isEditingEnabled;
-  };
-  this.setInputEnabled = function (value, holdFocus) {
-    if (isInputEnabled !== value) {
-      isInputEnabled = value;
-      self.dispatchEvent('inputEnabledChanged', value, !!holdFocus);
-    }
-  };
-  this.getInputEnabled = function () {
-    return isInputEnabled;
-  };
-  this.selectNode = function (id, force, appendToActive) {
-    if (force || (isInputEnabled && (id !== currentlySelectedIdeaId || !self.isActivated(id)))) {
-      if (currentlySelectedIdeaId) {
-        self.dispatchEvent('nodeSelectionChanged', currentlySelectedIdeaId, false);
-      }
-      currentlySelectedIdeaId = id;
-      if (appendToActive) {
-        self.activateNode('internal', id);
-      } else {
-        setActiveNodes([id]);
-      }
-
-      self.dispatchEvent('nodeSelectionChanged', id, true);
-    }
-  };
-  this.clickNode = function (id, event) {
-    var button = event && event.button && event.button !== -1;
-    if (event && event.altKey) {
-      self.followURL(id);
-      //self.toggleLink('mouse', id); // HOSEK
-    } else if (event && (event.shiftKey || event.ctrlKey)) {
-      /*don't stop propagation, this is needed for drop targets*/
-      self.toggleActivationOnNode('mouse', id);
-    } else if (isAddLinkMode && !button) {
-      this.toggleLink('mouse', id);
-      this.toggleAddLinkMode();
-    } else {
-      this.selectNode(id);
-      if (button && button !== -1 && isInputEnabled) {
-        self.dispatchEvent('contextMenuRequested', id, event.layerX, event.layerY);
-      }
-    }
-  };
-  this.findIdeaById = function (id) {
-    /*jslint eqeq:true */
-    if (idea.id == id) {
-      return idea;
-    }
-    return idea.findSubIdeaById(id);
-  };
-  this.getSelectedStyle = function (prop) {
-    return this.getStyleForId(currentlySelectedIdeaId, prop);
-  };
-  this.getStyleForId = function (id, prop) {
-    var node = currentLayout.nodes && currentLayout.nodes[id];
-    return node && node.attr && node.attr.style && node.attr.style[prop];
-  };
-  this.toggleCollapse = function (source) {
-    var selectedIdea = currentlySelectedIdea(),
-        isCollapsed;
-    if (self.isActivated(selectedIdea.id) && _.size(selectedIdea.ideas) > 0) {
-      isCollapsed = selectedIdea.getAttr('collapsed');
-    } else {
-      isCollapsed = self.everyActivatedIs(function (id) {
-        var node = self.findIdeaById(id);
-        if (node && _.size(node.ideas) > 0) {
-          return node.getAttr('collapsed');
-        }
-        return true;
-      });
-    }
-    this.collapse(source, !isCollapsed);
-  };
-  this.collapse = function (source, doCollapse) {
-
-    var contextNodeId = getCurrentlySelectedIdeaId(),
-        contextNode = function () {
-          return contextNodeId && currentLayout && currentLayout.nodes && currentLayout.nodes[contextNodeId];
-        },
-        moveNodes = function (nodes, deltaX, deltaY) {
-          if (deltaX || deltaY) {
-            _.each(nodes, function (node) {
-              node.x += deltaX;
-              node.y += deltaY;
-              self.dispatchEvent('nodeMoved', node, 'scroll');
-            });
-          }
-        },
-        oldContext,
-        newContext;
-    analytic('collapse:' + doCollapse, source);
-    self.isInCollapse = true;
-    oldContext = contextNode();
-    if (isInputEnabled) {
-      self.applyToActivated(function (id) {
-        var node = self.findIdeaById(id);
-        if (node && (!doCollapse || (node.ideas && _.size(node.ideas) > 0))) {
-          idea.updateAttr(id, 'collapsed', doCollapse);
-        }
-      });
-    }
-    newContext = contextNode();
-    if (oldContext && newContext) {
-      moveNodes(
-          currentLayout.nodes,
-          oldContext.x - newContext.x,
-          oldContext.y - newContext.y
-      );
-    }
-    self.isInCollapse = false;
-    self.dispatchEvent('layoutChangeComplete');
-  };
-  this.updateStyle = function (source, prop, value) {
-    /*jslint eqeq:true */
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (isInputEnabled) {
-      analytic('updateStyle:' + prop, source);
-      self.applyToActivated(function (id) {
-        if (self.getStyleForId(id, prop) != value) {
-          idea.mergeAttrProperty(id, 'style', prop, value);
-        }
-      });
-    }
-  };
-  this.updateLinkStyle = function (source, ideaIdFrom, ideaIdTo, prop, value) {
-    var merged = _.extend({}, idea.getLinkAttr(ideaIdFrom, ideaIdTo, 'style'));
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (isInputEnabled) {
-      analytic('updateLinkStyle:' + prop, source);
-      merged[prop] = value;
-      idea.updateLinkAttr(ideaIdFrom, ideaIdTo, 'style', merged);
-    }
-  };
-  this.addSubIdea = function (source, parentId, initialTitle) {
-    var target = parentId || currentlySelectedIdeaId, newId;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('addSubIdea', source);
-    if (isInputEnabled) {
-      idea.batch(function () {
-        ensureNodeIsExpanded(source, target);
-        if (initialTitle) {
-          newId = idea.addSubIdea(target, initialTitle);
-        } else {
-          newId = idea.addSubIdea(target);
-        }
-      });
-      if (newId) {
-        if (initialTitle) {
-          selectNewIdea(newId);
-        } else {
-          editNewIdea(newId);
-        }
-      }
-    }
-
-  };
-  this.insertIntermediate = function (source) {
-    var activeNodes = [], newId;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (!isInputEnabled || currentlySelectedIdeaId === idea.id) {
-      return false;
-    }
-    analytic('insertIntermediate', source);
-    self.applyToActivated(function (i) {
-      activeNodes.push(i);
-    });
-    newId = idea.insertIntermediateMultiple(activeNodes);
-    if (newId) {
-      editNewIdea(newId);
-    }
-  };
-  this.flip = function (source) {
-    var node = currentLayout && currentLayout.nodes && currentLayout.nodes[currentlySelectedIdeaId];
-
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('flip', source);
-    if (!isInputEnabled || currentlySelectedIdeaId === idea.id) {
-      return false;
-    }
-    if (!node || node.level !== 2) {
-      return false;
-    }
-
-    return idea.flip(currentlySelectedIdeaId);
-  };
-  this.addSiblingIdeaBefore = function (source) {
-    var newId, parent, contextRank, newRank;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('addSiblingIdeaBefore', source);
-    if (!isInputEnabled) {
-      return false;
-    }
-    parent = idea.findParent(currentlySelectedIdeaId) || idea;
-    idea.batch(function () {
-      ensureNodeIsExpanded(source, parent.id);
-      newId = idea.addSubIdea(parent.id);
-      if (newId && currentlySelectedIdeaId !== idea.id) {
-        contextRank = parent.findChildRankById(currentlySelectedIdeaId);
-        newRank = parent.findChildRankById(newId);
-        if (contextRank * newRank < 0) {
-          idea.flip(newId);
-        }
-        idea.positionBefore(newId, currentlySelectedIdeaId);
-      }
-    });
-    if (newId) {
-      editNewIdea(newId);
-    }
-  };
-  this.addSiblingIdea = function (source, optionalNodeId, optionalInitialText) {
-    var newId, nextId, parent, contextRank, newRank, currentId;
-    currentId = optionalNodeId || currentlySelectedIdeaId;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('addSiblingIdea', source);
-    if (isInputEnabled) {
-      parent = idea.findParent(currentId) || idea;
-      idea.batch(function () {
-        ensureNodeIsExpanded(source, parent.id);
-        if (optionalInitialText) {
-          newId = idea.addSubIdea(parent.id, optionalInitialText);
-        } else {
-          newId = idea.addSubIdea(parent.id);
-        }
-        if (newId && currentId !== idea.id) {
-          nextId = idea.nextSiblingId(currentId);
-          contextRank = parent.findChildRankById(currentId);
-          newRank = parent.findChildRankById(newId);
-          if (contextRank * newRank < 0) {
-            idea.flip(newId);
-          }
-          if (nextId) {
-            idea.positionBefore(newId, nextId);
-          }
-        }
-      });
-      if (newId) {
-        if (optionalInitialText) {
-          selectNewIdea(newId);
-        } else {
-          editNewIdea(newId);
-        }
-      }
-    }
-  };
-  this.removeSubIdea = function (source) {
-    var removed;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('removeSubIdea', source);
-    if (isInputEnabled) {
-      self.applyToActivated(function (id) {
-        /*jslint eqeq:true */
-        var parent;
-        if (currentlySelectedIdeaId == id) {
-          parent = idea.findParent(currentlySelectedIdeaId);
-          if (parent) {
-            self.selectNode(parent.id);
-          }
-        }
-        removed = idea.removeSubIdea(id);
-      });
-    }
-    return removed;
-  };
-  this.updateTitle = function (ideaId, title, isNew) {
-    if (isNew) {
-      idea.initialiseTitle(ideaId, title);
-    } else {
-      idea.updateTitle(ideaId, title);
-    }
-  };
-  this.editNode = function (source, shouldSelectAll, editingNew) {
-    var title;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (source) {
-      analytic('editNode', source);
-    }
-    if (!isInputEnabled) {
-      return false;
-    }
-    var idea = currentlySelectedIdea();
-    if (!self.getYsy().validator.validate("nodeRename", idea)) return false;
-
-    title = idea.title;
-    if (_.include(selectAllTitles, title)) { // === 'Press Space or double-click to edit') {
-      shouldSelectAll = true;
-    }
-    self.dispatchEvent('nodeEditRequested', currentlySelectedIdeaId, shouldSelectAll, !!editingNew);
-  };
-  this.editIcon = function (source) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (source) {
-      analytic('editIcon', source);
-    }
-    if (!isInputEnabled) {
-      return false;
-    }
-    self.dispatchEvent('nodeIconEditRequested', currentlySelectedIdeaId);
-  };
-  this.scaleUp = function (source) {
-    self.scale(source, 1.25);
-  };
-  this.scaleDown = function (source) {
-    self.scale(source, 0.8);
-  };
-  this.scale = function (source, scaleMultiplier, zoomPoint) {
-    if (isInputEnabled) {
-      self.dispatchEvent('mapScaleChanged', scaleMultiplier, zoomPoint);
-      analytic(scaleMultiplier < 1 ? 'scaleDown' : 'scaleUp', source);
-    }
-  };
-  this.move = function (source, deltaX, deltaY) {
-    if (isInputEnabled) {
-      self.dispatchEvent('mapMoveRequested', deltaX, deltaY);
-      analytic('move', source);
-    }
-  };
-  this.resetView = function (source) {
-    if (isInputEnabled && idea) {
-      self.selectNode(idea.id);
-      self.dispatchEvent('mapViewResetRequested');
-      analytic('resetView', source);
-    }
-
-  };
-  this.openAttachment = function (source, nodeId) {
-    var node, attachment;
-    analytic('openAttachment', source);
-    nodeId = nodeId || currentlySelectedIdeaId;
-    node = currentLayout && currentLayout.nodes && currentLayout.nodes[nodeId];
-    attachment = node && node.attr && node.attr.attachment;
-    if (node) {
-      self.dispatchEvent('attachmentOpened', nodeId, attachment);
-    }
-  };
-  this.setAttachment = function (source, nodeId, attachment) {
-    var hasAttachment = !!(attachment && attachment.content);
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('setAttachment', source);
-    idea.updateAttr(nodeId, 'attachment', hasAttachment && attachment);
-  };
-  this.toggleLink = function (source, nodeIdTo) {
-    var exists = _.find(idea.links, function (link) {
-      return (String(link.ideaIdFrom) === String(nodeIdTo) && String(link.ideaIdTo) === String(currentlySelectedIdeaId)) || (String(link.ideaIdTo) === String(nodeIdTo) && String(link.ideaIdFrom) === String(currentlySelectedIdeaId));
-    });
-    if (exists) {
-      self.removeLink(source, exists.ideaIdFrom, exists.ideaIdTo);
-    } else {
-      self.addLink(source, nodeIdTo);
-    }
-  };
-  this.addLink = function (source, nodeIdTo) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('addLink', source);
-    idea.addLink(currentlySelectedIdeaId, nodeIdTo);
-  };
-  this.selectLink = function (source, link, selectionPoint) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('selectLink', source);
-    if (!link) {
-      return false;
-    }
-    self.dispatchEvent('linkSelected', link, selectionPoint, idea.getLinkAttr(link.ideaIdFrom, link.ideaIdTo, 'style'));
-  };
-  this.removeLink = function (source, nodeIdFrom, nodeIdTo) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('removeLink', source);
-    idea.removeLink(nodeIdFrom, nodeIdTo);
-  };
-
-  this.toggleAddLinkMode = function (source) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (!isInputEnabled) {
-      return false;
-    }
-    analytic('toggleAddLinkMode', source);
-    isAddLinkMode = !isAddLinkMode;
-    self.dispatchEvent('addLinkModeToggled', isAddLinkMode);
-  };
-  this.cancelCurrentAction = function (source) {
-    if (!isInputEnabled) {
-      return false;
-    }
-    if (!isEditingEnabled) {
-      return false;
-    }
-    if (isAddLinkMode) {
-      this.toggleAddLinkMode(source);
-    }
-  };
-  self.undo = function (source) {
-    var undoSelectionClone = revertSelectionForUndo,
-        undoActivationClone = revertActivatedForUndo;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('undo', source);
-    if (isInputEnabled) {
-      idea.undo();
-      if (undoSelectionClone) {
-        self.selectNode(undoSelectionClone);
-      }
-      if (undoActivationClone) {
-        setActiveNodes(undoActivationClone);
-      }
-
-    }
-  };
-  self.redo = function (source) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-
-    analytic('redo', source);
-    if (isInputEnabled) {
-      idea.redo();
-    }
-  };
-  self.moveRelative = function (source, relativeMovement) {
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('moveRelative', source);
-    if (isInputEnabled) {
-      idea.moveRelative(currentlySelectedIdeaId, relativeMovement);
-    }
-  };
-  self.cut = function (source) {
-    var activeNodeIds = [], parents = [], firstLiveParent;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('cut', source);
-    if (isInputEnabled) {
-      self.applyToActivated(function (nodeId) {
-        activeNodeIds.push(nodeId);
-        parents.push(idea.findParent(nodeId).id);
-      });
-      clipboard.put(idea.cloneMultiple(activeNodeIds));
-      idea.removeMultiple(activeNodeIds);
-      firstLiveParent = _.find(parents, idea.findSubIdeaById);
-      self.selectNode(firstLiveParent || idea.id);
-    }
-  };
-  self.contextForNode = function (nodeId) {
-    var node = self.findIdeaById(nodeId),
-        hasChildren = node && node.ideas && _.size(node.ideas) > 0,
-        hasSiblings = idea.hasSiblings(nodeId),
-        isCollapsed = node && node.getAttr('collapsed'),
-        canPaste = node && isEditingEnabled && clipboard && clipboard.get();
-    if (node) {
-      return {
-        hasChildren: !!hasChildren,
-        hasSiblings: !!hasSiblings,
-        canPaste: !!canPaste,
-        notRoot: idea.id != nodeId,
-        canUndo: idea.canUndo(),
-        canRedo: idea.canRedo(),
-        canCollapse: hasChildren && !isCollapsed,
-        canExpand: hasChildren && isCollapsed
-      };
-    }
-
-  };
-  self.copy = function (source) {
-    var activeNodeIds = [];
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('copy', source);
-    if (isInputEnabled) {
-      self.applyToActivated(function (node) {
-        activeNodeIds.push(node);
-      });
-      clipboard.put(idea.cloneMultiple(activeNodeIds));
-    }
-  };
-  self.paste = function (source) {
-    var result;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('paste', source);
-    if (isInputEnabled) {
-      result = idea.pasteMultiple(currentlySelectedIdeaId, clipboard.get());
-      if (result && result[0]) {
-        self.selectNode(result[0]);
-      }
-    }
-  };
-  self.pasteStyle = function (source) {
-    var clipContents = clipboard.get(),
-        pastingStyle;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('pasteStyle', source);
-    if (isInputEnabled && clipContents && clipContents[0]) {
-      pastingStyle = clipContents[0].attr && clipContents[0].attr.style;
-      self.applyToActivated(function (id) {
-        idea.updateAttr(id, 'style', pastingStyle);
-      });
-    }
-  };
-  self.getIcon = function (nodeId) {
-    var node = currentLayout.nodes[nodeId || currentlySelectedIdeaId];
-    if (!node) {
-      return false;
-    }
-    return node.attr && node.attr.icon;
-  };
-  self.setIcon = function (source, url, imgWidth, imgHeight, position, nodeId, metaData) {
-    var nodeIdea, iconObject;
-    if (!isEditingEnabled) {
-      return false;
-    }
-    analytic('setIcon', source);
-    nodeId = nodeId || currentlySelectedIdeaId;
-    nodeIdea = self.findIdeaById(nodeId);
-    if (!nodeIdea) {
-      return false;
-    }
-    if (url) {
-      iconObject = {
-        url: url,
-        width: imgWidth,
-        height: imgHeight,
-        position: position
-      };
-      if (metaData) {
-        iconObject.metaData = metaData;
-      }
-      idea.updateAttr(nodeId, 'icon', iconObject);
-    } else if (nodeIdea.title || nodeId === idea.id) {
-      idea.updateAttr(nodeId, 'icon', false);
-    } else {
-      idea.removeSubIdea(nodeId);
-    }
-  };
-  self.moveUp = function (source) {
-    self.moveRelative(source, -1);
-  };
-  self.moveDown = function (source) {
-    self.moveRelative(source, 1);
-  };
-  self.getSelectedNodeId = function () {
-    return getCurrentlySelectedIdeaId();
-  };
-  self.centerOnNode = function (nodeId) {
-    if (!currentLayout.nodes[nodeId]) {
-      idea.startBatch();
-      _.each(idea.calculatePath(nodeId), function (parent) {
-        idea.updateAttr(parent.id, 'collapsed', false);
-      });
-      idea.endBatch();
-    }
-    self.dispatchEvent('nodeFocusRequested', nodeId);
-    self.selectNode(nodeId);
-  };
-  self.search = function (query) {
-    var result = [];
-    query = query.toLocaleLowerCase();
-    idea.traverse(function (contentIdea) {
-      if (contentIdea.title && contentIdea.title.toLocaleLowerCase().indexOf(query) >= 0) {
-        result.push({id: contentIdea.id, title: contentIdea.title});
-      }
-    });
-    return result;
-  };
-  //node activation and selection
-  (function () {
-    var isRootOrRightHalf = function (id) {
-          return currentLayout.nodes[id].x >= currentLayout.nodes[idea.id].x;
-        },
-        isRootOrLeftHalf = function (id) {
-          return currentLayout.nodes[id].x <= currentLayout.nodes[idea.id].x;
-        },
-        nodesWithIDs = function () {
-          return _.map(currentLayout.nodes,
-              function (n, nodeId) {
-                return _.extend({id: parseInt(nodeId, 10)}, n);
-              });
-        },
-        applyToNodeLeft = function (source, analyticTag, method) {
-          var node,
-              rank,
-              isRoot = currentlySelectedIdeaId === idea.id,
-              targetRank = isRoot ? -Infinity : Infinity;
-          if (!isInputEnabled) {
-            return;
-          }
-          analytic(analyticTag, source);
-          if (isRootOrLeftHalf(currentlySelectedIdeaId)) {
-            node = idea.id === currentlySelectedIdeaId ? idea : idea.findSubIdeaById(currentlySelectedIdeaId);
-            ensureNodeIsExpanded(source, node.id);
-            for (rank in node.ideas) {
-              rank = parseFloat(rank);
-              if ((isRoot && rank < 0 && rank > targetRank) || (!isRoot && rank > 0 && rank < targetRank)) {
-                targetRank = rank;
-              }
-            }
-            if (targetRank !== Infinity && targetRank !== -Infinity) {
-              method.apply(self, [node.ideas[targetRank].id]);
-            }
-          } else {
-            method.apply(self, [idea.findParent(currentlySelectedIdeaId).id]);
-          }
-        },
-        applyToNodeRight = function (source, analyticTag, method) {
-          var node, rank, minimumPositiveRank = Infinity;
-          if (!isInputEnabled) {
-            return;
-          }
-          analytic(analyticTag, source);
-          if (isRootOrRightHalf(currentlySelectedIdeaId)) {
-            node = idea.id === currentlySelectedIdeaId ? idea : idea.findSubIdeaById(currentlySelectedIdeaId);
-            ensureNodeIsExpanded(source, node.id);
-            for (rank in node.ideas) {
-              rank = parseFloat(rank);
-              if (rank > 0 && rank < minimumPositiveRank) {
-                minimumPositiveRank = rank;
-              }
-            }
-            if (minimumPositiveRank !== Infinity) {
-              method.apply(self, [node.ideas[minimumPositiveRank].id]);
-            }
-          } else {
-            method.apply(self, [idea.findParent(currentlySelectedIdeaId).id]);
-          }
-        },
-        applyToNodeUp = function (source, analyticTag, method) {
-          var previousSibling = idea.previousSiblingId(currentlySelectedIdeaId),
-              nodesAbove,
-              closestNode,
-              currentNode = currentLayout.nodes[currentlySelectedIdeaId];
-          if (!isInputEnabled) {
-            return;
-          }
-          analytic(analyticTag, source);
-          if (previousSibling) {
-            method.apply(self, [previousSibling]);
-          } else {
-            if (!currentNode) {
-              return;
-            }
-            nodesAbove = _.reject(nodesWithIDs(), function (node) {
-              return node.y >= currentNode.y || Math.abs(node.x - currentNode.x) > horizontalSelectionThreshold;
-            });
-            if (_.size(nodesAbove) === 0) {
-              return;
-            }
-            closestNode = _.min(nodesAbove, function (node) {
-              return Math.pow(node.x - currentNode.x, 2) + Math.pow(node.y - currentNode.y, 2);
-            });
-            method.apply(self, [closestNode.id]);
-          }
-        },
-        applyToNodeDown = function (source, analyticTag, method) {
-          var nextSibling = idea.nextSiblingId(currentlySelectedIdeaId),
-              nodesBelow,
-              closestNode,
-              currentNode = currentLayout.nodes[currentlySelectedIdeaId];
-          if (!isInputEnabled) {
-            return;
-          }
-          analytic(analyticTag, source);
-          if (nextSibling) {
-            method.apply(self, [nextSibling]);
-          } else {
-            if (!currentNode) {
-              return;
-            }
-            nodesBelow = _.reject(nodesWithIDs(), function (node) {
-              return node.y <= currentNode.y || Math.abs(node.x - currentNode.x) > horizontalSelectionThreshold;
-            });
-            if (_.size(nodesBelow) === 0) {
-              return;
-            }
-            closestNode = _.min(nodesBelow, function (node) {
-              return Math.pow(node.x - currentNode.x, 2) + Math.pow(node.y - currentNode.y, 2);
-            });
-            method.apply(self, [closestNode.id]);
-          }
-        },
-        applyFuncs = {'Left': applyToNodeLeft, 'Up': applyToNodeUp, 'Down': applyToNodeDown, 'Right': applyToNodeRight};
-    self.getActivatedNodeIds = function () {
-      return activatedNodes.slice(0);
-    };
-    self.activateSiblingNodes = function (source) {
-      var parent = idea.findParent(currentlySelectedIdeaId),
-          siblingIds;
-      analytic('activateSiblingNodes', source);
-      if (!parent || !parent.ideas) {
-        return;
-      }
-      siblingIds = _.map(parent.ideas, function (child) {
-        return child.id;
-      });
-      setActiveNodes(siblingIds);
-    };
-    self.activateNodeAndChildren = function (source) {
-      var contextId = getCurrentlySelectedIdeaId(),
-          subtree = idea.getSubTreeIds(contextId);
-      analytic('activateNodeAndChildren', source);
-      subtree.push(contextId);
-      setActiveNodes(subtree);
-    };
-    _.each(['Left', 'Right', 'Up', 'Down'], function (position) {
-      self['activateNode' + position] = function (source) {
-        applyFuncs[position](source, 'activateNode' + position, function (nodeId) {
-          self.selectNode(nodeId, false, true);
-        });
-      };
-      self['selectNode' + position] = function (source) {
-        applyFuncs[position](source, 'selectNode' + position, self.selectNode);
-      };
-    });
-    self.toggleActivationOnNode = function (source, nodeId) {
-      analytic('toggleActivated', source);
-      if (!self.isActivated(nodeId)) {
-        setActiveNodes([nodeId].concat(activatedNodes));
-      } else {
-        setActiveNodes(_.without(activatedNodes, nodeId));
-      }
-    };
-    self.activateNode = function (source, nodeId) {
-      analytic('activateNode', source);
-      if (!self.isActivated(nodeId)) {
-        activatedNodes.push(nodeId);
-        self.dispatchEvent('activatedNodesChanged', [nodeId], []);
-      }
-    };
-    self.activateChildren = function (source) {
-      var context = currentlySelectedIdea();
-      analytic('activateChildren', source);
-      if (!context || _.isEmpty(context.ideas) || context.getAttr('collapsed')) {
-        return;
-      }
-      setActiveNodes(idea.getSubTreeIds(context.id));
-    };
-    self.activateSelectedNode = function (source) {
-      analytic('activateSelectedNode', source);
-      setActiveNodes([getCurrentlySelectedIdeaId()]);
-    };
-    self.isActivated = function (id) {
-      /*jslint eqeq:true*/
-      return _.find(activatedNodes, function (activeId) {
-        return id == activeId;
-      });
-    };
-    self.applyToActivated = function (toApply) {
-      idea.batch(function () {
-        _.each(activatedNodes, toApply);
-      });
-    };
-    self.everyActivatedIs = function (predicate) {
-      return _.every(activatedNodes, predicate);
-    };
-    self.activateLevel = function (source, level) {
-      var toActivate = _.map(
-          _.filter(
-              currentLayout.nodes,
-              function (node) {
-                /*jslint eqeq:true*/
-                return node.level == level;
-              }
-          ),
-          function (node) {
-            return node.id;
-          }
-      );
-      analytic('activateLevel', source);
-      if (!_.isEmpty(toActivate)) {
-        setActiveNodes(toActivate);
-      }
-    };
-    self.reactivate = function (layout) {
-      _.each(layout.nodes, function (node) {
-        if (_.contains(activatedNodes, node.id)) {
-          node.activated = true;
-        }
-      });
-      return layout;
-    };
-  }());
-
-  self.getNodeIdAtPosition = function (x, y) {
-    var isPointOverNode = function (node) { //move to mapModel candidate
-          /*jslint eqeq: true*/
-          return x >= node.x &&
-              y >= node.y &&
-              x <= node.x + node.width &&
-              y <= node.y + node.height;
-        },
-        node = _.find(currentLayout.nodes, isPointOverNode);
-    return node && node.id;
-  };
-  self.autoPosition = function (nodeId) {
-    return idea.updateAttr(nodeId, 'position', false);
-  };
-  self.positionNodeAt = function (nodeId, x, y, manualPosition) {
-    var rootNode = currentLayout.nodes[idea.id],
-        verticallyClosestNode = {
-          id: null,
-          y: Infinity
-        },
-        parentIdea = idea.findParent(nodeId),
-        parentNode = currentLayout.nodes[parentIdea.id],
-        nodeBeingDragged = currentLayout.nodes[nodeId],
-        tryFlip = function (rootNode, nodeBeingDragged, nodeDragEndX) {
-          var flipRightToLeft = rootNode.x < nodeBeingDragged.x && nodeDragEndX < rootNode.x,
-              flipLeftToRight = rootNode.x > nodeBeingDragged.x && rootNode.x < nodeDragEndX;
-          if (flipRightToLeft || flipLeftToRight) {
-            return idea.flip(nodeId);
-          }
-          return false;
-        },
-        maxSequence = 1,
-        validReposition = function () {
-          return nodeBeingDragged.level === 2 ||
-              ((nodeBeingDragged.x - parentNode.x) * (x - parentNode.x) > 0);
-        },
-        result = false,
-        xOffset;
-    idea.startBatch();
-    if (currentLayout.nodes[nodeId].level === 2) {
-      result = tryFlip(rootNode, nodeBeingDragged, x);
-    }
-    _.each(idea.sameSideSiblingIds(nodeId), function (id) {
-      var node = currentLayout.nodes[id];
-      if (y < node.y && node.y < verticallyClosestNode.y) {
-        verticallyClosestNode = node;
-      }
-    });
-    if (!manualPosition && validReposition()) {
-      self.autoPosition(nodeId);
-    }
-    result = idea.positionBefore(nodeId, verticallyClosestNode.id) || result;
-    if (manualPosition && validReposition()) {
-      if (x < parentNode.x) {
-        xOffset = parentNode.x - x - nodeBeingDragged.width + parentNode.width;
-        /* negative nodes will get flipped so distance is not correct out of the box */
-      } else {
-        xOffset = x - parentNode.x;
-      }
-      analytic('nodeManuallyPositioned');
-      maxSequence = _.max(_.map(parentIdea.ideas, function (i) {
-        return (i.id !== nodeId && i.attr && i.attr.position && i.attr.position[2]) || 0;
-      }));
-      result = idea.updateAttr(
-              nodeId,
-              'position',
-              [xOffset, y - parentNode.y, maxSequence + 1]
-          ) || result;
-    }
-    idea.endBatch();
-    return result;
-  };
-  self.dropNode = function (nodeId, dropTargetId, shiftKey) {
-    var clone,
-        parentIdea = idea.findParent(nodeId);
-    if (dropTargetId === nodeId) {
-      return false;
-    }
-    if (shiftKey) {
-      clone = idea.clone(nodeId);
-      if (clone) {
-        idea.paste(dropTargetId, clone);
-      }
-      return false;
-    }
-    if (dropTargetId === parentIdea.id) {
-      return self.autoPosition(nodeId);
-    } else {
-      ensureNodeIsExpanded(nodeId, dropTargetId);
-      return idea.changeParent(nodeId, dropTargetId);
-    }
-  };
-  self.setLayoutCalculator = function (newCalculator) {
-    layoutCalculator = newCalculator;
-  };
-  self.dropImage = function (dataUrl, imgWidth, imgHeight, x, y, metaData) {
-    var nodeId,
-        dropOn = function (ideaId, position) {
-          var scaleX = Math.min(imgWidth, 300) / imgWidth,
-              scaleY = Math.min(imgHeight, 300) / imgHeight,
-              scale = Math.min(scaleX, scaleY),
-              existing = idea.getAttrById(ideaId, 'icon');
-          self.setIcon('drag and drop', dataUrl, Math.round(imgWidth * scale), Math.round(imgHeight * scale), (existing && existing.position) || position, ideaId, metaData);
-        },
-        addNew = function () {
-          var newId;
-          idea.startBatch();
-          newId = idea.addSubIdea(currentlySelectedIdeaId);
-          dropOn(newId, 'center');
-          idea.endBatch();
-          self.selectNode(newId);
-        };
-    nodeId = self.getNodeIdAtPosition(x, y);
-    if (nodeId) {
-      return dropOn(nodeId, 'left');
-    }
-    addNew();
-  };
-  self.setLabelGenerator = function (labelGenerator) {
-    currentLabelGenerator = labelGenerator;
-    self.rebuildRequired();
-  };
-  self.getReorderBoundary = function (nodeId) {
-    var isRoot = function () {
-          /*jslint eqeq: true*/
-          return nodeId == idea.id;
-        },
-        isFirstLevel = function () {
-          return parentIdea.id === idea.id;
-        },
-        isRightHalf = function (nodeId) {
-          return currentLayout.nodes[nodeId].x >= currentLayout.nodes[idea.id].x;
-        },
-        siblingBoundary = function (siblings, side) {
-          var tops = _.map(siblings, function (node) {
-                return node.y;
-              }),
-              bottoms = _.map(siblings, function (node) {
-                return node.y + node.height;
-              }),
-              result = {
-                'minY': _.min(tops) - reorderMargin - currentLayout.nodes[nodeId].height,
-                'maxY': _.max(bottoms) + reorderMargin,
-                'margin': reorderMargin
-              };
-          result.edge = side;
-          if (side === 'left') {
-            result.x = parentNode.x + parentNode.width + reorderMargin;
-          } else {
-            result.x = parentNode.x - reorderMargin;
-          }
-          return result;
-        },
-        parentBoundary = function (side) {
-          var result = {
-            'minY': parentNode.y - reorderMargin - currentLayout.nodes[nodeId].height,
-            'maxY': parentNode.y + parentNode.height + reorderMargin,
-            'margin': reorderMargin
-          };
-          result.edge = side;
-          if (side === 'left') {
-            result.x = parentNode.x + parentNode.width + reorderMargin;
-          } else {
-            result.x = parentNode.x - reorderMargin;
-          }
-
-          return result;
-        },
-        otherSideSiblings = function () {
-          var otherSide = _.map(parentIdea.ideas, function (subIdea) {
-            return currentLayout.nodes[subIdea.id];
-          });
-          otherSide = _.without(otherSide, currentLayout.nodes[nodeId]);
-          if (!_.isEmpty(sameSide)) {
-            otherSide = _.difference(otherSide, sameSide);
-          }
-          return otherSide;
-        },
-        parentIdea,
-        parentNode,
-        boundaries = [],
-        sameSide,
-        opposite,
-        primaryEdge,
-        secondaryEdge;
-    if (isRoot(nodeId)) {
-      return false;
-    }
-    parentIdea = idea.findParent(nodeId);
-    parentNode = currentLayout.nodes[parentIdea.id];
-    primaryEdge = isRightHalf(nodeId) ? 'left' : 'right';
-    secondaryEdge = isRightHalf(nodeId) ? 'right' : 'left';
-    sameSide = _.map(idea.sameSideSiblingIds(nodeId), function (id) {
-      return currentLayout.nodes[id];
-    });
-    if (!_.isEmpty(sameSide)) {
-      boundaries.push(siblingBoundary(sameSide, primaryEdge));
-    }
-    boundaries.push(parentBoundary(primaryEdge));
-    if (isFirstLevel()) {
-      opposite = otherSideSiblings();
-      if (!_.isEmpty(opposite)) {
-        boundaries.push(siblingBoundary(opposite, secondaryEdge));
-      }
-      boundaries.push(parentBoundary(secondaryEdge));
-    }
-    return boundaries;
-  };
-  self.focusAndSelect = function (nodeId) {
-    self.selectNode(nodeId);
-    self.dispatchEvent('nodeFocusRequested', nodeId);
-  };
-  self.requestContextMenu = function (eventPointX, eventPointY) {
-    if (isInputEnabled && isEditingEnabled) {
-      self.dispatchEvent('contextMenuRequested', currentlySelectedIdeaId, eventPointX, eventPointY);
-      return true;
-    }
-    return false;
-  };
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/map-toolbar-widget.js b/plugins/easy_mindmup/assets/javascripts/mindmup/map-toolbar-widget.js
deleted file mode 100644
index 30ab46d..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/map-toolbar-widget.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*global jQuery*/
-jQuery.fn.mapToolbarWidget = function (mapModel, ysy) {
-  'use strict';
-  var clickMethodNames = ['insertIntermediate', 'scaleUp', 'scaleDown', 'addSubIdea', 'followURL', 'editNode', 'editNodeData', 'removeSubIdea', 'toggleCollapse', 'addSiblingIdea', 'undo', 'redo',
-        'copy', 'cut', 'paste', 'resetView', 'openAttachment', 'toggleAddLinkMode', 'activateChildren', 'activateNodeAndChildren', 'activateSiblingNodes', 'editIcon', 'toggleOneSide', 'save'],
-      changeMethodNames = ['updateStyle'];
-  return this.each(function () {
-    var element = jQuery(this), preventRoundtrip = false;
-    //mapModel.addEventListener('nodeSelectionChanged', function () {
-    //  preventRoundtrip = true;
-    //  element.find('.updateStyle[data-mm-target-property]').val(function () {
-    //    return mapModel.getSelectedStyle(jQuery(this).data('mm-target-property'));
-    //  }).change();
-    //  preventRoundtrip = false;
-    //});
-    //mapModel.addEventListener('addLinkModeToggled', function () {
-    //  element.find('.toggleAddLinkMode').toggleClass('active');
-    //});
-    clickMethodNames.forEach(function (methodName) {
-      element.find('.' + methodName).click(function () {
-        if ($(this).hasClass("mindmup__button--disabled")) return;
-        if (mapModel[methodName]) {
-          mapModel[methodName]('toolbar');
-        }
-        ysy.toolbar.redraw(methodName);
-      });
-    });
-    changeMethodNames.forEach(function (methodName) {
-      element.find('.' + methodName).change(function () {
-        if (preventRoundtrip) {
-          return;
-        }
-        var tool = jQuery(this);
-        if (tool.data('mm-target-property')) {
-          mapModel[methodName]('toolbar', tool.data('mm-target-property'), tool.val());
-        }
-      });
-    });
-  });
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/mapjs.js b/plugins/easy_mindmup/assets/javascripts/mindmup/mapjs.js
deleted file mode 100644
index 1ee4e0b..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/mapjs.js
+++ /dev/null
@@ -1 +0,0 @@
-var MAPJS = MAPJS || {};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/observable.js b/plugins/easy_mindmup/assets/javascripts/mindmup/observable.js
deleted file mode 100644
index 21d8fbd..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/observable.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*global console*/
-/*jshint unused:false */
-var observable = function (base) {
-  'use strict';
-  var listeners = [], x;
-  base.addEventListener = function (types, listener, priority) {
-    types.split(' ').forEach(function (type) {
-      if (type) {
-        listeners.push({
-          type: type,
-          listener: listener,
-          priority: priority || 0
-        });
-      }
-    });
-  };
-  base.listeners = function (type) {
-    return listeners.filter(function (listenerDetails) {
-      return listenerDetails.type === type;
-    }).map(function (listenerDetails) {
-      return listenerDetails.listener;
-    });
-  };
-  base.removeEventListener = function (type, listener) {
-    listeners = listeners.filter(function (details) {
-      return details.listener !== listener;
-    });
-  };
-  base.dispatchEvent = function (type) {
-    var args = Array.prototype.slice.call(arguments, 1);
-    base.getYsy().log.debug("Event " + type + " " + JSON.stringify(args), "events");
-    if (type === 'changed') {
-      base.getYsy().log.debug("Event " + type + " " + JSON.stringify(args), "changedEvent");
-    }
-    listeners
-        .filter(function (listenerDetails) {
-          return listenerDetails.type === type;
-        })
-        .sort(function (firstListenerDetails, secondListenerDetails) {
-          return secondListenerDetails.priority - firstListenerDetails.priority;
-        })
-        .some(function (listenerDetails) {
-          //try {
-          return listenerDetails.listener.apply(undefined, args) === false;
-          //} catch (e) {
-          //  console.log('dispatchEvent failed', e, listenerDetails);
-          //}
-
-        });
-  };
-  return base;
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mindmup/url-helper.js b/plugins/easy_mindmup/assets/javascripts/mindmup/url-helper.js
deleted file mode 100644
index 4733c30..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mindmup/url-helper.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*global MAPJS */
-MAPJS.URLHelper = {
-  urlPattern: /(https?:\/\/|www\.)[\w-]+(\.[\w-]+)+([\w.,!@?^=%&amp;:\/~+#-]*[\w!@?^=%&amp;\/~+#-])?/i,
-  containsLink: function (text) {
-    'use strict';
-    return MAPJS.URLHelper.urlPattern.test(text);
-  },
-  getLink: function (text) {
-    'use strict';
-    var url = text.match(MAPJS.URLHelper.urlPattern);
-    if (url && url[0]) {
-      url = url[0];
-      if (!/https?:\/\//i.test(url)) {
-        url = 'http://' + url;
-      }
-    }
-    return url;
-  },
-  stripLink: function (text) {
-    'use strict';
-    return text.replace(MAPJS.URLHelper.urlPattern, '');
-  }
-};
diff --git a/plugins/easy_mindmup/assets/javascripts/mm_context_menu.js b/plugins/easy_mindmup/assets/javascripts/mm_context_menu.js
deleted file mode 100644
index 5b0c73d..0000000
--- a/plugins/easy_mindmup/assets/javascripts/mm_context_menu.js
+++ /dev/null
@@ -1,209 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @property {MindMup} ysy
-   * @property {boolean} hidden
-   * @property {jQuery} $element
-   * @constructor
-   */
-  function ContextMenu(ysy) {
-    this.ysy = ysy;
-    this.$element = null;
-    this.hidden = true;
-    this.init(ysy);
-  }
-
-  /**
-   *
-   * @param {MindMup} ysy
-   */
-  ContextMenu.prototype.init = function (ysy) {
-    ysy.eventBus.register("MapInited", $.proxy(this.prepare, this));
-  };
-  ContextMenu.prototype.prepare = function (mapModel) {
-    var $element = $("#context-menu");
-    if ($element.length === 0) {
-      $element =
-          $('<div id="context-menu" class="mindmup__context_menu ' + (this.ysy.settings.easyRedmine ? "easy" : "redmine") + '"></div>')
-          .appendTo('body').hide();
-    }
-    this.$element = $element;
-    var self = this;
-    mapModel.addEventListener('mapMoveRequested mapScaleChanged nodeSelectionChanged nodeEditRequested mapViewResetRequested', function () {
-      self.innerHide()
-    });
-    mapModel.addEventListener('contextMenuRequested', function (id, x, y) {
-      self.innerShow(id, x, y);
-    });
-    $element.on('contextmenu', function (e) {
-      e.preventDefault();
-      e.stopPropagation();
-      return false;
-    });
-  };
-  /**
-   * Hide context menu (but have to have correct [this])
-   */
-  ContextMenu.prototype.innerHide = function () {
-    if (this.hidden) return;
-    this.hidden = true;
-    $("body").off("click.context_out");
-    this.$element.hide();
-  };
-  /**
-   *
-   * @param {number} nodeId
-   * @param {number} x
-   * @param {number} y
-   */
-  ContextMenu.prototype.innerShow = function (nodeId, x, y) {
-    this.hidden = false;
-    var self = this;
-    var ysy = this.ysy;
-    var hide = function () {
-      self.innerHide();
-    };
-    var $element = this.$element;
-    if (nodeId === 1) {
-      var idea = ysy.idea;
-    } else {
-      idea = ysy.idea.findSubIdeaById(nodeId);
-    }
-    var rendered = Mustache.render(this.template, this.getStructure(idea));
-    $element.html(rendered);
-    if (x === undefined) {
-      var offset = ysy.$container.find("#node_" + nodeId).position();
-      x = offset.left + 30;
-      y = offset.top + 20;
-    }
-    var maxLeft = x + 2 * $element.width();
-    var maxTop = y + $element.height();
-    var ws = this.window_size();
-    if (maxLeft > ws.width) {
-      x -= $element.width();
-      $element.addClass('reverse-x');
-    } else {
-      $element.removeClass('reverse-x');
-    }
-    if (maxTop > ws.height + $(window).scrollTop()) {
-      y -= $element.height();
-      $element.addClass('reverse-y');
-    } else {
-      $element.removeClass('reverse-y');
-    }
-    if (x <= 0) x = 1;
-    if (y <= 0) y = 1;
-    this.bindEvents(idea, $element);
-    $element.css({left: x + 'px', top: y + 'px'});
-    $element.show().focus();
-    $("body").off("click.context_out").on("click.context_out", hide);
-    // $element.off("mouseleave").on('mouseleave', hide);
-    $element.off('tap click', hide).on('tap click', hide);
-  };
-  /**
-   *
-   * @param {ModelEntity} primaryNode
-   * @param {jQuery} $element
-   */
-  ContextMenu.prototype.bindEvents = function (primaryNode, $element) {
-    var ysy = this.ysy;
-    var mapModel = ysy.mapModel;
-    $element.mapToolbarWidget(mapModel, ysy);
-    $element.find(".mindmup-data-value-changer:not(.disabled)").on('tap click', function () {
-      ysy.util.showUpgradeModal("context_menu");
-    });
-    $element.find(".mindmup-data-value-input-link:not(.disabled)").on('tap click', function () {
-      ysy.util.showUpgradeModal("context_menu");
-      return false;
-    });
-  };
-  ContextMenu.prototype.window_size = function () {
-    var w;
-    var h;
-    if (window.innerWidth) {
-      w = window.innerWidth;
-      h = window.innerHeight;
-    } else if (document.documentElement) {
-      w = document.documentElement.clientWidth;
-      h = document.documentElement.clientHeight;
-    } else {
-      w = document.body.clientWidth;
-      h = document.body.clientHeight;
-    }
-    return {width: w, height: h};
-  };
-  ContextMenu.prototype.template = '\
-    <ul>\
-      {{#.}}\
-      {{^skip}}\
-        <li class="{{folderClass}}{{className}}">\
-          <a href="javascript:void(0)" class="{{submenuClass}}{{aClassName}}">{{name}}</a>\
-          {{{subMenu}}}\
-          {{{changer}}}\
-          {{{input}}}\
-        </li>\
-      {{/skip}}\
-      {{/.}}\
-    </ul>';
-  ContextMenu.prototype.subMenuTemplate = '\
-    <ul>\
-      {{#subMenu}}\
-        <li><a href="javascript:void(0)" class="{{className}} mindmup-context-submenu-item" >{{name}}</a></li>\
-      {{/subMenu}}\
-    </ul>\
-  ';
-  ContextMenu.prototype.changerTemplate = '\
-    <ul>\
-      {{#changer}}\
-        <li><a href="javascript:void(0)" class="mindmup-data-value-changer {{className}} mindmup-context-submenu-item {{#previous}}icon-checked easy-mindmup__icon--checked disabled{{/previous}}" data-key="{{key}}" data-value="{{value}}">{{name}}</a></li>\
-      {{/changer}}\
-    </ul>\
-  ';
-  ContextMenu.prototype.inputTemplate = '\
-    <input type="{{input.inputType}}" class="mindmup-data-value-input {{input.className}}" data-key="{{key}}" value="{{input.value}}" style="display: none">\
-  ';
-  /**
-   * @type {ModelEntity} node
-   */
-  ContextMenu.prototype.getStructure = function (node) {
-    node.attr.force = true;
-    // Override this - structure is inserted into Mustache template
-    throw "getStructure is not defined!";
-  };
-  var skipOption = {skip: true};
-  /**
-   * Executes [func] if [skip]==false
-   * Otherwise it returns null to be filtered later
-   * @param {Function} func
-   * @param {boolean} skip
-   */
-  ContextMenu.prototype.prepareOption = function (func, skip) {
-    if (skip) return skipOption;
-    var result = func.call(this);
-    if (result.subMenu) {
-      result.subMenu = Mustache.render(this.subMenuTemplate, result);
-    }
-    if (result.changer) {
-      result.changer = Mustache.render(this.changerTemplate, result);
-    }
-    if (result.input) {
-      result.input = Mustache.render(this.inputTemplate, result);
-    }
-    if (result.subMenu || result.changer) {
-      result.submenuClass = "submenu ";
-      result.folderClass = "folder ";
-    }
-    return result;
-  };
-
-  // /**
-  //  * Filter out results
-  //  * @param {Array.<{skip:boolean}>} array
-  //  */
-  // ContextMenu.prototype.filterSkipped = function (array) {
-  //
-  // };
-
-  window.easyMindMupClasses.ContextMenu = ContextMenu;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/model_classes.js b/plugins/easy_mindmup/assets/javascripts/model_classes.js
deleted file mode 100644
index 6f6f86a..0000000
--- a/plugins/easy_mindmup/assets/javascripts/model_classes.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  /**
-   * Inner part of ModelEntity - contains data from server
-   * @property {number|null} id - server ID
-   * @property {Object} _old
-   * @property {boolean} filtered_out - entity do not satisfy query filter
-   * @property {Array} custom_fields
-   * @property {Object} custom_field_values
-   * @constructor
-   */
-  function ModelEntityData() {
-    this.id = null;
-    this._old = null;
-    this.filtered_out = false;
-  }
-
-  /**
-   *
-   * @param {Object} source
-   * @return {ModelEntityData}
-   */
-  ModelEntityData.prototype.fromServer = function (source) {
-    $.extend(this, source);
-    return this;
-  };
-  /**
-   * Accepts JSON and do deep cleaning and extending
-   * @param {String} json
-   * @param {boolean} doNotOverwrite
-   */
-  ModelEntityData.prototype.fromJsonString = function (json, doNotOverwrite) {
-    var copied = JSON.parse(json);
-    if (doNotOverwrite) {
-      _.defaults(this, copied);
-    } else {
-      this.extend(copied);
-    }
-  };
-  /**
-   *
-   * @param {Object} source
-   * @return {ModelEntityData}
-   */
-  ModelEntityData.prototype.extend = function (source) {
-    $.extend(this, source);
-    return this;
-  };
-  window.easyMindMupClasses.ModelEntityData = ModelEntityData;
-  //####################################################################################################################
-  /**
-   * specially selected Attributes - it is accessible from [Idea] and from [Node]
-   * @property {boolean} nonEditable
-   * @property {String} entityType
-   * @property {ModelEntityData} data
-   * @property {boolean} isFromServer
-   * @constructor
-   */
-  function ModelEntityAttr() {
-    this.nonEditable = false;
-    this.entityType = "";
-    this.data = new ModelEntityData();
-    this.isFromServer = false;
-    this.isFresh = false;
-  }
-
-  /**
-   *
-   * @param {String} entityType
-   * @param {boolean} editable
-   * @param {Object} source
-   * @return {ModelEntityAttr}
-   */
-  ModelEntityAttr.prototype.fromServer = function (entityType, editable, source) {
-    this.entityType = entityType;
-    this.isFromServer = true;
-    this.nonEditable = !editable;
-    this.data.fromServer(source);
-    return this;
-  };
-  /**
-   *
-   * @param {Object} json
-   * @return {ModelEntityAttr}
-   */
-  ModelEntityAttr.prototype.fromJson = function (json) {
-    if (!json) return this;
-    $.extend(this, _.omit(json, ["data"]));
-    this.data.extend(json.data);
-    return this;
-  };
-  window.easyMindMupClasses.ModelEntityAttr = ModelEntityAttr;
-  //####################################################################################################################
-  /**
-   * Universal entity from which model tree is generated
-   * @property {number} id
-   * @property {String} title
-   * @property {number} nChild
-   * @property {Object.<String, ModelEntity>} ideas
-   * @property {ModelEntityAttr} attr
-   * @property {ModelEntity} parent - temporary = used only for generating of model tree and saving
-   * @property {number} rank - relative position of node among its siblings
-   *    temporary = it is used as key in [ideas] of parent ModelEntity
-   * @constructor
-   */
-  function ModelEntity() {
-    this.id = 0;
-    this.title = "No title";
-    this.nChild = 0;
-    this.ideas = {};
-    this.attr = new ModelEntityAttr();
-    this.parent = null;
-    this.rank = 0;
-  }
-
-  /**
-   * "constructor" of ModelEntity with data from server
-   * @param {number} id
-   * @param {String} name
-   * @param {String} entityType
-   * @param {boolean} editable
-   * @param {object} source
-   */
-  ModelEntity.prototype.fromServer = function (id, name, entityType, editable, source) {
-    this.id = id;
-    this.title = name;
-    this.attr.fromServer(entityType, editable, source);
-    return this;
-  };
-  /**
-   * simple extending of the ModelEntity - do not use this pls
-   * @param {Object} obj
-   * @return {ModelEntity}
-   */
-  ModelEntity.prototype.extend = function (obj) {
-    $.extend(true, this, obj);
-    return this;
-  };
-  /**
-   * Create whole ModelEntity tree from JSON
-   * @param {object} json
-   * @return {ModelEntity}
-   */
-  ModelEntity.prototype.fromJson = function (json) {
-    $.extend(this, _.omit(json, ["ideas", "attr"]));
-    this.attr.fromJson(json.attr);
-    for (var rank in json.ideas) {
-      if (!json.ideas.hasOwnProperty(rank)) continue;
-      this.ideas[rank] = new ModelEntity().fromJson(json.ideas[rank]);
-    }
-    return this;
-  };
-
-  window.easyMindMupClasses.ModelEntity = ModelEntity;
-//####################################################################################################################
-  /**
-   * Root idea (=ModelEntity) is enhanced by MAPJS.Content mixin (which I cannot modify),
-   * so several functions from Content I have to declare here.
-   * @extends ModelEntity
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function RootIdea(ysy) {
-    ModelEntity.prototype.constructor.call(this, ysy);
-    /** @return {MindMup} */
-    this.getYsy = function () {
-      return ysy;
-    };
-  }
-
-  window.easyMindMupClasses.extendClass(RootIdea, ModelEntity);
-  /**
-   * Create RootIdea instance with same attributes as source ModelEntity, so it can replace it.
-   * @param {ModelEntity} idea
-   * @return {RootIdea}
-   */
-  RootIdea.prototype.upgrade = function (idea) {
-    $.extend(this, idea);
-    return this;
-  };
-
-  /** @type {Function} */
-  RootIdea.prototype.removeEventListener = null;
-  /** @type {Function} */
-  RootIdea.prototype.addEventListener = null;
-  /** @type {Function} */
-  RootIdea.prototype.dispatchEvent = null;
-  /** @type {Function} */
-  RootIdea.prototype.findSubIdeaById = null;
-  /** @type {Function} */
-  RootIdea.prototype.findParent = null;
-  /** @type {Array} */
-  RootIdea.prototype.links = null;
-  /** @type {boolean} */
-  RootIdea.prototype.oneSideOn = false;
-  /**
-   *
-   * @param {String} method
-   * @param {Array} args
-   * @param {Function} undofunc
-   * @param {String} [originSession]
-   */
-  RootIdea.prototype.logChange = function (method, args, undofunc, originSession) {
-  };
-  RootIdea.prototype.resetHistory = function () {
-  };
-
-
-  window.easyMindMupClasses.RootIdea = RootIdea;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/node_patch.js b/plugins/easy_mindmup/assets/javascripts/node_patch.js
deleted file mode 100644
index eb5fcb0..0000000
--- a/plugins/easy_mindmup/assets/javascripts/node_patch.js
+++ /dev/null
@@ -1,210 +0,0 @@
-(function () {
-  /**
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function NodePatch(ysy) {
-    this.ysy = ysy;
-    this.patch();
-    this.initCoreIcons();
-  }
-
-  /**
-   * Choose icons from [icons] attribute and use it to render.
-   * It use the order specified in Array
-   * @type {Object.<String,Array.<String>>}
-   */
-  NodePatch.prototype.iconsForEntity = {
-    // issue:["avatar"]
-  };
-  /**
-   * @callback IconBuilder
-   * @param {ModelEntity} nodeContent - it is different from ModelEntity, but it share [attr] reference
-   */
-  /**
-   * Object filled with IconBuilders
-   * @type {Object.<String,IconBuilder>}
-   */
-  NodePatch.prototype._icons = {};
-
-  /**
-   * @param {String} key
-   * @param {IconBuilder} builder
-   */
-  NodePatch.prototype.addIconBuilder = function (key, builder) {
-    this._icons[key] = builder;
-  };
-
-  NodePatch.prototype.initCoreIcons = function () {
-    /** @type {WbsMain} */
-    var ysy = this.ysy;
-    this.addIconBuilder("avatar", function (nodeContent) {
-      var users = ysy.dataStorage.get("users");
-      var assigneeIndex = _.findIndex(users, {
-        id: ysy.getData(nodeContent).assigned_to_id
-      });
-      if (assigneeIndex > -1) {
-        var user = users[assigneeIndex];
-        var avatarUrl = user.avatar_url ? user.avatar_url : "/plugin_assets/easy_extensions/images/avatar.jpg";
-        return '<img width="64" height="64" alt="' + user.name + '" class="gravatar" src="' + avatarUrl + '">';
-      }
-    });
-  };
-
-  /**
-   * Add extra CSS classes to node element
-   * @param {ModelEntity} nodeContent
-   * @example return nodeContent.attr.isProject ? " wbs-project" : " wbs-issue";
-   * @return {String}
-   */
-  NodePatch.prototype.nodeBonusCss = function (nodeContent) {
-    nodeContent.title = "true";
-    // Override this for adding special data-specific classes to node
-    throw "nodeBonusCss is not defined!";
-  };
-  /**
-   * extract and transform name property from node
-   * @param {ModelEntity} nodeContent
-   * @return {string}
-   */
-  var getNodeText = function (nodeContent) {
-    var MAX_URL_LENGTH = 25;
-    var title = nodeContent.title;
-    var text = MAPJS.URLHelper.stripLink(title) ||
-        (title.length < MAX_URL_LENGTH ? title : (title.substring(0, MAX_URL_LENGTH) + '...'));
-    return text.trim();
-  };
-  NodePatch.prototype.getNodeText = getNodeText;
-  NodePatch.prototype.patch = function () {
-    jQuery.fn.updateNodeContent = function (nodeContent, ysy) {
-      'use strict';
-      // var MAX_URL_LENGTH = 25,
-      var self = jQuery(this),
-          title = getNodeText(nodeContent),
-          updateText = function (title) {
-            // var text = MAPJS.URLHelper.stripLink(title) ||
-            //         (title.length < MAX_URL_LENGTH ? title : (title.substring(0, MAX_URL_LENGTH) + '...')),
-            var span = self.find('[data-mapjs-role=title]');
-            if (span.length === 0) {
-              span = jQuery('<span>').attr('data-mapjs-role', 'title').appendTo(self);
-            }
-            span.text(title);
-          },
-          setStyles = function () {
-            var element = self.find('.mapjs-collapsor');
-            var oldClassName = self[0].className;
-            self[0].className = "mapjs-node"
-                + (oldClassName.indexOf("activated") > -1 ? " activated" : "")
-                + (oldClassName.indexOf("selected") > -1 ? " selected" : "")
-                + ysy.styles.cssClasses(nodeContent)
-                + (nodeContent.x && nodeContent.x + nodeContent.width < 0 ? ' mindmup-node-left' : '')
-                + (nodeContent.attr.collapsed && nodeContent.attr.hasChildren ? ' collapsed' : '')
-                + ysy.nodePatch.nodeBonusCss(nodeContent)
-                + (nodeContent.attr.data.filtered_out ? " mindmup__node--filtered_out" : "")
-                + (ysy.filter.isBanned(nodeContent) ? " " + ysy.filter.className : "");
-            if (nodeContent.attr.hasChildren) {
-              if (element.length === 0) {
-                jQuery('<div class="mapjs-collapsor"></div>').on("tap", function () {
-                  var model = ysy.mapModel;
-                  model.selectNode(nodeContent.id);
-                  model.toggleCollapse();
-                  return false;
-                }).appendTo(self);
-              }
-            } else if (element.length > 0) {
-              element.remove();
-            }
-          },
-          // needChangeIcon = function () {
-          //   return !!ysy.getData(nodeContent)._old;
-          // },
-          // setChangeIcon = function ($iconsCont) {
-          //   var isEdited = !!ysy.getData(nodeContent)._old;
-          //   if (isEdited) {
-          //     var $icon = $iconsCont.find(".mindmup-node-icon-is_edited");
-          //     if ($icon.length === 0) {
-          //       $iconsCont.prepend('<div class="mindmup-node-icon-is_edited" title="' + ysy.settings.labels.titleNodeChanged + '"></div>');
-          //     }
-          //   } else {
-          //     $iconsCont.find(".mindmup-node-icon-is_edited").remove();
-          //   }
-          // },
-          needIcons = function () {
-            return ysy.settings.allIcons;
-          },
-          setIcons = function ($iconsCont) {
-            var creatorName, creator, icon;
-            var iconCreators = ysy.nodePatch.iconsForEntity[nodeContent.attr.entityType];
-            if (!iconCreators) return;
-            var nodePatch = ysy.nodePatch;
-            if (!ysy.settings.allIcons) return;
-            var $icons = $iconsCont.find(".mindmup-node-icons-all");
-            if ($icons.length === 0) {
-              $icons = $('<div class="mindmup-node-icons-all"></div>');
-              $iconsCont.append($icons);
-            }
-            var lastIconCreatorName = null;
-            for (var i = 0; i < iconCreators.length; i++) {
-              creatorName = iconCreators[i];
-              creator = nodePatch._icons[creatorName];
-              if (!creator) continue;
-              var newIconContent = creator(nodeContent);
-              icon = $icons.find(".mindmup-node-icon-" + creatorName);
-              if (newIconContent) {
-                if (!icon.length) {
-                  icon = $('<div class="mindmup-node-icon mindmup-node-icon-' + creatorName + '"></div>');
-                  if (!lastIconCreatorName) {
-                    $icons.prepend(icon);
-                  } else {
-                    $icons.find(".mindmup-node-icon-" + lastIconCreatorName).after(icon);
-                  }
-                }
-                if (typeof newIconContent === "string") {
-                  icon.html(newIconContent);
-                } else {
-                  icon.clear().append(newIconContent);
-                }
-                lastIconCreatorName = creatorName;
-              } else {
-                icon.remove();
-              }
-            }
-          };
-      if (!self.is(":focus")) {
-        var parent = self.parent();
-        self.detach();
-        var detached = true;
-      }
-      updateText(title);
-      self.data({
-        'x': Math.round(nodeContent.x),
-        'y': Math.round(nodeContent.y),
-        'width': Math.round(nodeContent.width),
-        'height': Math.round(nodeContent.height),
-        'nodeId': nodeContent.id,
-        'title': title
-      });
-      setStyles();
-      var $element = self.find('.mindmup-node-icons');
-      if (needIcons()) {
-        if ($element.length === 0) {
-          $element = $('<div class="mindmup-node-icons"></div>');
-          var haveToBeAppended = true;
-        }
-        //setChangeIcon($element);
-        setIcons($element);
-        if (haveToBeAppended) {
-          $element.appendTo(self);
-        }
-      } else if ($element.length > 0) {
-        $element.remove();
-      }
-      if (nodeContent.attr.force) delete nodeContent.attr.force;  // remove force flag if present
-      if (detached) {
-        parent.append(self);
-      }
-      return self;
-    };
-  };
-  window.easyMindMupClasses.NodePatch = NodePatch;
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/polyfill.js b/plugins/easy_mindmup/assets/javascripts/polyfill.js
deleted file mode 100644
index af247c7..0000000
--- a/plugins/easy_mindmup/assets/javascripts/polyfill.js
+++ /dev/null
@@ -1,27 +0,0 @@
-if (!Function.prototype.bind) {
-  Function.prototype.bind = function(oThis) {
-    if (typeof this !== 'function') {
-      // closest thing possible to the ECMAScript 5
-      // internal IsCallable function
-      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
-    }
-
-    var aArgs   = Array.prototype.slice.call(arguments, 1),
-        fToBind = this,
-        fNOP    = function() {},
-        fBound  = function() {
-          return fToBind.apply(this instanceof fNOP
-                  ? this
-                  : oThis,
-              aArgs.concat(Array.prototype.slice.call(arguments)));
-        };
-
-    if (this.prototype) {
-      // Function.prototype doesn't have a prototype property
-      fNOP.prototype = this.prototype;
-    }
-    fBound.prototype = new fNOP();
-
-    return fBound;
-  };
-}
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/print.js b/plugins/easy_mindmup/assets/javascripts/print.js
deleted file mode 100644
index 54127c0..0000000
--- a/plugins/easy_mindmup/assets/javascripts/print.js
+++ /dev/null
@@ -1,174 +0,0 @@
-(function () {
-  function Print(ysy) {
-    this.printReady = false;
-    this.$area = null;
-    this.ysy = ysy;
-    this.patch(ysy);
-  }
-
-  Print.prototype.margins = {
-    left: 10,
-    right: 10,
-    top: 20,
-    bottom: 10
-  };
-  Print.prototype.patch = function (ysy) {
-    var self = this;
-    var mediaQueryList = window.matchMedia('print');
-    mediaQueryList.addListener(function (mql) {
-      if (mql.matches) {
-        self.beforePrint();
-      } else {
-        self.afterPrint();
-      }
-    });
-    window.onbeforeprint = $.proxy(this.beforePrint, this);
-    window.onafterprint = $.proxy(this.afterPrint, this);
-  };
-  Print.prototype.directPrint = function () {
-    this.beforePrint();
-    window.print();
-    this.afterPrint();
-  };
-  Print.prototype.beforePrint = function (isCompact) {
-    if (this.printReady) return;
-    this.ysy.mapModel.resetView();
-    this.$area = isCompact? this.createCompactArea():this.createPrintArea();
-    $("body").append(this.$area);
-    $("#wrapper").hide();
-    this.printReady = true;
-  };
-  Print.prototype.afterPrint = function () {
-    if (!this.printReady) return;
-    this.$area.remove();
-    $("#wrapper").show();
-    this.ysy.mapModel.resetView();
-    this.printReady = false;
-  };
-  Print.prototype.createPrintArea = function () {
-    var $stage = this.ysy.$container.children();
-    // var width = $stage.width();
-    // var height = $stage.height();
-    var stripWidth = 330;
-    var children = $stage.children(":not(:hidden)");
-    var dims = this.getStageDims(children);
-    var $area = $('<div class="mindmup-print-area scheme-by-' + this.ysy.styles.setting + '" \
-        style="height:' + (dims.bottom - dims.top + this.margins.top + this.margins.bottom) + 'px"></div>');
-    for (var p = dims.left - this.margins.left; p < dims.right + this.margins.right; p += stripWidth) {
-      $area.append(this.createStrip(children, dims, p, p + stripWidth));
-      //p -= 2;
-    }
-    return $area;
-  };
-  Print.prototype.createStrip = function (children, dims, start, end) {
-    /* start can be negative*/
-    if (end <= start) return null;
-    // var stageOffset = $stage.height();
-    var $strip = $('<div class="mindmup-print-strip" style="height:' + (dims.bottom - dims.top + this.margins.top + this.margins.bottom) + 'px;width:' + (end - start) + 'px"></div>');
-    // var children = $stage.children(":not(:hidden)");
-    var added = 0;
-    for (var i = 0; i < children.length; i++) {
-      var child = children[i];
-      var left = parseInt(child.style.left);
-      var width = child.offsetWidth;
-      var top = parseInt(child.style.top) - dims.top + this.margins.top;
-      var height = child.offsetHeight;
-      if (left > end) continue;
-      if (left + width < start) continue;
-      added++;
-      var $child = $(child);
-      var transform = $child.css("transform");
-      if (transform === "none") transform = "";
-      transform = "translate(" + (left - start) + "px," + top + "px) " + transform;
-      $strip.append(
-          $child
-              .clone()
-              .css({left: 0, top: 0, transform: transform})
-      );
-    }
-    if (!added) return null;
-    return $strip;
-  };
-  Print.prototype.getStageDims = function (children) {
-    var dims = {
-      left: Infinity,
-      top: Infinity,
-      right: -Infinity,
-      bottom: -Infinity
-    };
-    for (var i = 0; i < children.length; i++) {
-      var child = children[i];
-      var left = parseInt(child.style.left);
-      var top = parseInt(child.style.top);
-      var width = child.offsetWidth;
-      var height = child.offsetHeight;
-      if (left < dims.left) dims.left = left;
-      if (top < dims.top) dims.top = top;
-      if (left + width > dims.right) dims.right = left + width;
-      if (top + height > dims.bottom) dims.bottom = top + height;
-    }
-    return dims;
-  };
-  Print.prototype.createCompactArea = function () {
-    var $stage = this.ysy.$container.children();
-    var children = $stage.children(":not(:hidden)");
-    var dims = this.getStageDims(children);
-    var leftEdge = dims.left - this.margins.left;
-    var $area = $('<div class="mindmup-pdf-print-area scheme-by-' + this.ysy.styles.setting + '" style="'
-        + 'height:' + (dims.bottom - dims.top + this.margins.top + this.margins.bottom) + 'px;'
-        + 'width:' + (dims.right - leftEdge + this.margins.right) + 'px"></div>');
-    for (var i = 0; i < children.length; i++) {
-      var child = children[i];
-      var left = parseInt(child.style.left);
-      var width = child.offsetWidth;
-      var top = parseInt(child.style.top) - dims.top + this.margins.top;
-      var height = child.offsetHeight;
-      var $child = $(child);
-      var transform = $child.css("transform");
-      if (transform === "none") transform = "";
-      transform = "translate(" + (left - leftEdge) + "px," + top + "px) " + transform;
-      $area.append(
-          $child
-              .clone()
-              .css({left: 0, top: 0, transform: transform})
-      );
-    }
-    return $area;
-  };
-
-  window.easyMindMupClasses.Print = Print;
-  //####################################################################################################################
-  /**
-   * Button, which prepare Mind Map into printable version
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function PrintButton(ysy, $parent) {
-    this.$element = null;
-    this.ysy = ysy;
-    this.init(ysy, $parent);
-  }
-
-  PrintButton.prototype.id = "PrintButton";
-
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @return {PrintButton}
-   */
-  PrintButton.prototype.init = function (ysy, $parent) {
-    this.$element = $parent.find(".mindmup-button-print");
-    var self = this;
-    this.$element.click(function () {
-      self.ysy.print.directPrint();
-    });
-    return this;
-  };
-  PrintButton.prototype._render = function () {
-  };
-
-  window.easyMindMupClasses.PrintButton = PrintButton;
-
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/redrawer.js b/plugins/easy_mindmup/assets/javascripts/redrawer.js
deleted file mode 100644
index b9b4919..0000000
--- a/plugins/easy_mindmup/assets/javascripts/redrawer.js
+++ /dev/null
@@ -1,60 +0,0 @@
-(function () {
-  /**
-   * Asynchronic redrawer
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Repainter(ysy) {
-    this.ysy = ysy;
-    this.onRepaint = [];
-    var self = this;
-    var requestAnimationFrame = (function () {
-      return window.requestAnimationFrame ||
-          window.webkitRequestAnimationFrame ||
-          window.mozRequestAnimationFrame ||
-          function (callback) {
-            window.setTimeout(callback, 1000 / 60);
-          };
-    })();
-    var animationLoop = function () {
-      var queue = self.onRepaint;
-      if (queue.length > 0) {
-        self.onRepaint = [];
-        for (var i = 0; i < queue.length; i++) {
-          var widget = queue[i];
-          widget._redrawRequested = false;
-          widget._render();
-        }
-      }
-      requestAnimationFrame(animationLoop);
-    };
-    this.animationLoop = animationLoop;
-  }
-
-  Repainter.prototype.start = function () {
-    this.animationLoop();
-  };
-  /**
-   * Main function - insert widget into repaint queue (if not present there)
-   * @param {Object} widget
-   */
-  Repainter.prototype.redrawMe = function (widget) {
-    if (widget._redrawRequested) return;
-    widget._redrawRequested = true;
-    this.onRepaint.push(widget);
-  };
-  /**
-   * Whole node tree will be repainted. Repaint can be delayed to next change by [noRender] parameter
-   * @param {boolean} [noRender]
-   */
-  Repainter.prototype.forceRedraw = function (noRender) {
-    var idea = this.ysy.idea;
-    this.ysy.util.traverse(idea, function (node) {
-      node.attr.force = true;
-    });
-    if (!noRender) {
-      idea.dispatchEvent('changed');
-    }
-  };
-  window.easyMindMupClasses.Repainter = Repainter;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/save_info.js b/plugins/easy_mindmup/assets/javascripts/save_info.js
deleted file mode 100644
index e9cfcad..0000000
--- a/plugins/easy_mindmup/assets/javascripts/save_info.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Created by hosekp on 1/23/17.
- */
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @property {MindMup} ysy
-   * @property {jQuery} $parent
-   * @property {jQuery} $element
-   * @property {Date} lastTime
-   * @property {string} state
-   * @constructor
-   */
-  function SaveInfo(ysy) {
-    this.ysy = ysy;
-    this.init(ysy);
-    this.state = 'initial';
-    this.lastTime = new Date();
-  }
-
-  /** @param {MindMup} ysy */
-  SaveInfo.prototype.init = function (ysy) {
-    this.$parent = ysy.toolbar.$menu;
-    ysy.toolbar.addChild(this);
-    this.$element = this.$parent.find(".mindmup__menu-save");
-    if (window.moment) {
-      var self = this;
-      this.interval = window.setInterval(function () {
-        ysy.repainter.redrawMe(self);
-      }, 60 * 1000);
-    }
-  };
-
-  SaveInfo.prototype.isSaved = function (isAutosave) {
-    if (!this.$element.length) return;
-    this.lastTime = new Date();
-    this.state = isAutosave ? "autosaved" : "saved";
-    this.ysy.repainter.redrawMe(this);
-  };
-
-  SaveInfo.prototype._render = function () {
-    if (!this.$element.length) return;
-    var rendered;
-    var labels = this.ysy.settings.labels.save_info;
-    if (window.moment) {
-      rendered = labels[this.state] + " " + moment(this.lastTime).fromNow();
-    } else {
-      rendered = labels[this.state] + " " + labels["at"] + " " + this.lastTime.toTimeString().split(" ")[0];
-    }
-    this.$element.attr("title", rendered);
-  };
-
-  window.easyMindMupClasses.SaveInfo = SaveInfo;
-  //####################################################################################################################
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/save_progress.js b/plugins/easy_mindmup/assets/javascripts/save_progress.js
deleted file mode 100644
index ab6ac50..0000000
--- a/plugins/easy_mindmup/assets/javascripts/save_progress.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Created by hosekp on 11/15/16.
- */
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function SaveProgress(ysy) {
-    this.ysy = ysy;
-    this.currentScore = 0;
-    this.fullScore = 0;
-    this.$element = $(ysy.settings.templates.saveProgressModal);
-    this.$element.hide();
-    this.$element.appendTo("body");
-    this.$progressBar = this.$element.find(".mindmup-progress-bar");
-    this.hidden = true;
-
-  }
-
-  SaveProgress.prototype.scoreForSequential = 1;
-  SaveProgress.prototype.scoreForParallel = 1 / 4.0;
-  SaveProgress.prototype.scoreForLayout = 1 / 4.0;
-  /**
-   *
-   * @param {Array.<SendPack>} list
-   * return {number}
-   */
-  SaveProgress.prototype.estimateProgress = function (list) {
-    var short = 0;
-    for (var i = 0; i < list.length; i++) {
-      if (list[i].isSafe) short++;
-    }
-    return list.length - short * (this.scoreForSequential - this.scoreForParallel);//+this.scoreForLayout;
-    // return {short:short,long:list.length-short,average:list.length-short*5/6};
-  };
-  /**
-   * Entry function - it shows progress bar and estimate its score (difficulty to fill)
-   * @param {Array.<SendPack>} list
-   */
-  SaveProgress.prototype.startProgress = function (list) {
-    this.fullScore = this.estimateProgress(list);
-    if (this.fullScore <= 1) return;
-    this.currentScore = 0;
-    this.hidden = false;
-    this.$element.show();
-    this.ysy.repainter.redrawMe(this);
-  };
-  /**
-   *
-   * @param {SendPack} sendPack
-   */
-  SaveProgress.prototype.requestFinished = function (sendPack) {
-    if (this.hidden) return;
-    if (!sendPack) {
-      this.hide();
-      return;
-    }
-    if (sendPack.isSafe) {
-      this.currentScore += this.scoreForParallel;
-    } else {
-      this.currentScore += this.scoreForSequential;
-    }
-    if (this.currentScore >= this.fullScore) {
-      this.hide();
-    } else {
-      this.ysy.repainter.redrawMe(this);
-    }
-  };
-  SaveProgress.prototype._render = function () {
-    this.$progressBar.width((100 * this.currentScore / (this.fullScore + 0.0001)) + "%");
-  };
-  SaveProgress.prototype.hide = function () {
-    this.$element.hide();
-  };
-
-
-  window.easyMindMupClasses.SaveProgress = SaveProgress;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/saver.js b/plugins/easy_mindmup/assets/javascripts/saver.js
deleted file mode 100644
index 4309313..0000000
--- a/plugins/easy_mindmup/assets/javascripts/saver.js
+++ /dev/null
@@ -1,610 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @property {{
-   *   fails: Array,
-   *   layoutSend: boolean,
-   *   onWay: number,
-   *   unsafeOnWay: boolean,
-   *   updatesDone: boolean,
-   *   deletesDone: boolean,
-   *   deletesStarted: boolean,
-   *   sendPacks: Array.<SendPack>,
-   *   doneCounter: number,
-   *   pointer: number
-   * }|null} temp
-   * @property {boolean} isAutosave
-   * @property {Array} deleteStack
-   * @constructor
-   */
-  function Saver(ysy) {
-    /** @type {MindMup} */
-    this.ysy = ysy;
-    this.temp = null;
-    /** @type {Array.<ModelEntity>} */
-    this.deleteStack = [];
-    this.delaying = 500;
-    this.isAutosave = false;
-  }
-
-  /**
-   * @example "easy_wbs_layout";
-   * @type {String}
-   */
-  Saver.prototype.layoutKey = null;
-
-  Saver.prototype.save = function (isAutosave) {
-    var idea = this.ysy.idea;
-    this.isAutosave = !!isAutosave;
-    /**@type{Array.<SendPack>} */
-    var list = [];
-    this.linearizeTree(idea, null, null, list, false);
-    this.temp = {
-      fails: [],
-      layoutSend: false,
-      onWay: 0,
-      unsafeOnWay: false,
-      updatesDone: false,
-      deletesDone: false,
-      deletesStarted: false,
-      sendPacks: list,
-      doneCounter: 0,
-      pointer: 0
-    };
-    this.ysy.saveProgress.startProgress(list);
-    this.saveLayout();
-    this.sendNextNode();
-  };
-  /**
-   *
-   * @param {ModelEntity} node
-   * @param {ModelEntity} parent
-   * @param {ModelEntity} project
-   * @param {Array.<SendPack>} list
-   * @param {boolean} unsafe
-   */
-  Saver.prototype.linearizeTree = function (node, parent, project, list, unsafe) {
-    if (!node) return;
-    if (!node.attr.nonEditable) {
-      var pack = this.createSendPack(node, parent, project);
-      if (!unsafe) {
-        pack.evaluate(this.ysy);
-        if (!pack.isSame) {
-          list.push(pack);
-          if (!pack.isSafe) {
-            unsafe = true;
-          }
-        }
-
-      } else {
-        list.push(pack);
-      }
-    }
-    if (!node.ideas) return;
-    if (node && node.attr.entityType === "project") {
-      project = node;
-    }
-    var ideas = _.values(node.ideas);
-    for (var i = 0; i < ideas.length; i++) {
-      this.linearizeTree(ideas[i], node, project, list, unsafe);
-    }
-  };
-
-  Saver.prototype.sendNextNode = function (async) {
-    var temp = this.temp;
-    var index = temp.pointer;
-    if (async && index % 10 === 9) {
-      setTimeout($.proxy(this.sendNextNode, this), 0);
-      return;
-    }
-    var list = this.temp.sendPacks;
-    // while(temp.laggingPointer<index){
-    //   if(list[temp.laggingPointer].response){
-    //     temp.laggingPointer++;
-    //   }else{
-    //     break;
-    //   }
-    // }
-    if (temp.doneCounter === list.length) {
-      this.temp.updatesDone = true;
-      this.finishCheck();
-      return;
-    }
-    var pack = list[index];
-    if (!pack) {
-      return;
-    }
-    pack.evaluate(this.ysy);
-    // if(!pack.isSame) this.ysy.log.debug("__ " + pack.print() + " __");
-    if (pack.isSame) {
-      temp.pointer++;
-      temp.doneCounter++;
-      this.sendNextNode(true);
-    } else if (pack.isSafe) {
-      pack.sendRequest();
-      temp.pointer++;
-      this.sendNextNode(true);
-    } else if (!pack.needInclusion) {
-      if (temp.unsafeOnWay) return;
-      temp.pointer++;
-      pack.sendRequest();
-    } else {
-      if (temp.unsafeOnWay) return;
-      pack.sendInclusion();
-      temp.doneCounter--;
-    }
-  };
-
-  Saver.prototype.sendDeletes = function () {
-    var ysy = this.ysy;
-    ysy.log.debug("sendDeletes", "send");
-    var temp = this.temp;
-    temp.deletesStarted = true;
-    temp.pointer = 0;
-    temp.doneCounter = 0;
-    temp.sendPacks = [];
-    for (var i = 0; i < this.deleteStack.length; i++) {
-      /** @type {ModelEntity} */
-      var deletedEntity = this.deleteStack[i];
-      if (!deletedEntity.attr.isFromServer) continue;
-      var id = ysy.getData(deletedEntity).id;
-      if (!id) continue;
-      var nodeInTree = ysy.util.findWhere(ysy.idea, function (node) {
-        //noinspection JSReferencingMutableVariableFromClosure
-        return ysy.getData(node).id === id;
-      });
-      if (nodeInTree) continue;
-      var sendPack = this.createSendPack(deletedEntity);
-      sendPack.makeDelete(this.ysy);
-      temp.sendPacks.push(sendPack);
-    }
-    this.ysy.saveProgress.startProgress(temp.sendPacks);
-    this.sendNextNode();
-    this.deleteStack = [];
-  };
-  /**
-   *
-   * @param {SendPack} sendPack
-   */
-  Saver.prototype.requestFinished = function (sendPack) {
-    this.temp.doneCounter++;
-    this.ysy.saveProgress.requestFinished(sendPack);
-    this.sendNextNode();
-  };
-
-  Saver.prototype.finishCheck = function () {
-    if (this.temp.unsafeOnWay) return;
-    // if (this.temp.onWay) return;
-    if (this.temp.sendPacks.length !== this.temp.doneCounter) return;
-    if (!this.temp.layoutSend) return;
-    if (!this.temp.updatesDone) return;
-    if (!this.temp.deletesStarted) {
-      this.sendDeletes();
-      return;
-    }
-    this.ysy.saveProgress.requestFinished(null);
-    this.afterSave();
-  };
-  Saver.prototype.afterSave = function () {
-    this.ysy.log.debug("afterSave", "send");
-    /** @type {MindMup} */
-    var ysy = this.ysy;
-    var fails = this.temp.fails;
-    var self = this;
-
-    this.ysy.saveInfo.isSaved(this.isAutosave);
-    if (fails.length > 0) {
-      var errors = _.map(fails, function (fail) {
-        return self.createErrorNotice(fail)
-      });
-      ysy.util.showMessage(ysy.settings.labels.gateway.multiFail + "<br>" + errors.join("<br>"), "error", 5000);
-    } else {
-      ysy.util.showMessage(ysy.settings.labels.gateway.multiSuccess, "notice", 1000);
-    }
-    ysy.storage.clear();
-    ysy.loader.load();
-
-  };
-  /**
-   *
-   * @param {SendPack} sendPack
-   * @return {string}
-   */
-  Saver.prototype.createErrorNotice = function (sendPack) {
-    var method = sendPack.method;
-    var name = sendPack.node.title;
-    var reason = null;
-    var status = sendPack.response.status;
-    if (status === 403) {
-      reason = this.ysy.settings.labels.gateway.response_403;
-    } else {
-      try {
-        var responseJson = JSON.parse(sendPack.response.responseText);
-        if (responseJson.errors) {
-          reason = responseJson.errors.join(", ");
-        }
-      } catch (e) {
-      }
-    }
-    //if(method === "DELETE") {
-    //
-    //}else{
-    //}
-    var labels = this.ysy.settings.labels;
-    return labels.types[sendPack.node.attr.entityType] + " " + name + " " + labels.gateway[method + "fail"] + ": " + (reason || sendPack.response.statusText);
-  };
-
-  Saver.prototype.saveLayout = function () {
-    if (!this.layoutKey) throw "Missing layoutKey";
-    var self = this;
-    var layout = this.ysy.storage.extra.positionExtract;
-    var requestData = {easy_setting: {}};
-    requestData.easy_setting[this.layoutKey] = layout;
-    var xhr = $.ajax({
-      method: "PUT",
-      url: this.ysy.settings.paths.updateLayout,
-      // type: request.type,
-      dataType: "json",
-      data: requestData
-    });
-    xhr.complete(function () {
-      self.temp.layoutSend = true;
-      self.finishCheck();
-    });
-  };
-
-  window.easyMindMupClasses.Saver = Saver;
-  //####################################################################################################################
-  /**
-   * Contains all information needed for sending of proper request.
-   * It also contains [node], which is ModelEntity so its children are accessible to be send next
-   * @constructor
-   * @param {ModelEntity} node
-   * @param {ModelEntity} [parent]
-   * @param {ModelEntity} [project]
-   * @property {String} method
-   * @property {String} url
-   * @property {ModelEntity} node
-   * @property {ModelEntity} parent
-   * @property {ModelEntityData} nodeData
-   * @property {String} response
-   * @property {Saver} saver
-   * @property {boolean} isSame
-   * @property {boolean} isSafe
-   * @property {boolean} needInclusion
-   * @property {boolean} evaluated
-   */
-  function SendPack(node, parent,project) {
-    this.method = null;
-    this.url = "";
-    this.node = node;
-    this.parent = parent;
-    this.project = project;
-    this.nodeData = null;
-    /** generated data for request - it is filled just before actual send */
-    this.data = {};
-    this.response = null;
-    this.saver = null;
-
-    this.isSame = false;
-    this.isSafe = false;
-    this.needInclusion = false;
-    this.evaluated = false;
-  }
-
-  /**
-   * Simple way how to create SendPack for deleting entities without complicated [evaluate]
-   * @param {MindMup} ysy
-   */
-  SendPack.prototype.makeDelete = function (ysy) {
-    this.ysy = ysy;
-    this.method = "DELETE";
-    this.nodeData = this.node.attr.data;
-    this.evaluated = true;
-  };
-
-  /**
-   * Check ModelEntity and decide:
-   * - if it is same as entity on server - in that case the entity can be skipped
-   * - if changed attributes are safe - can be send on server in parallel with other safe requests
-   * - if changed attribute is not safe - have to be send in alone (or with safe requests)
-   * - if inclusion is needed - some unsafe attribute changed in such way that two requests are needed,
-   *      first to clear old value and the second to set a new value of the attribute
-   * @param {MindMup} ysy
-   */
-  SendPack.prototype.evaluate = function (ysy) {
-    if (this.evaluated) return;
-    this.evaluated = true;
-    this.ysy = ysy;
-    var node = this.node;
-    this.updateNodeData();
-    this.nodeData = this.node.attr.data;
-    if (node.attr.nonEditable) {
-      this.isSame = true;
-      return;
-    }
-    if (node.attr.isFromServer && this.nodeData.id) {
-      if (!this.nodeData._old) {
-        this.isSame = true;
-        return;
-      }
-      this.method = "PUT";
-      if (this.isSafeCheck()) {
-        this.isSafe = true;
-        return;
-      }
-      if (this.needInclusionCheck()) {
-        this.needInclusion = true;
-        // return;
-      }
-    } else {
-      this.method = "POST";
-      // this.isSafe = false;
-    }
-  };
-  SendPack.prototype.generateUrl = function () {
-    var type = this.node.attr.entityType;
-    var url = this.ysy.settings.paths[type + this.method];
-    if (!url) url = "";
-    this.url = url.replace(new RegExp("(:|%3A)" + type + "ID", ""), this.nodeData.id);
-  };
-  SendPack.prototype.needInclusionCheck = function () {
-    throw "needInclusionCheck not implemented";
-    // var entityData = this.nodeData;
-    // return entityData._old.parent_issue_id !== entityData.parent_issue_id
-    //     && entityData.parent_issue_id
-    //     && entityData._old.parent_issue_id
-  };
-  SendPack.prototype.isSafeCheck = function () {
-    throw "isSafeCheck not implemented";
-    // var data = this.nodeData;
-    // if (this.node.attr.entityType === "project") {
-    //   return !data._old.hasOwnProperty("parent_id") || data._old.parent_id === data.parent_id;
-    // }
-    // if (data._old.hasOwnProperty("project_id") && data._old.project_id !== data.project_id) return false;
-    // return !data._old.hasOwnProperty("parent_issue_id") || data._old.parent_issue_id === data.parent_issue_id;
-  };
-  SendPack.prototype.updateNodeData = function () {
-    if (0 == "0") throw "updateNodeData not implemented";
-    var idea = this.node;
-    var parent = this.parent;
-    var updateObj;
-    if (idea.attr.entityType === "project") {
-      if (parent) {
-        var parentData = this.ysy.getData(parent);
-        updateObj = {parent_id: parentData.id, name: idea.title};
-      } else {
-        updateObj = {name: idea.title};
-      }
-    } else {
-      if (parent) {
-        parentData = this.ysy.getData(parent);
-        if (parent.attr.entityType === "project") {
-          updateObj = {
-            project_id: parentData.id,
-            parent_issue_id: null,
-            subject: idea.title
-          }
-        } else {
-          updateObj = {
-            parent_issue_id: parentData.id,
-            subject: idea.title,
-            project_id: this.ysy.util.getEntityProjectId(parent)
-          };
-        }
-      }
-    }
-    this.ysy.setData(idea, updateObj);
-  };
-  /**
-   * Create String representation of this. Only for debugging purposes
-   * @return {String}
-   */
-  SendPack.prototype.print = function () {
-    return '{"node":' + this.node.title + ',"flags":"' + (this.isSame ? "isSame" : "") + (this.isSafe ? "isSafe" : "") + (this.needInclusion ? "Inclusion" : "") + '"}';
-  };
-  SendPack.prototype.sendRequest = function () {
-    var temp = this.saver.temp;
-    this.generateUrl();
-    this.ysy.log.debug("send for " + (this.nodeData.subject || this.nodeData.name), "send");
-    if (this.method === "POST") {
-      // delete this.nodeData._old;
-      // delete this.nodeData.id;
-      this.data[this.node.attr.entityType] = this.filterPostData(this.nodeData);
-      // this.data[this.node.attr.entityType] = this.nodeData;
-    } else if (this.method === "PUT") {
-      this.data[this.node.attr.entityType] = this.filterPutData(this.nodeData, this.nodeData._old);
-    }
-    var self = this;
-    if (!this.isSafe) {
-      temp.unsafeOnWay = true;
-    }
-    if (this.ysy.settings.noSave) {
-      self.saver.delaying += 150;
-      self.ysy.log.debug(self.method + " " + self.url + " " + JSON.stringify(self.data));
-      setTimeout(function () {
-        if (!self.isSafe) {
-          temp.unsafeOnWay = false;
-        }
-        self.response = '{"' + self.node.attr.entityType + '":{"id":' + self.node.id + '}}';
-        if (self.method === "POST") {
-          self.updateByPOST();
-        }
-        self.ysy.log.debug("DONE " + self.method + " " + self.url + " " + JSON.stringify(self.data));
-        self.saver.requestFinished(self);
-      }, self.saver.delaying);
-      return;
-    }
-    var xhr = $.ajax({
-      method: this.method,
-      url: this.url,
-      dataType: "text",
-      data: this.data
-    });
-    xhr.done(function (response) {
-      self.response = response;
-      if (self.method === "POST") {
-        self.updateByPOST();
-      }
-    });
-    xhr.fail(function (response) {
-      self.response = response;
-      temp.fails.push(self);
-    });
-    xhr.complete(function () {
-      if (!self.isSafe) {
-        temp.unsafeOnWay = false;
-      }
-      self.saver.requestFinished(self);
-    });
-  };
-  /**
-   * Update ID of entity from the response, so its children can use obtained ID for their requests
-   * @protected
-   */
-  SendPack.prototype.updateByPOST = function () {
-    var source = JSON.parse(this.response)[this.node.attr.entityType];
-    if (!source) return;
-    //UPDATE ID
-    this.nodeData.id = source.id;
-    this.updateByPOSTAdditional(source);
-  };
-  /**
-   * Enables to update more attributes from POST - just override this function
-   * @param {Object} source
-   */
-  SendPack.prototype.updateByPOSTAdditional = function (source) {
-    if (0 == "0") throw "updateByPOSTAdditional not implemented";
-    var keysToTransform = ["tracker", "status", "priority"];
-    var wantedKeys = ["tracker_id", "status_id", "priority_id", "done_ratio"];
-    for (var i = 0; i < keysToTransform.length; i++) {
-      var key = keysToTransform[i];
-      if (_.isObject(source[key])) {
-        source[key + "_id"] = source[key].id;
-        delete source[key];
-      }
-    }
-    $.extend(this.nodeData, _.pick(source, wantedKeys));
-  };
-  /**
-   * @protected
-   */
-  SendPack.prototype.sendInclusion = function () {
-    var node = this.node;
-    /** @type {ModelEntity} */
-    var inclusion = new window.easyMindMupClasses.ModelEntity()
-        .fromServer(node.id, node.title + " inclusion", node.attr.entityType, true, this.getInclusionData());
-    inclusion.ideas = {1: node};
-    /** @type {SendPack} */
-    var pack = this.saver.createSendPack(inclusion);
-    pack.ysy = this.ysy;
-    pack.nodeData = pack.node.attr.data;
-    pack.method = "PUT";
-    this.needInclusion = false;
-    pack.sendRequest();
-  };
-  SendPack.prototype.getInclusionData = function () {
-    // the code may be marked as error by IDE, dead code is left for overrides
-    if (0 == "0") throw "getInclusionData";
-    if (this.node.attr.entityType === "issue") {
-      return {id: this.nodeData.id, _old: {parent_issue_id: 5}, parent_issue_id: null};
-    }
-  };
-  /**
-   * Returns only changed values from nodeData
-   * @param {ModelEntityData} nodeData
-   * @param {Object} oldNodeData
-   * @return {Object}
-   */
-  SendPack.prototype.filterPutData = function (nodeData, oldNodeData) {
-    var filtered = {};
-    var keys = Object.getOwnPropertyNames(oldNodeData);
-    for (var i = 0; i < keys.length; i++) {
-      var key = keys[i];
-      if (key.substring(0, 1) === "_") continue;
-      // if (nodeData[key] === oldNodeData[key]) continue;
-      if (key === "custom_fields") {
-        filtered.custom_field_values = this.transformCustomValues(nodeData.custom_fields, oldNodeData.custom_fields);
-        continue;
-      }
-      filtered[key] = nodeData[key];
-    }
-    return filtered;
-  };
-  /**
-   * Returns only attributes which are safe to send to server
-   * @param {ModelEntityData} nodeData
-   * @return {Object}
-   */
-  SendPack.prototype.filterPostData = function (nodeData) {
-    var filtered = {};
-    var util = this.ysy.util;
-    var keys = Object.getOwnPropertyNames(nodeData);
-    for (var i = 0; i < keys.length; i++) {
-      var key = keys[i];
-      if (key === "id") continue;
-      if (util.startsWith(key, "_")) continue;
-      if (typeof(nodeData[key]) === "function") continue;
-      if (key === "custom_fields") {
-        filtered.custom_field_values = this.transformCustomValues(nodeData.custom_fields, null);
-        continue;
-      }
-      filtered[key] = nodeData[key];
-    }
-    return filtered;
-  };
-  /**
-   *
-   * @param {Array.<{id:String,value:*}>} customFields
-   * @param {Array.<{id:String,value:*}>} oldCustomFields
-   * @return {Object.<int,*>}
-   */
-  SendPack.prototype.transformCustomValues = function (customFields, oldCustomFields) {
-    var customValues = {};
-    if (oldCustomFields) {
-      var customIndices = Object.getOwnPropertyNames(oldCustomFields);
-      for (var j = 0; j < customIndices.length; j++) {
-        if (customIndices[j].startsWith("_"))continue;
-        var customIndex = parseInt(customIndices[j]);
-        var customField = customFields[customIndex];
-        if (customField.field_format === "easy_lookup" && typeof customField.value.length !== "undefined") {
-          var out = [];
-          for (var k = 0; k < customField.value.length - 2; k = k + 3) {
-            out.push(customField.value[k]);
-          }
-          if (customField.multiple) {
-            customValues[customField.id] = out;
-          } else {
-            if (out.length === 0) {
-              customValues[customField.id] = null;
-            } else {
-              customValues[customField.id] = out[0];
-            }
-          }
-        } else {
-          customValues[customField.id] = customField.value;
-        }
-      }
-    } else {
-      for (j = 0; j < customFields.length; j++) {
-        customField = customFields[j];
-        customValues[customField.id] = customField.value;
-      }
-    }
-    return customValues;
-  };
-  window.easyMindMupClasses.SendPack = SendPack;
-  /**
-   * @param {ModelEntity} node
-   * @param {ModelEntity} [parent]
-   * @param {ModelEntity} [project]
-   * @return {SendPack}
-   */
-  Saver.prototype.createSendPack = function (node, parent, project) {
-    var pack = new SendPack(node, parent, project);
-    pack.saver = this;
-    return pack;
-  };
-  //####################################################################################################
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/storage.js b/plugins/easy_mindmup/assets/javascripts/storage.js
deleted file mode 100644
index cf859b9..0000000
--- a/plugins/easy_mindmup/assets/javascripts/storage.js
+++ /dev/null
@@ -1,191 +0,0 @@
-(function () {
-  'use strict';
-  /**
-   *
-   * @param {MindMup} ysy
-   * @property {StorageExtra} extra
-   * @property {StorageSettings} settings
-   * @constructor
-   */
-  function Storage(ysy) {
-    this._scope = ysy.id + "-";
-    this.ysy = ysy;
-    this.extra = new StorageExtra(this);
-    this.settings = new StorageSettings(this);
-    var self = this;
-    //if (this._scope == null) throw "_scope is not defined! Scope is used for separation of xBS products in localStorage";
-
-    ysy.eventBus.register("TreeLoaded", function (idea) {
-      idea.addEventListener('changed', function () {
-        self.save(idea);
-      });
-    });
-
-  }
-
-  Storage.prototype.getPersistentData = function (key) {
-    return window.localStorage.getItem(this._scope + key);
-  };
-  Storage.prototype.savePersistentData = function (key, value) {
-    window.localStorage.setItem(this._scope + key, value);
-  };
-  Storage.prototype.resetPersistentData = function (key) {
-    window.localStorage.removeItem(this._scope + key);
-  };
-  Storage.prototype.save = function (idea) {
-    this.extra.save(idea);
-  };
-  Storage.prototype.clear = function () {
-    this.extra.positionExtract = null;
-  };
-  window.easyMindMupClasses = window.easyMindMupClasses || {};
-  window.easyMindMupClasses.Storage = Storage;
-
-//###################################################################################################
-  /**
-   *
-   * @param {Storage} storage
-   * @constructor
-   */
-  function StorageExtra(storage) {
-    this.positionExtract = null;
-    this.collapseExtract = null;
-    this.storage = storage;
-    /** @type {MindMup} ysy */
-    this.ysy = storage.ysy;
-    /** @param {ModelEntity} idea */
-    this._getIdOfIdea = function (idea) {
-      // Override this for proper entity type prefixing
-      // (to prevent having same id for different entities)
-      return this.ysy.getData(idea).id;
-    };
-  }
-
-  StorageExtra.prototype._key = "extra-";
-  /**
-   *
-   * @param {RootIdea} idea
-   */
-  StorageExtra.prototype.save = function (idea) {
-    var extract = this._extractFromNode(idea);
-    this.positionExtract = extract.positions;
-    this.collapseExtract = extract.collapses;
-    var toSave = {
-      collapses: this.collapseExtract,
-      rootPos: {
-        deltaX: this.ysy.domPatch.deltaX,
-        deltaY: this.ysy.domPatch.deltaY
-      }
-    };
-
-    this.storage.savePersistentData(this._key + this._getIdOfIdea(idea), JSON.stringify(toSave));
-  };
-  /**
-   * @param {RootIdea} idea
-   * return {{collapses:Object, rootPos: Object}}
-   */
-  StorageExtra.prototype.getLocalProjectData = function (idea) {
-    var json = this.storage.getPersistentData(this._key + this._getIdOfIdea(idea));
-    if (json === null || json === "") return {};
-    var result = JSON.parse(json) || {};
-    if (!result.collapses) return {collapses: result};
-    return result;
-  };
-  /**
-   *
-   * @param {Array.<ModelEntity>} data
-   * @param {RootIdea} root
-   * @return {Array.<ModelEntity>}
-   */
-  StorageExtra.prototype.enhanceData = function (data, root) {
-    /** @type {Object.<string,{position:Object,rank:number}>} */
-    var positions = this.positionExtract;
-    var projectData = this.getLocalProjectData(root);
-    var collapses = projectData.collapses;
-    this.ysy.domPatch.loadRootPosition(projectData.rootPos);
-    if (positions) {
-      for (var i = 1; i < data.length; i++) {
-        var nodeExtract = positions[this._getIdOfIdea(data[i])];
-        if (!nodeExtract) continue;
-        if (nodeExtract.position) {
-          var position = [];
-          for (var j = 0; j < nodeExtract.position.length; j++) {
-            position.push(parseFloat(nodeExtract.position[j]));
-          }
-          data[i].attr.position = position;
-        }
-        data[i].rank = nodeExtract.rank;
-        // data[i]._parentTitle = nodeExtract.parentTitle;
-      }
-    }
-    if (collapses) {
-      for (i = 1; i < data.length; i++) {
-        data[i].attr.collapsed = !!collapses[this._getIdOfIdea(data[i])];
-      }
-    }
-    return data;
-  };
-  /**
-   *
-   * @param {ModelEntity} node
-   * @param {string|number} [rank]
-   * @param {{positions:Object.<string,{position:Object,rank:number}>,collapses:Object.<string,boolean>}} [extract]
-   * @return {{positions:Object.<string,{position:Object,rank:number}>,collapses:Object.<string,boolean>}}
-   * @private
-   */
-  StorageExtra.prototype._extractFromNode = function (node, rank, extract) {
-    if (extract === undefined) extract = {positions: {}, collapses: {}};
-    var positionExtract = {};
-    positionExtract.rank = rank;
-    // positionExtract.parentTitle = parentTitle;
-    // var data = this.ysy.getData(node);
-    // if (!data.id) {
-    //   positionExtract.title = node.title;
-    // }
-    if (node.attr.position) {
-      positionExtract.position = node.attr.position;
-    }
-    if (node.attr.collapsed && !_.isEmpty(node.ideas)) {
-      extract.collapses[this._getIdOfIdea(node)] = true;
-    }
-    if (node.ideas) {
-      var sortedKeys = this.ysy.util.getSortedRanks(node.ideas);
-      var correctedRanks = this.ysy.util.correctRanks(sortedKeys);
-      for (var i = 0; i < correctedRanks.length; i++) {
-        this._extractFromNode(node.ideas[sortedKeys[i]], correctedRanks[i], extract);
-      }
-    }
-    extract.positions[this._getIdOfIdea(node)] = positionExtract;
-    return extract;
-  };
-//#######################################################################################
-  /**
-   *
-   * @param {Storage} storage
-   * @property {MindMup} ysy
-   * @constructor
-   */
-  function StorageSettings(storage) {
-  }
-  /**
-   * @param {RootIdea} idea
-   */
-  StorageSettings.prototype.load = function (idea) {
-  };
-  StorageSettings.prototype.loadStyle = function () {
-    return undefined;
-  };
-  StorageSettings.prototype.loadLegendHidden = function () {
-    return undefined
-  };
-  StorageSettings.prototype.loadLegendHeaderHidden = function () {
-    return undefined
-  };
-  /**
-   * @param {RootIdea} idea
-   */
-  StorageSettings.prototype.saveOneSide = function (idea) {
-  };
-  StorageSettings.prototype.saveStyle = function () {
-  };
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/styles.js b/plugins/easy_mindmup/assets/javascripts/styles.js
deleted file mode 100644
index 40b5a7a..0000000
--- a/plugins/easy_mindmup/assets/javascripts/styles.js
+++ /dev/null
@@ -1,236 +0,0 @@
-(function () {
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Styles(ysy) {
-    this.ysy = ysy;
-    /**
-     *
-     * @type {String}
-     */
-    this.setting = null;
-    /** @type Object.<String,Style> */
-    this.styles = {};
-    this.init();
-  }
-
-  /**
-   *
-   * @type {String}
-   */
-  Styles.prototype.defaultStyle = null;
-  /**
-   *@param {String} key
-   * @param {Style} style
-   */
-  Styles.prototype.addStyle = function (key, style) {
-    style.key = key;
-    style.init();
-    this.styles[key] = style;
-  };
-  Styles.prototype.init = function () {
-    if (!this.defaultStyle) throw "default style is not defined";
-    var self = this;
-    var $select = this.ysy.$menu.find(".mindmup-color-select");
-    this.ysy.eventBus.register("BeforeServerClassInit", function () {
-      var defaultStyle = self.ysy.storage.settings.loadStyle();
-      if (!defaultStyle) defaultStyle = self.defaultStyle;
-      $select.val(defaultStyle);
-      self.setColor(defaultStyle);
-    });
-
-    $select
-        .attr("title", this.ysy.settings.labels.free.headerNotAvailable)
-        .on("change", function () {
-          self.ysy.util.showUpgradeModal("coloring");
-          $(this).val(self.defaultStyle);
-        });
-  };
-  /**
-   *
-   * @param {String} setting
-   */
-  Styles.prototype.setColor = function (setting) {
-    var cssPrefix = "scheme-by-";
-    $(this.ysy.containerDiv + "," + this.ysy.menuDiv + " .mindmup-legend").removeClass(cssPrefix + this.setting).addClass(cssPrefix + setting);
-    this.setting = setting;
-    this.ysy.eventBus.fireEvent("nodeStyleChanged", setting);
-  };
-  /**
-   *
-   * @returns {Style}
-   */
-  Styles.prototype.getCurrentStyle = function () {
-    return this.styles[this.setting];
-  };
-  /**
-   * @param {ModelEntity} node
-   * @return {String}
-   */
-  Styles.prototype.cssClasses = function (node) {
-    node.title = "";
-    // Override this for proper coloring of nodes and legend items
-    throw "cssClasses is not defined";
-    // var data = ysy.mapModel.getData(node);
-    // if (node.attr && node.attr.isProject) return " wbs-scheme-project";
-    // return ""
-    //     + this.styles["tracker"].addSchemeClassFromData(data)
-    //     + this.styles["assignee"].addSchemeClassFromData(data)
-    //     + this.styles["assignee"].addSchemeClassFromData(data)
-    //     + this.styles["progress"].addSchemeClassFromData(data)
-    //     + this.styles["milestone"].addSchemeClassFromData(data)
-    //     + this.styles["priority"].addSchemeClassFromData(data);
-  };
-  /**
-   * Create [Style] instances from source Objects and put then into [styles] attribute in [Styles]
-   * @param {object.<String, {dataArray:String,value:Function,options:Function}>} styleSources
-   */
-  Styles.prototype.createStyles = function (styleSources) {
-    for (var key in styleSources) {
-      if (!styleSources.hasOwnProperty(key)) continue;
-      var style = new Style(this.ysy).fromSource(styleSources[key]);
-      this.addStyle(key, style);
-    }
-  };
-  window.easyMindMupClasses.Styles = Styles;
-  //####################################################################################################################
-  var nope = function () {
-  };
-
-  /**
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Style(ysy) {
-    this.ysy = ysy;
-    this.key = null;
-    var self = this;
-    ysy.eventBus.register("dataFilled", function (name, array) {
-      if (self.dataArray === name) {
-        self.initAttribute(array);
-      }
-    });
-  }
-
-  /**
-   * Fill Style attributes from Style source Object
-   * @param {{dataArray:String,value:Function,options:Function}} source
-   * @return {Style}
-   */
-  Style.prototype.fromSource = function (source) {
-    $.extend(this, source);
-    // if (source.init) this.init = source.init;
-    // if (source.dataArray) this.dataArray = source.dataArray;
-    // this.value = source.value;
-    // if (source.options) this.options = source.options;
-    return this;
-  };
-
-  Style.prototype.init = nope;
-  Style.prototype.dataArray = "";
-  Style.prototype.value = nope;
-  Style.prototype.changeObject = function (value) {
-    var result = {};
-    result[this.key + "_id"] = value;
-    return result;
-  };
-  Style.prototype.builderType = "dataBased";
-
-
-  /**
-   * create function, which creates oneKeyObjects
-   * @static
-   * @param {String} key
-   * @return {Function}
-   */
-  Style.oneKeyObjectConstructorBuilder = function (key) {
-    return function (value) {
-      var result = {};
-      result[key] = value;
-      return result;
-    };
-  };
-  /**
-   * simple constructor for generating Object with one key:value pair
-   * @static
-   * @param {String} key
-   * @param {*} value
-   * @return {Object.<String,*>}
-   */
-  Style.oneKeyObjectConstructor = function (key, value) {
-    var result = {};
-    result[key] = value;
-    return result;
-  };
-  /**
-   * returns Array with items for Legend
-   * @param onlyUsed
-   * @return {Array}
-   */
-  Style.prototype.options = function (onlyUsed) {
-    if (!this.data) return [];
-    if (onlyUsed) return this.findUsed();
-    if (!this.nullAllowed) return this.data;
-    return [{id: 0, name: "---"}].concat(this.data);
-  };
-  /**
-   * prepare Style after data (trackers, categories, ...) are loaded
-   * @param {Array} list
-   */
-  Style.prototype.initAttribute = function (list) {
-    this.count = 1;
-    this.colors = {};
-    for (var i = 0; i < list.length; i++) {
-      this.colors[list[i].id] = this.count++;
-      if (this.count > 12) this.count = 1;
-    }
-    this.data = list;
-  };
-  /**
-   * Generate CSS class from data of node
-   * @param {ModelEntityData} data
-   * @return {String}
-   */
-  Style.prototype.addSchemeClassFromData = function (data) {
-    var value = this.value(data);
-    return this.addSchemeClass(value);
-  };
-  /**
-   * create CSS class from value generated by [value] function
-   * @param value
-   * @return {String}
-   */
-  Style.prototype.addSchemeClass = function (value) {
-    if (!this.colors || this.colors[value] === undefined) return "";
-    return " scheme-" + this.key + "-" + this.colors[value];
-  };
-  Style.prototype.findUsed = function () {
-    if (!this.ysy.idea) return [];
-    var values = {};
-    this.recursiveUsed(this.ysy.idea, values);
-    var filtered = [];
-    if (values[0]) {
-      filtered.push({id: 0, name: "---"});
-    }
-    var array = this.data;
-    for (var i = 0; i < array.length; i++) {
-      if (values[array[i].id]) {
-        filtered.push(array[i]);
-      }
-    }
-    return filtered;
-  };
-  Style.prototype.recursiveUsed = function (idea, values) {
-    var value = this.value(this.ysy.getData(idea));
-    values[value] = true;
-    var ideaIdeas = idea.ideas;
-    for (var rank in ideaIdeas) {
-      if (!ideaIdeas.hasOwnProperty(rank)) continue;
-      var child = ideaIdeas[rank];
-      this.recursiveUsed(child, values);
-    }
-  };
-  window.easyMindMupClasses.Style = Style;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/toolbar.js b/plugins/easy_mindmup/assets/javascripts/toolbar.js
deleted file mode 100644
index 6d0e414..0000000
--- a/plugins/easy_mindmup/assets/javascripts/toolbar.js
+++ /dev/null
@@ -1,192 +0,0 @@
-(function () {
-  /**
-   * This Widget contains many buttons and other widgets located in top mindMup menu
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Toolbar(ysy) {
-    this.$menu = ysy.$menu;
-    this.ysy = ysy;
-    this.children = {};
-    this.init(ysy);
-  }
-
-  /**
-   *
-   * @param {MindMup} ysy
-   */
-  Toolbar.prototype.init = function (ysy) {
-    ysy.eventBus.register("TreeLoaded", $.proxy(this.redraw, this));
-    // this.initChildren(ysy);
-    // for (var id in this.subClasses) {
-    //   if (!this.subClasses.hasOwnProperty(id)) continue;
-    //   var child = new this.subClasses[id](ysy, this.$menu);
-    //   this.children[child.triggerName || id] = child;
-    // }
-    this.initChildren(ysy);
-    // _.each(ysy.view.toolbarChildren, function (child, id) {
-    //   child.init(this.$menu);
-    //   this.children[child.triggerName || id] = child;
-    // }, this);
-
-  };
-  Toolbar.prototype.initChildren = function (ysy) {
-    this.addChild(new OneSideButton(ysy, this.$menu));
-    this.addChild(new AllIconButton(ysy, this.$menu));
-    this.addChild(new StickyMenu(ysy, this.$menu));
-    this.addChild(new window.easyMindMupClasses.ExpandAllButton(ysy, this.$menu));
-    this.addChild(new window.easyMindMupClasses.ShowLinksButton(ysy, this.$menu));
-    this.addChild(new window.easyMindMupClasses.PrintButton(ysy, this.$menu));
-    this.addChild(new window.easyMindMupClasses.SaveButton(ysy, this.$menu));
-    this.addChild(new window.easyMindMupClasses.UndoButton(ysy, this.$menu));
-    this.addChild(new window.easyMindMupClasses.RedoButton(ysy, this.$menu))
-  };
-  Toolbar.prototype.addChild = function (button) {
-    /** @type {String} */
-    var id = button.triggerName || button.id;
-    this.children[id] = button;
-    this.redraw(id);
-  };
-  Toolbar.prototype._render = function () {
-    for (var key in this.children) {
-      if (!this.children.hasOwnProperty(key)) continue;
-      this.children[key]._render();
-    }
-  };
-  /**
-   *
-   * @param {String} [itemName]
-   */
-  Toolbar.prototype.redraw = function (itemName) {
-    if (!itemName) {
-      return this.ysy.repainter.redrawMe(this);
-    }
-    if (this.children[itemName]) {
-      var child = this.children[itemName];
-      this.ysy.repainter.redrawMe(child);
-    }
-  };
-  window.easyMindMupClasses.Toolbar = Toolbar;
-
-  //####################################################################################################################
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function OneSideButton(ysy, $parent) {
-    this.ysy = ysy;
-    this.$element = $parent.find(".toggleOneSide");
-  }
-
-  OneSideButton.prototype.triggerName = "toggleOneSide";
-  OneSideButton.prototype._render = function () {
-    var isActive = this.ysy.idea && this.ysy.idea.oneSideOn;
-    if (!isActive) isActive = false;
-    this.$element.find("a").toggleClass("active", isActive);
-  };
-  //####################################################################################################################
-  /**
-   * Button, which shows and hides icons onto nodes
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function AllIconButton(ysy, $parent) {
-    this.$element = null;
-    this.ysy = ysy;
-    this.init(ysy, $parent);
-  }
-
-  AllIconButton.prototype.id = "allIconButton";
-
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @return {AllIconButton}
-   */
-  AllIconButton.prototype.init = function (ysy, $parent) {
-    this.$element = $parent.find(".all-icon-toggler");
-    var self = this;
-    this.$element.click(function () {
-      ysy.settings.allIcons = !ysy.settings.allIcons;
-      if (ysy.settings.allIcons) {
-        ysy.$container.addClass("mindmup-node-icons--with_icons");
-        ysy.repainter.forceRedraw();
-      } else {
-        ysy.$container.find(".mindmup-node-icons-all").remove();
-        ysy.$container.removeClass("mindmup-node-icons--with_icons");
-      }
-      ysy.repainter.redrawMe(self);
-    });
-    return this;
-  };
-  AllIconButton.prototype._render = function () {
-    var isActive = this.ysy.settings.allIcons;
-    this.$element.find("a").toggleClass("active", isActive);
-  };
-  //####################################################################################################################
-  /**
-   * Makes top menu sticky
-   * @param {MindMup} ysy
-   * @param {jQuery} $parent
-   * @constructor
-   */
-  function StickyMenu(ysy, $parent) {
-    this.$element = null;
-    this.ysy = ysy;
-    this.isFixed = false;
-    this.init(ysy, $parent);
-  }
-
-  StickyMenu.prototype.id = "StickyMenu";
-
-  /**
-   *
-   * @param {MindMup} ysy
-   * @param {jQuery} $element
-   * @return {StickyMenu}
-   */
-  StickyMenu.prototype.init = function (ysy, $element) {
-    this.$element = $element;
-    this.$cont = $element.parent();
-    this.$placeholder = $("<div id='mindmup_menu_placeholder' style='height:0'></div>");
-    this.$cont.prepend(this.$placeholder);
-    this.$document = $(document);
-    this.offset = 0;
-    if (ysy.settings.easyRedmine) {
-      this.offset += $("#top-menu").outerHeight();
-    }
-    var self = this;
-    $(document).on("scroll", function () {
-      ysy.repainter.redrawMe(self);
-    });
-    ysy.eventBus.register("resize", function () {
-      ysy.repainter.redrawMe(self);
-    });
-    ysy.repainter.redrawMe(self);
-    return this;
-  };
-  StickyMenu.prototype._render = function () {
-    //ysy.log.debug("stickyMenu rendered");
-    var top = this.$document.scrollTop() + this.offset - this.$cont.offset().top;
-    if (top > 0) {
-      this.$element.css("width", this.$cont.width());
-      if (!this.isFixed) {
-        this.$element.css({position: "fixed", top: this.offset + "px"});
-        this.$placeholder.height(this.$element.outerHeight());
-        this.isFixed = true;
-      }
-    } else {
-      if (this.isFixed) {
-        this.$element.css({position: "relative", top: "0", width: ""});
-        this.$placeholder.height(0);
-        this.isFixed = false;
-      }
-    }
-    //var top = Math.max(this.$document.scrollTop() + this.offset - this.$cont.offset().top, 0);
-    //this.$element.css({transform: "translate(0," + Math.round(top) + "px)"});
-  };
-})();
diff --git a/plugins/easy_mindmup/assets/javascripts/utils.js b/plugins/easy_mindmup/assets/javascripts/utils.js
deleted file mode 100644
index e525b95..0000000
--- a/plugins/easy_mindmup/assets/javascripts/utils.js
+++ /dev/null
@@ -1,314 +0,0 @@
-(function () {
-  window.easyMindMupClasses = window.easyMindMupClasses || {};
-  /**
-   * Makes [Child] class ascendant of the [Parent] class
-   * @type {Function}
-   * @param {Object} Child
-   * @param {Object} Parent
-   * @return {Object}
-   */
-  window.easyMindMupClasses.extendClass = function (Child, Parent) {
-    var F = new Function();
-    F.prototype = Parent.prototype;
-    Child.prototype = new F();
-    Child.prototype.constructor = Child;
-    Child.superclass = Parent.prototype;
-    return Child;
-  };
-  /**
-   *
-   * @param {MindMup} ysy
-   * @constructor
-   */
-  function Util(ysy) {
-    this.ysy = ysy;
-    this._messages = [];
-    this._messageType = "notice";
-    this._lastMessageTime = 0;
-  }
-
-  /**
-   *
-   * @param {String} message
-   * @param {String} type - ["error","warning","notice"]
-   * @param {number} [delay] - in milliseconds - time to disappear
-   */
-  Util.prototype.showMessage = function (message, type, delay) {
-    var flash = $("#content").children(".flash");
-    var now = new Date().valueOf();
-    if (!flash.length || this._lastMessageTime + 60 * 1000 < now || this._messageType === "notice") {
-      window.showFlashMessage(type, message, delay);
-      this._lastMessageTime = now;
-      this._messages = [message];
-      this._messageType = type;
-      return;
-    }
-    if (type === "notice") return;
-    this._lastMessageTime = now;
-    this._messages.push(message);
-    if (type === "error" && this._messageType === "warning") {
-      window.showFlashMessage(type, this._messages.join("<br>"), delay);
-      this._messageType = type;
-    } else {
-      flash.find("span").html(this._messages.join("<br>"));
-    }
-  };
-  /**
-   *
-   * @param {String} id - HTML id of newly created modal
-   * @param {String} width - in percent "%" or in pixels "px"
-   * @return {jQuery}
-   */
-  Util.prototype.getModal = function (id, width) {
-    var $target = $("#" + id);
-    if ($target.length === 0) {
-      $target = $("<div id=" + id + ">");
-      $target.dialog({
-        width: width,
-        appendTo: document.body,
-        modal: true,
-        resizable: false,
-        dialogClass: 'modal'
-      });
-      $target.dialog("close");
-    }
-    return $target;
-  };
-  /**
-   * show modal with feature specific text and upgrade button
-   * @param {string} feature
-   */
-  Util.prototype.showUpgradeModal= function (feature) {
-    var ysy = this.ysy;
-    var $target = ysy.util.getModal("upgrade-modal", "auto");
-    var template = ysy.settings.templates.upgrade;
-    var freeLabels = ysy.settings.labels.free;
-    var obj = {
-      text: freeLabels.textNotAvailable,
-      href: freeLabels.buttonUpgradeHref
-    };
-    obj[feature] = true;
-    var rendered = Mustache.render(template, obj);
-    $target.html(rendered);
-    showModal("upgrade-modal");
-    $target.dialog({
-      buttons: [
-        {
-          id: "upgrade_button",
-          class: "button-1 button-positive",
-          text: freeLabels.buttonUpgrade,
-          click: function () {
-            var $link = $target.find("#upgrade_link");
-            //$link.show().click();
-            window.open($link.attr("href"), '_blank');
-            $target.dialog("close");
-          }
-        },
-        {
-          id: "close_button",
-          class: "button-2 button",
-          text: ysy.settings.labels.buttons.close,
-          click: function () {
-            $target.dialog("close");
-          }
-        }
-      ]
-    });
-    $target.parent().find("#upgrade_button").focus();
-  };
-  /**
-   *
-   * @param {String} text
-   * @param {String} char
-   * @return {boolean}
-   */
-  Util.prototype.startsWith = function (text, char) {
-    if (text.startsWith) {
-      return text.startsWith(char);
-    }
-    return text.charAt(0) === char;
-  };
-  /**
-   * Convert CamelCase to snake_case
-   * @param {String} text
-   * @return {string}
-   */
-  Util.prototype.toUnderscore = function (text) {
-    return text.replace(/([A-Z])/g, function ($1) {
-      return "_" + $1.toLowerCase();
-    });
-  };
-  Util.prototype.isEquivalent = function (a, b) {
-    var aProps = Object.getOwnPropertyNames(a);
-    var bProps = Object.getOwnPropertyNames(b);
-    if (aProps.length != bProps.length) {
-      return false;
-    }
-    for (var i = 0; i < aProps.length; i++) {
-      var propName = aProps[i];
-      if (a[propName] !== b[propName]) {
-        return false;
-      }
-    }
-    return true;
-  };
-  /**
-   * @callback TraverseCallback
-   * @param {ModelEntity} node
-   * @param {ModelEntity} [parent]
-   */
-  /**
-   * Execute [func] for every node in tree
-   * @param {ModelEntity} node
-   * @param {TraverseCallback} func
-   * @param {ModelEntity} [parent]
-   */
-  Util.prototype.traverse = function (node, func, parent) {
-    if (!node) return;
-    func(node, parent);
-    if (!node.ideas) return;
-    var ideas = _.values(node.ideas);
-    for (var i = 0; i < ideas.length; i++) {
-      this.traverse(ideas[i], func, node);
-    }
-  };
-  /**
-   * Similar to [traverse] but [func] is executed for children and then for the parent
-   * @param {ModelEntity} node
-   * @param {TraverseCallback} func
-   */
-  Util.prototype.backTraverse = function (node, func) {
-    if (!node) return;
-    if (node.ideas) {
-      var ideas = _.values(node.ideas);
-      for (var i = 0; i < ideas.length; i++) {
-        this.backTraverse(ideas[i], func);
-      }
-    }
-    func(node);
-  };
-  /**
-   *
-   * @param {ModelEntity} parent - regularly RootIdea
-   * @param {ModelEntity} target - node which parents have to be transformed by [func]
-   * @param {Function} func
-   * @return {boolean}
-   */
-  Util.prototype.forAllParents = function (parent, target, func) {
-    if (parent === target) return true;
-    if (!parent.ideas) return false;
-    var ideas = _.values(parent.ideas);
-    for (var i = 0; i < ideas.length; i++) {
-      var found = this.forAllParents(ideas[i], target, func);
-      if (found) {
-        func(parent);
-        return true;
-      }
-    }
-  };
-  /**
-   * Finds one node which satisfy [func], so func(node)===true
-   * @param {ModelEntity} node - usually RootIdea, but it can be called in subtrees
-   * @param {Function} func
-   * @return {ModelEntity}
-   */
-  Util.prototype.findWhere = function (node, func) {
-    if (func(node)) {
-      return node;
-    }
-    if (!node.ideas) return null;
-    var ideas = _.values(node.ideas);
-    for (var i = 0; i < ideas.length; i++) {
-      var result = this.findWhere(ideas[i], func);
-      if (result) return result;
-    }
-    return null;
-  };
-  /**
-   *
-   * @param {Object.<String, ModelEntity>} ideas
-   * @return {Array.<number>}
-   */
-  Util.prototype.getSortedRanks = function (ideas) {
-    var keys = _.chain(ideas).keys().map(parseFloat).value();
-    keys.sort(function (a, b) {
-      return a - b;
-    });
-    return keys;
-  };
-  /**
-   * Transforms the ranks by removing decimal ones and closes gaps between ranks. Order is not corrupted.
-   * @param {Array.<number>} ranks
-   * @return {Array.<number>}
-   */
-  Util.prototype.correctRanks = function (ranks) {
-    var firstPositive = _.findIndex(ranks, function (key) {
-      return key > 0;
-    });
-    var correctedRanks = [];
-    if (firstPositive < 0) firstPositive = 0;
-    // NEGATIVE
-    for (var i = 0; i < firstPositive; i++) {
-      correctedRanks.push(i - firstPositive);
-    }
-    // POSITIVE
-    for (i = firstPositive; i < ranks.length; i++) {
-      correctedRanks.push(i - firstPositive + 1);
-    }
-    return correctedRanks;
-  };
-  /**
-   *
-   * @param {Array.<{name:String,value:String}>} formData
-   * @return {Object}
-   */
-  Util.prototype.formToJson = function (formData) {
-    var result = {};
-    var prolong = function (result, split, value) {
-      var key = split.shift();
-      if (key === "") {
-        result.push(value);
-      } else {
-        if (split.length > 0) {
-          var next = split[0];
-          if (!result[key]) {
-            if (next === "") {
-              result[key] = [];
-            } else {
-              result[key] = {};
-            }
-          }
-          prolong(result[key], split, value);
-        } else {
-          result[key] = value;
-        }
-      }
-    };
-    for (var i = 0; i < formData.length; i++) {
-      var split = formData[i].name.split(/]\[|\[|]/);
-      if (split.length > 1) {
-        split.pop();
-      }
-      prolong(result, split, formData[i].value);
-    }
-    return result;
-  };
-  /**
-   * return project_id of entity
-   * @param {ModelEntity} parent
-   * @param {int} [ideaId]
-   */
-  Util.prototype.getEntityProjectId = function (parent, ideaId) {
-    if(!parent){
-      parent = this.ysy.idea.findParent(ideaId);
-    }
-    while (parent && parent.attr.entityType !== "project") {
-      parent = this.ysy.idea.findParent(parent.id);
-    }
-    if (parent) {
-      return this.ysy.getData(parent).id;
-    }
-    return null;
-  };
-  window.easyMindMupClasses.Util = Util;
-})();
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/javascripts/validator.js b/plugins/easy_mindmup/assets/javascripts/validator.js
deleted file mode 100644
index 8563b8e..0000000
--- a/plugins/easy_mindmup/assets/javascripts/validator.js
+++ /dev/null
@@ -1,107 +0,0 @@
-(function () {
-  /**
-   * contains methods, which is called by the code from mindmup/content.js and could prevent completion of this code
-   * by not returning true
-   * @param {MindMup} ysy
-   * @property {MindMup} ysy
-   * @constructor
-   */
-  function Validator(ysy) {
-    this.ysy = ysy;
-    this._removeConfirm = new RemoveConfirm(ysy);
-  }
-
-  Validator.prototype.changeParent = function (child, newParent) {
-    return !child.attr.nonEditable;
-  };
-  Validator.prototype.removeSubIdea = function (ideaId, eventOrigin, idea) {
-    if (!idea) {
-      var mainIdea = this.ysy.idea;
-      if (!mainIdea) return false;
-      idea = mainIdea.findSubIdeaById(ideaId);
-    }
-    if (!idea) return false;
-    if (idea.attr.nonEditable) return false;
-    return this._removeConfirm.removeIdea(idea);
-  };
-  Validator.prototype.paste = function (parent, newIdea) {
-    return !newIdea.attr.nonEditable;
-  };
-  Validator.prototype.nodeRename = function (idea) {
-    return !idea.attr.nonEditable;
-  };
-  Validator.prototype.validate = function (name /*, arg1, arg2, ... */) {
-    if (!this[name]) return true;
-    return this[name].apply(this, Array.prototype.slice.call(arguments, 1));
-  };
-  window.easyMindMupClasses.Validator = Validator;
-
-  //####################################################################################################################
-  /**
-   * @param {MindMup} ysy
-   * @property {MindMup} ysy
-   * @property {Array.<ModelEntity>} _removeStack
-   * @property {number} _timeout
-   * @property {boolean} _leaking - removes are not prevented (for short moment after passed confirm)
-   * @constructor
-   */
-  function RemoveConfirm(ysy) {
-    this.ysy = ysy;
-    this._removeStack = [];
-    this._timeout = 0;
-    this._leaking = false;
-  }
-
-  /**
-   *
-   * @param {ModelEntity} idea
-   * @return {boolean} - return boolean to know if removing idea should proceed or not
-   */
-  RemoveConfirm.prototype.removeIdea = function (idea) {
-    if (this._leaking) return true;
-    this._removeStack.push(idea);
-    var self = this;
-    if (!this._timeout) {
-      this._timeout = window.setTimeout(function () {
-        if (self._showConfirm()) {
-          self._deleteStacked();
-        } else {
-          self._removeStack = [];
-        }
-        self._timeout = 0;
-      }, 0);
-    }
-    return false;
-  };
-  /**
-   * Confirm is passed so now all stacked ideas has to be deleted
-   * @private
-   */
-  RemoveConfirm.prototype._deleteStacked = function () {
-    this._leaking = true;
-    var rootIdea = this.ysy.idea;
-    _.each(this._removeStack, /** @param {ModelEntity} idea*/ function (idea) {
-      rootIdea.removeSubIdea(idea.id);
-    });
-    this._leaking = false;
-    this._removeStack = [];
-  };
-  /**
-   * @return {boolean}
-   * @private
-   */
-  RemoveConfirm.prototype._showConfirm = function () {
-    if (this._removeStack.length === 0) return true;
-    if (this._removeStack.length === 1) {
-      var idea = this._removeStack[0];
-      return window.confirm(this.ysy.settings.labels.errors.warning_delete_node.replace("{{name}}", '"' + idea.title + '"'));
-    } else {
-      var list = "\n";
-      for (var i = 0; i < this._removeStack.length; i++) {
-        idea = this._removeStack[i];
-        list += "\u2022 " + idea.title + "\n";
-      }
-      return window.confirm(this.ysy.settings.labels.errors.warning_delete_nodes + list);
-    }
-  }
-})();
diff --git a/plugins/easy_mindmup/assets/stylesheets/easy_mindmup.css b/plugins/easy_mindmup/assets/stylesheets/easy_mindmup.css
deleted file mode 100644
index 4bb9515..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/easy_mindmup.css
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
-* = require mindmup
-* = require_self
-* = require easy_mindmup_sass.scss
-*/
-
-.mindmup_context_menu_item {
-  cursor: pointer;
-}
-
-.mindmup-reload-modal-errors li {
-  color: #cd0a0a;
-}
-
-.mindmup-last-modal-diffs li {
-  color: #bf993f;
-}
-
-.mindmup-node-icons {
-  position: absolute;
-  left: 0;
-  top: -10px;
-  white-space: nowrap;
-}
-
-.mindmup-node-icons--with_icons .mindmup-node-icons {
-  top: -18px;
-}
-
-.mindmup-node-icon {
-  height: 20px;
-  display: inline-block;
-  margin-right: 3px;
-  vertical-align: middle;
-}
-
-.mindmup-node-icon-avatar, .mindmup-legend-item-cont .gravatar {
-  height: 24px;
-  width: 24px;
-}
-
-.mindmup-node-icon-avatar .gravatar {
-  vertical-align: sub;
-}
-
-.mindmup-node-icon-avatar .gravatar,
-.mindmup-legend-item-cont .gravatar {
-  padding: 1px;
-  border: 1px solid #777;
-}
-
-.mindmup-legend-item-cont .gravatar {
-  margin-top: -7px;
-}
-
-.mindmup-node-icon-avatar .gravatar:hover,
-.mindmup-legend-item-cont .gravatar:hover {
-  transform: scale(2);
-  position: relative;
-  z-index: 5;
-}
-
-.mindmup-node-icon-milestone-diamond {
-  border-width: 4px;
-  border-style: solid;
-}
-
-#context-menu li:not(.folder) > ul {
-  display: none;
-}
-
-.controller-easy_wbs .easy-content-page {
-  transform: none !important;
-}
-
-.link-edit-widget {
-  display: none;
-  z-index: 999;
-  position: absolute;
-  padding: 10px;
-  background-color: white;
-  border: 1px solid #dd3e3a;
-  cursor: default;
-}
-
-.mindmup-legend-used {
-  margin-top: 10px;
-  display: inline-block;
-  color: rgba(66, 50, 26, 0.5);
-}
-
-.mindmup-legend-used-used--all, .mindmup-legend-used-all--used {
-  display: none;
-}
-
-.mindmup-legend-drag-overlay {
-  position: fixed;
-  top: 0;
-  left: 0;
-  z-index: 10000;
-  cursor: move;
-}
-
-.mindmup-legend-drag-avatar {
-  position: absolute;
-  z-index: 5;
-  height: 20px;
-  width: 20px;
-  margin-left: -12px;
-  margin-top: -12px;
-  border: 1px solid;
-}
-
-/*.mindmup__menu-save--tooltip {*/
-  /*display: inline-block;*/
-  /*color: green;*/
-  /*padding: 0 5px;*/
-/*}*/
-
-.mindmup__legend-container {
-  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 2px 2px rgba(0, 0, 0, 0.05);
-}
-
-.mindmup__menu {
-  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 2px 2px rgba(0, 0, 0, 0.05);
-}
-
-.mindmup-node-icon-is_edited {
-  margin-right: 1px;
-  margin-left: -10px;
-  vertical-align: middle;
-  border-radius: 5000px;
-  width: 20px;
-  height: 20px;
-  color: #ffffff;
-  background-color: #e50026;
-  line-height: 1.2;
-  font-size: 18px;
-  text-align: center;
-  display: inline-block;
-}
-
-.mindmup-node-icon-is_edited::before {
-  content: "!";
-  font-family: inherit;
-}
-
-.mindmup-node-icons-all {
-  display: inline-block;
-}
-
-.mindmup__node--filtered_out {
-  opacity: 0.2;
-}
-
-mindmup-sidebar {
-  position: absolute;
-  display: block;
-  top: 0;
-  right: 0;
-}
-
-.date-picker__date-wrap .input-append {
-  width: auto;
-  float: right;
-}
-
-.date-picker__date-wrap {
-  margin-bottom: 5px;
-  overflow: hidden;
-}
-
-easy-lookup .easy-lookup-values-wrapper {
-  height: auto;
-}
diff --git a/plugins/easy_mindmup/assets/stylesheets/easy_mindmup_sass.scss.erb b/plugins/easy_mindmup/assets/stylesheets/easy_mindmup_sass.scss.erb
deleted file mode 100644
index 366ff0d..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/easy_mindmup_sass.scss.erb
+++ /dev/null
@@ -1,37 +0,0 @@
-<% redmine_sass = false
-   ep_com = Redmine::Plugin.installed?(:easy_project_com)
- %>
-<% if ep_com %>
-@import "../../../easyproject/easy_plugins/easy_project_com/assets/stylesheets/scss/common_assets";
-<% else %>
-@import "../../../easyproject/easy_plugins/easy_extensions/assets/stylesheets/scss/common_assets";
-<% end %>
-@import "sass/mindmup_default_variables";
-@import "sass/mindmup_variables";
-@import "sass/mindmup_mixins";
-@import "sass/mindmup_frame";
-@import "sass/mindmup_icons";
-<% if redmine_sass %>
-@import "sass/mindmup_redmine";
-<% end %>
-@import "sass/mindmup_progress";
-@import "sass/mindmup_legend";
-@import "sass/mindmup_mapjs";
-@import "sass/mindmup_nodes";
-@import "sass/mindmup_schemes";
-@import "sass/mindmup_print";
-@import "sass/mindmup";
-
-.mindmup {
-  @import "sass/mindmup_sidebar";
-}
-
-<%if redmine_sass %>
-@include loadFontFace--non-rails('Material Icons', '../../fonts/EasyMaterialIcons-Regular', 'Material Icons', 'MaterialIcons-Regular', normal, normal);
-<% else %>
-<% if ep_com %>
-@include loadFontFace('Material Icons', '../plugin_assets/easy_mindmup/fonts/EasyMaterialIcons-Regular', 'Material Icons', 'MaterialIcons-Regular', normal, normal);
-<% else %>
-@include loadFontFace--non-rails('Material Icons', '../plugin_assets/easy_mindmup/fonts/EasyMaterialIcons-Regular', 'Material Icons', 'MaterialIcons-Regular', normal, normal);
-<% end %>
-<% end %>
diff --git a/plugins/easy_mindmup/assets/stylesheets/generated/easy_mindmup.css b/plugins/easy_mindmup/assets/stylesheets/generated/easy_mindmup.css
deleted file mode 100644
index e4b475f..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/generated/easy_mindmup.css
+++ /dev/null
@@ -1,3138 +0,0 @@
-body, html {
-  height: 100%;
-  /*overflow: hidden*/
-}
-
-#container, #floating-toolbar, #topbar, .dropdown-menu, .floating {
-  -moz-user-select: none;
-  -webkit-user-select: none;
-  -ms-user-select: none
-}
-
-#toolbarSocial {
-  margin-right: 20px
-}
-
-.logo {
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_32.png);
-  background-position: left center;
-  background-repeat: no-repeat;
-  width: 0;
-  height: 40px;
-  padding-left: 40px;
-  padding-top: 5px;
-  padding-bottom: 5px
-}
-
-#logo-img {
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_32.png);
-  background-position: left center;
-  background-repeat: no-repeat;
-  width: 40px;
-  height: 40px;
-  padding: 0;
-  margin-left: 50px
-}
-
-@media (max-width: 979px) {
-  .navbar-fixed-bottom, .navbar-fixed-top {
-    position: fixed;
-    margin-bottom: 0
-  }
-}
-
-@media (max-width: 767px) {
-  .navbar {
-    padding-left: 20px;
-    padding-right: 20px
-  }
-
-  body {
-    padding: 0
-  }
-}
-
-.span-toolbar {
-  width: 120px;
-  cursor: move
-}
-
-@media (max-width: 1024px) {
-  .hidden-tablet-landscape {
-    display: none !important
-  }
-}
-
-@media (max-width: 768px) {
-  .hidden-tablet-portrait {
-    display: none !important
-  }
-}
-
-@media (max-width: 320px) {
-  .hidden-phone-portrait {
-    display: none !important
-  }
-}
-
-@media (max-height: 320px) {
-  .form-horizontal .control-group {
-    margin-bottom: 5px
-  }
-
-  .hidden-phone-landscape {
-    display: none
-  }
-}
-
-@media (max-width: 400px) {
-  .map-changed .changed-phone-hidden {
-    display: none !important
-  }
-}
-
-@media (max-width: 1024px) {
-  .map-changed .changed-tablet-hidden {
-    display: none !important
-  }
-}
-
-@media screen {
-  #topbar .nav > li > a {
-    font-weight: 700
-  }
-}
-
-#floating-toolbar {
-  position: absolute;
-  top: 100px;
-  right: 10px;
-  z-index: 999;
-  border: 1px solid #08c;
-  border-radius: 9px
-}
-
-.android .visible-touch, .ios .visible-touch {
-  display: block !important
-}
-
-.android .hidden-touch, .ios .hidden-touch {
-  display: none !important
-}
-
-div.topbar-color-picker {
-  width: 127px
-}
-
-.topbar-color-picker .colorPicker-swatch {
-  width: 15px;
-  height: 15px
-}
-
-.android .colorPicker-swatch, .ios .colorPicker-swatch {
-  width: 30px;
-  height: 30px
-}
-
-.android .colorPicker-palette, .ios .colorPicker-palette {
-  width: 217px;
-  top: 55px;
-  left: 5px
-}
-
-.map-changed .hidden-map-changed, .map-unchanged .visible-map-changed {
-  display: none !important
-}
-
-#toolbarEdit .btn-group {
-  margin-left: 0
-}
-
-#toolbarEdit button {
-  margin-top: 5px;
-  width: 40px;
-  height: 32px
-}
-
-#toolbarEdit button.two {
-  width: 80px
-}
-
-#toolbarEdit button.three {
-  width: 120px
-}
-
-.ideaInput {
-  position: absolute;
-  z-index: 999;
-  background-color: #5FBF5F;
-  color: #FFF;
-  font-family: Helvetica, "Arial Unicode MS", sans-serif;
-  font-weight: 700;
-  font-size: 13px;
-  line-height: 13px;
-  text-align: center;
-  padding: 0
-}
-
-.center {
-  text-align: center
-}
-
-.ideaInput:focus {
-  outline: 0
-}
-
-.menulink {
-  margin-right: 20px;
-  margin-top: 10px
-}
-
-#gplus-share {
-  border: 0;
-  height: 16px;
-  background-image: url(//ssl.gstatic.com/images/icons/gplus-16.png);
-  background-position: left center;
-  background-repeat: no-repeat;
-  margin-left: 6px;
-  margin-right: 20px;
-  margin-top: 2px;
-  padding-right: 0
-}
-
-#modalDownload .modal-body {
-  text-align: center
-}
-
-#modalDownload .modal-body p {
-  text-align: left
-}
-
-#modalDownload img {
-  max-height: 300px;
-  max-width: 450px
-}
-
-.share {
-  width: 32px;
-  height: 32px;
-  display: inline-block;
-  margin: 5px;
-  cursor: pointer
-}
-
-.btn-inline {
-  border: 0;
-  background: 0 0;
-  margin-left: 5px;
-  margin-right: 5px
-}
-
-.colorPicker_hexWrap {
-  display: none
-}
-
-div.colorPicker-picker {
-  display: inline;
-  float: left;
-  background: 0 0
-}
-
-#modalImport input[type=file] {
-  opacity: 0;
-  position: absolute;
-  width: 0;
-  height: 0
-}
-
-.repo {
-  background-repeat: no-repeat;
-  background-position: left center;
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_16.png)
-}
-
-.repo-a {
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_16.png)
-}
-
-.repo-b {
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_gold_16.png)
-}
-
-.repo-p {
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_gold_private_16.png)
-}
-
-.repo-g {
-  background-image: url(//d1g6a398qq2djm.cloudfront.net/img/google_drive.png)
-}
-
-.repo-menuitem {
-  background-position: 14px center;
-  padding-left: 35px !important
-}
-
-a.repo {
-  margin-left: 5px
-}
-
-span.repo-a, span.repo-b, span.repo-g, span.repo-p {
-  padding-left: 16px
-}
-
-.dropdown-menu li a {
-  cursor: pointer
-}
-
-.visible-collapsed-toolbar {
-  display: none
-}
-
-.collapsed-toolbar .visible-collapsed-toolbar {
-  display: block !important
-}
-
-.collapsed-toolbar span.visible-collapsed-toolbar {
-  display: inline !important
-}
-
-.collapsed-toolbar .hidden-collapsed-toolbar {
-  display: none !important
-}
-
-.visible-row-split {
-  display: none
-}
-
-.row-split .visible-row-split {
-  display: block !important
-}
-
-.row-split span.visible-row-split {
-  display: inline !important
-}
-
-.row-split .hidden-row-split {
-  display: none !important
-}
-
-.visible-column-split {
-  display: none
-}
-
-.column-split .visible-column-split {
-  display: block !important
-}
-
-.column-split span.visible-column-split {
-  display: inline !important
-}
-
-.column-split .hidden-column-split {
-  display: none !important
-}
-
-#listBookmarks a .btn-inline {
-  margin-left: 15px
-}
-
-.gecko #listBookmarks a .btn-inline {
-  position: relative;
-  top: -17px;
-  left: 15px
-}
-
-.hidden-topbar #topbar .navbar-inner {
-  visibility: hidden
-}
-
-.column-split.hidden-topbar #topbar .navbar-inner, .hidden-topbar #topbar:hover .navbar-inner {
-  visibility: visible
-}
-
-.topbar-autohide {
-  display: inline
-}
-
-.hidden-topbar .topbar-autohide, span.topbar-fixed {
-  display: none
-}
-
-.hidden-topbar span.topbar-fixed {
-  display: inline
-}
-
-body.ipad {
-  margin: 1px
-}
-
-body.ios-wkwebview {
-  margin: 0;
-  padding: 0;
-  width: 100%
-}
-
-.image-render-visible {
-  display: none
-}
-
-.image-render .image-render-visible {
-  display: block
-}
-
-.image-render .image-render-hidden, .offline-disabled-hidden {
-  display: none
-}
-
-body.offline-enabled .offline-disabled-hidden {
-  display: block
-}
-
-#attachEditArea {
-  overflow: scroll;
-  outline: 0;
-  border: 1px solid #ccc;
-  padding: 4px;
-  margin: 10px;
-  box-sizing: content-box;
-  -webkit-box-shadow: rgba(0, 0, 0, .0745098) 0 1px 1px 0 inset;
-  box-shadow: rgba(0, 0, 0, .0745098) 0 1px 1px 0 inset;
-  border-radius: 3px;
-  background-color: #fff;
-  display: block;
-  clear: both
-}
-
-#modalAttachmentEditor .editor-topbar {
-  padding-right: 10px;
-  padding-left: 10px;
-  display: none
-}
-
-#modalAttachmentEditor.mm-editable .editor-topbar {
-  display: block
-}
-
-#modalAttachmentEditor .viewer-topbar {
-  margin-top: 5px;
-  margin-bottom: 5px;
-  padding-right: 10px;
-  padding-left: 10px;
-  height: 30px
-}
-
-#modalAttachmentEditor.mm-editable .viewer-topbar {
-  display: none
-}
-
-#modalAttachmentEditor button.close {
-  margin-left: 5px
-}
-
-#modalAttachmentEditor .editor-topbar > .btn-toolbar {
-  display: inline-block;
-  background-color: #eee;
-  width: 100%
-}
-
-#modalAttachmentEditor {
-  position: absolute;
-  height: 80%;
-  width: 80%;
-  left: 10%;
-  top: 10%;
-  padding: 5px;
-  z-index: 9999;
-  background-color: #eee;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  margin: 0
-}
-
-@media (max-width: 1200px) {
-  #modalAttachmentEditor {
-    width: 90%;
-    left: 5%;
-    top: 5%
-  }
-}
-
-#modalAttachmentEditor .dropdown-menu .btn-toolbar {
-  display: block
-}
-
-#modalAttachmentEditor .dropdown-menu .btn-toolbar .btn-group {
-  margin-top: 5px;
-  margin-left: 5px;
-  margin-right: 5px
-}
-
-.android #modalAttachmentEditor .btn-toolbar, .ios #modalAttachmentEditor .btn-toolbar {
-  margin-top: 5px;
-  margin-bottom: 5px;
-  padding-bottom: 10px
-}
-
-.android #modalAttachmentEditor, .ios #modalAttachmentEditor {
-  top: 0;
-  height: 60%
-}
-
-@media (max-height: 768px) {
-  .android #modalAttachmentEditor, .ios #modalAttachmentEditor {
-    height: 37%
-  }
-}
-
-.non-group .btn {
-  margin-left: 5px
-}
-
-#linkEditWidget {
-  display: none;
-  z-index: 999;
-  position: absolute;
-  padding: 10px
-}
-
-.alert a {
-  text-decoration: underline;
-  cursor: pointer
-}
-
-.alert a.btn {
-  text-decoration: none
-}
-
-input.noglow {
-  outline: 0;
-  border: none !important;
-  box-shadow: none !important;
-  cursor: pointer
-}
-
-.visible-map-source-a, .visible-map-source-b, .visible-map-source-g, .visible-map-source-n, .visible-map-source-p {
-  display: none
-}
-
-.map-source-a .visible-map-source-a, .map-source-b .visible-map-source-b, .map-source-g .visible-map-source-g, .map-source-n .visible-map-source-n, .map-source-p .visible-map-source-p {
-  display: inherit
-}
-
-@media (max-width: 1200px) {
-  .hidden-narrow-screen {
-    display: none
-  }
-}
-
-@media (max-width: 1600px) {
-  #optionalPane .hidden-narrow-screen {
-    display: none
-  }
-}
-
-.btn-xlarge {
-  padding: 18px 28px;
-  font-size: 40px;
-  line-height: normal;
-  -webkit-border-radius: 8px;
-  -moz-border-radius: 8px;
-  border-radius: 8px;
-  width: 250px;
-  height: 180px;
-  margin-left: 10px;
-  margin-bottom: 10px
-}
-
-@media (max-height: 320px) {
-  .btn-xlarge {
-    padding: 9px 14px;
-    font-size: 20px;
-    line-height: normal;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-    width: 230px;
-    height: 70px;
-    margin-left: 5px;
-    margin-bottom: 5px
-  }
-}
-
-@media (max-width: 320px) {
-  .btn-xlarge {
-    padding: 9px 14px;
-    font-size: 20px;
-    line-height: normal;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-    width: 230px;
-    height: 70px;
-    margin-left: 5px;
-    margin-bottom: 5px
-  }
-
-  #mainMenu > li > a {
-    padding-left: 0;
-    padding-right: 15px
-  }
-
-  #logo-img {
-    margin: 0;
-    padding-left: 5px;
-    padding-right: 0
-  }
-}
-
-@media (min-height: 640px) {
-  #modalKeyActions .modal-body {
-    min-height: 400px
-  }
-}
-
-#modalKeyActions .item a span {
-  padding-right: 10px
-}
-
-#modalKeyActions a {
-  cursor: pointer;
-  color: #000
-}
-
-#modalKeyActions div.item > a {
-  text-decoration: underline
-}
-
-.social {
-  display: inline-block !important;
-  padding-left: 2px !important;
-  padding-right: 2px !important;
-  margin-right: 2px !important;
-  cursor: pointer
-}
-
-#modalGoldLicense textarea {
-  width: 95%;
-  height: 200px
-}
-
-#modalIconEdit .file-drop-zone {
-  width: 150px;
-  height: 150px;
-  border: 1px dashed #000;
-  color: gray;
-  font-size: 7px;
-  text-align: center
-}
-
-#modalIconEdit .file-drop-zone img {
-  max-width: 150px;
-  max-height: 150px
-}
-
-#modalIconEdit {
-  z-index: 9999
-}
-
-.btn .export {
-  max-width: 24px
-}
-
-.btn .landscape {
-  transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
-  -webkit-transform: rotate(90deg)
-}
-
-#modalPDFExport form {
-  margin-top: 20px
-}
-
-.alert-error input {
-  background: 0 0;
-  margin: 0 0 2px;
-  color: #b94a48;
-  border: none !important;
-  outline: 0;
-  box-shadow: none !important;
-  width: 100%;
-  cursor: pointer
-}
-
-body .modal.huge {
-  width: 90%;
-  height: 80%;
-  left: 5%;
-  margin-left: auto;
-  margin-right: auto
-}
-
-#measuresSheet table {
-  background-color: #fff;
-  border: 1px solid #d4d4d4
-}
-
-#measuresSheet td {
-  text-align: right;
-  width: 20%
-}
-
-#measuresSheet th + th {
-  text-align: right
-}
-
-#measuresSheet table thead tr th {
-  border-bottom: 3px gray solid !important
-}
-
-#measuresSheet table tfoot tr th {
-  border-top: 3px gray solid !important
-}
-
-#measuresSheet table tbody th {
-  width: 30%
-}
-
-#measuresSheet form {
-  margin: 0 !important
-}
-
-#measuresSheet td:focus {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-  outline: #5b9dd9 auto
-}
-
-.measures-editor.error {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px red !important;
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px red !important;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px red !important;
-  outline: red auto thin !important
-}
-
-#measuresSheet .modal-footer a {
-  margin-right: 20px;
-  margin-left: 20px;
-  line-height: 30px
-}
-
-#optionalPane .input-append.navbar-form button {
-  margin-top: 5px !important
-}
-
-#measuresSheet {
-  margin: 5px;
-  border-left: 1px;
-  user-select: none;
-  -moz-user-select: none;
-  -webkit-user-select: none;
-  -ms-user-select: none
-}
-
-.table-container {
-  margin-right: 5px
-}
-
-.column-split .table-container {
-  margin-bottom: 45px
-}
-
-.show-active {
-  display: none
-}
-
-.mm-active .show-active {
-  display: initial
-}
-
-.black {
-  color: #000 !important
-}
-
-.activated-scene {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-  outline: #5b9dd9 auto
-}
-
-#storyboard {
-  user-select: none;
-  -moz-user-select: none;
-  -webkit-user-select: none;
-  -ms-user-select: none
-}
-
-.storyboard-container {
-  padding-left: 10px;
-  padding-right: 10px
-}
-
-.storyboard-scene {
-  display: inline-block;
-  max-height: 120px;
-  max-width: 160px;
-  min-height: 120px;
-  min-width: 160px;
-  overflow: hidden;
-  background-color: #fff;
-  border: 1px solid silver;
-  border-radius: 4px;
-  color: #000;
-  margin: 10px;
-  text-align: center;
-  cursor: move
-}
-
-.storyboard-scene-title {
-  display: table-cell;
-  vertical-align: middle;
-  white-space: pre-wrap;
-  font-weight: 700
-}
-
-.drag-shadow {
-  opacity: .5;
-  box-shadow: none;
-  outline: 0;
-  cursor: move;
-  z-index: 10;
-  position: relative
-}
-
-.potential-drop-left {
-  margin-left: 0;
-  margin-right: 20px
-}
-
-.potential-drop-right {
-  margin-left: 20px;
-  margin-right: 0
-}
-
-#splittable {
-  width: 100%;
-  height: calc(100% - 41px);
-  margin-top: 41px;
-  -webkit-tap-highlight-color: transparent
-}
-
-.hidden-topbar:not(.column-split) > #splittable {
-  height: 100%;
-  margin-top: 0
-}
-
-.ios-wkwebview > #splittable {
-  width: 100%;
-  height: calc(100%);
-  margin-top: 0
-}
-
-.ios-wkwebview {
-  -webkit-tap-highlight-color: transparent
-}
-
-.splittable-optional .navbar {
-  width: 100%;
-  margin-bottom: 0
-}
-
-.splittable-optional .content {
-  overflow: scroll;
-  height: calc(100% - 41px)
-}
-
-.ios-wkwebview .splittable-optional .content {
-  overflow: scroll;
-  height: 100%
-}
-
-.splittable-primary {
-  outline: #d4d4d4 solid 1px
-}
-
-.splittable-optional {
-  display: none;
-  outline: #d4d4d4 solid 1px
-}
-
-.column-split .splittable-primary {
-  float: left;
-  height: 100%;
-  overflow: scroll;
-  width: 50%
-}
-
-.column-split .splittable-optional {
-  float: right;
-  height: 100%;
-  width: 50%;
-  display: block
-}
-
-.splittable-primary {
-  height: 100%;
-  width: 100%
-}
-
-.row-split .splittable-primary {
-  height: 50%;
-  overflow: scroll;
-  width: 100%
-}
-
-.row-split .splittable-optional {
-  height: 50%;
-  width: 100%;
-  display: block
-}
-
-#optionalPane {
-  background-color: #f5f5f5;
-  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, .1);
-  -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, .1);
-  box-shadow: 0 1px 10px rgba(0, 0, 0, .1)
-}
-
-.splittable-optional .content-container {
-  height: 100%
-}
-
-.pull-middle {
-  display: table;
-  height: 100%
-}
-
-.pull-middle > div {
-  display: table-cell;
-  vertical-align: middle;
-  padding-left: 20%;
-  padding-right: 20%
-}
-
-.ios-menu-toggle-container {
-  position: absolute;
-  height: 90px;
-  width: 75px;
-  top: calc(100% - 90px);
-  left: 0;
-  overflow: hidden;
-  z-index: 999
-}
-
-.ios-corner-icon-container {
-  position: absolute;
-  height: 100px;
-  width: 75px;
-  top: 5;
-  left: -11px;
-  border: 1px solid #22AAE0;
-  background-color: #FFF;
-  border-radius: 5px;
-  box-shadow: 2px 2px 1px rgba(104, 104, 104, .8)
-}
-
-.ios-menu-toggle {
-  position: absolute;
-  top: 5;
-  left: 12;
-  height: 73px;
-  width: 65px
-}
-
-.ios-toolbar {
-  position: absolute;
-  box-shadow: 0 -1px 0 #22AAE0;
-  background-color: rgba(255, 255, 255, .85);
-  top: calc(100% - 80px);
-  left: 65px;
-  width: calc(100% - 65px);
-  height: 80px;
-  z-index: 998;
-  overflow: scroll
-}
-
-.ios-icon-label {
-  position: absolute;
-  font-family: Helvetica, "Arial Unicode MS", sans-serif;
-  font-size: 8pt;
-  color: #22AAE0;
-  font-weight: 400;
-  text-align: center;
-  line-height: 1.2;
-  top: calc(100% - 22px);
-  width: 50px;
-  left: 5px;
-  height: 22px
-}
-
-.ios-toolbar-item {
-  display: inline-block;
-  position: relative;
-  top: 0;
-  height: 75px;
-  width: 60px
-}
-
-.ios-toolbar-icon {
-  position: absolute;
-  left: 10px;
-  top: 8px;
-  height: 40px;
-  width: 40px
-}
-
-.ios-modal {
-  z-index: 1090;
-  position: absolute;
-  overflow: hidden;
-  left: 0;
-  top: 0;
-  height: 100%;
-  width: 100%;
-  background-color: rgba(255, 255, 255, .85)
-}
-
-.ios-modal-close {
-  position: absolute;
-  top: 20;
-  left: calc(100% - 45px);
-  height: 40px;
-  width: 40px
-}
-
-.ios-modal-title {
-  position: absolute;
-  left: 45px;
-  top: 30px;
-  height: 40px;
-  width: calc(100% - 90px);
-  text-align: center;
-  font-family: Helvetica, "Arial Unicode MS", sans-serif;
-  font-size: 12pt;
-  color: #22AAE0;
-  font-weight: 700;
-  line-height: 1.2
-}
-
-.ios-modal-content {
-  z-index: 1095;
-  position: absolute;
-  top: 80px;
-  height: calc(100% - 75px);
-  overflow-x: hidden;
-  overflow-y: auto;
-  background-color: #FFF;
-  border: 1px solid #22AAE0;
-  border-radius: 5px;
-  box-shadow: 2px 2px 1px rgba(104, 104, 104, .8)
-}
-
-.ios-color-selector {
-  display: inline-block;
-  box-shadow: 1px 1px 3px rgba(104, 104, 104, .7)
-}
-
-.ios-color-palette {
-  display: block;
-  text-align: center
-}
-
-@media (min-width: 601px) {
-  .ios-modal-content {
-    left: calc(50% - 300px);
-    width: 600px
-  }
-
-  .ios-color-palette {
-    margin: 20px 50px
-  }
-
-  .ios-color-selector {
-    margin: 20px;
-    height: 80px;
-    width: 80px;
-    border-radius: 40px
-  }
-}
-
-@media (max-width: 600px) {
-  .ios-modal-content {
-    left: calc(50% - 150px);
-    width: 300px
-  }
-
-  .ios-color-palette {
-    margin: 10px 20px
-  }
-
-  .ios-color-selector {
-    margin: 10px;
-    height: 40px;
-    width: 40px;
-    border-radius: 20px
-  }
-}
-
-.collaborator-list-container {
-  max-height: 200px;
-  overflow-y: scroll;
-  padding-top: 10px
-}
-
-.collaborator-list-container td {
-  cursor: pointer
-}
-
-.collaborator-list-container table {
-  margin-bottom: 0
-}
-
-.mm-collaborator {
-  position: absolute;
-  width: 32px;
-  height: 32px;
-  border: 3px solid transparent;
-  border-radius: 20px;
-  transform: translate(5px, 5px);
-  min-width: 30px
-}
-
-.collab-name {
-  overflow-x: hidden;
-  max-width: 50px;
-  white-space: nowrap
-}
-
-.collab-name a {
-  line-height: 30px
-}
-
-.collab-photo {
-  width: 30px
-}
-
-.collab-photo img {
-  width: 30px;
-  height: 30px;
-  float: left;
-  margin-right: 10px;
-  border: 2px solid transparent;
-  border-radius: 20px
-}
-
-#floating-collaborators {
-  position: absolute;
-  top: 100px;
-  left: 10px;
-  z-index: 999;
-  border: 1px solid #08c;
-  border-radius: 9px
-}
-
-.visible-collaboration-toolbar {
-  display: none
-}
-
-.map-source-c.collaboration-toolbar .visible-collaboration-toolbar {
-  display: initial !important
-}
-
-.collaboration-toolbar .hidden-collaboration-toolbar {
-  display: none !important
-}
-
-.mm-has-collaborators .hidden-has-collaborators, .visible-has-collaborators {
-  display: none
-}
-
-.mm-has-collaborators .visible-has-collaborators {
-  display: block
-}
-
-.visible-collaboration-mute-speech {
-  display: none
-}
-
-.collaboration-mute-speech .visible-collaboration-mute-speech {
-  display: initial !important
-}
-
-.collaboration-mute-speech .hidden-collaboration-mute-speech {
-  display: none !important
-}
-
-.btn-share {
-  margin-left: 10px;
-  margin-right: 10px
-}
-
-.mm-icon-gmail {
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNDU1NTUgMzMwOTciPg0KIDxnPg0KICA8cGF0aCBmaWxsPSIjRTc1QTREIiBkPSJNNDE2MDggMjUwYzIwMzAsMCAzNjkxLDE2NjEgMzY5MSwzNjkxbDAgMTA3MCAtNTEyOCAzNjYzIC0xNzQ1OCAxMjAyNiAtMTc0NTggLTEyMTQ4IDAgMjQyOTUgLTEzMTQgMGMtMjAzMCwwIC0zNjkxLC0xNjYxIC0zNjkxLC0zNjkxbDAgLTI1MjE0YzAsLTIwMzAgMTY2MSwtMzY5MSAzNjkxLC0zNjkxbDE4NzcyIDEzOTE4IDE4ODk0IC0xMzkxOHoiLz4NCiAgPHBvbHlnb24gZmlsbD0iI0U3RTRENyIgcG9pbnRzPSI1MjU1LDg1NTIgNTI1NSwzMjg0NyA0MDE3MiwzMjg0NyA0MDE3Miw4Njc0IDIyNzEzLDIwNzAwICIvPg0KICA8cG9seWdvbiBmaWxsPSIjQjhCN0FFIiBwb2ludHM9IjUyNTUsMzI4NDcgMjI3MTMsMjA3MDAgMjI2MzQsMjA2NDQgNTI1NSwzMjU4MCAiLz4NCiAgPHBvbHlnb24gZmlsbD0iI0I3QjZBRCIgcG9pbnRzPSI0MDE3Miw4Njc0IDQwMTgyLDMyODQ3IDIyNzEzLDIwNzAwICIvPg0KICA8cGF0aCBmaWxsPSIjQjIzOTJGIiBkPSJNNDUyOTkgNTAxMWw2IDI0MTQ4Yy04OCwyNjg0IC0xMjUxLDM2NDIgLTUxMjMsMzY4N2wtMTAgLTI0MTczIDUxMjggLTM2NjN6Ii8+DQogIDxwb2x5Z29uIGZpbGw9IiNGN0Y1RUQiIHBvaW50cz0iMzk0MSwyNTAgMjI3MTMsMTQxNjggNDE2MDgsMjUwICIvPg0KIDwvZz4NCjwvc3ZnPg0K);
-  padding: 15px 9px;
-  background-position: center center;
-  background-repeat: no-repeat
-}
-
-.mm-icon-gdrive {
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iNTA5LjA4bW0iIGhlaWdodD0iNDQwLjk3bW0iIHZlcnNpb249IjEuMSIgc3R5bGU9InNoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247IHRleHQtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgaW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTsgZmlsbC1ydWxlOmV2ZW5vZGQ7IGNsaXAtcnVsZTpldmVub2RkIg0Kdmlld0JveD0iMCAwIDEzMzE1NiAxMTUzNDEiDQogeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KIDxkZWZzPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgPCFbQ0RBVEFbDQogICAgLmZpbDIge2ZpbGw6IzExQTg2MX0NCiAgICAuZmlsMCB7ZmlsbDojMzc3N0UzfQ0KICAgIC5maWwxIHtmaWxsOiNGRkNGNjN9DQogICBdXT4NCiAgPC9zdHlsZT4NCiA8L2RlZnM+DQogPGcgaWQ9IkxpdmVsbG9feDAwMjBfMSI+DQogIDxtZXRhZGF0YSBpZD0iQ29yZWxDb3JwSURfMENvcmVsLUxheWVyIi8+DQogIDxwb2x5Z29uIGNsYXNzPSJmaWwwIiBwb2ludHM9IjIyMTk0LDExNTM0MSA0NDM4NSw3Njg5NCAxMzMxNTYsNzY4OTQgMTEwOTYzLDExNTM0MSAiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImZpbDEiIHBvaW50cz0iODg3NzIsNzY4OTQgMTMzMTU2LDc2ODk0IDg4NzcyLDAgNDQzODUsMCAiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImZpbDIiIHBvaW50cz0iMCw3Njg5NCAyMjE5NCwxMTUzNDEgNjY1NzgsMzg0NDcgNDQzODUsMCAiLz4NCiA8L2c+DQo8L3N2Zz4=);
-  padding: 15px 9px;
-  background-position: center center;
-  background-repeat: no-repeat;
-  background-size: 100% 100%
-}
-
-#collaboratorSpeechBubble {
-  position: absolute;
-  z-index: 2;
-  top: 100px;
-  left: 20px
-}
-
-#collaboratorSpeechBubble img {
-  width: 60px;
-  height: 60px;
-  border-radius: 60px;
-  border: 2px solid transparent;
-  box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-  cursor: pointer
-}
-
-#collaboratorSpeechBubble img:hover {
-  box-shadow: 0 5px 10px rgba(0, 0, 0, .5)
-}
-
-.speech-bubble-inner {
-  max-width: 300px;
-  max-height: 100px;
-  min-width: 150px;
-  overflow: hidden
-}
-
-.speech-bubble-title {
-  max-width: 300px;
-  white-space: nowrap;
-  overflow: hidden
-}
-
-.icon-volume-off {
-  margin-left: 3px;
-  margin-right: 5px
-}
-
-.hidden-topbar #mainMenu .dropdown-menu {
-  margin-top: 0
-}
-
-.mapjs-node {
-  margin: 0;
-  padding: 7px;
-  border-radius: 10px;
-  border: 1px solid #777;
-  /*box-shadow: 5px 5px 5px rgba(204, 204, 204, .8);*/
-  z-index: 3;
-  user-select: none;
-  -moz-user-select: none;
-  -webkit-user-select: none;
-  -ms-user-select: none;
-  background-color: #E0E0E0;
-  color: #4F4F4F;
-  cursor: pointer;
-  font-family: Helvetica, "Arial Unicode MS", sans-serif;
-  font-weight: 700;
-  font-size: 12px
-}
-
-.mapjs-add-link {
-  cursor: crosshair
-}
-
-.mapjs-add-link .mapjs-node {
-  cursor: alias
-}
-
-.mapjs-node span {
-  white-space: pre-wrap;
-  text-align: center;
-  line-height: 150%;
-  display: block;
-  max-width: 146px;
-  min-height: 1.5em;
-  min-width: 1em;
-  outline: 0;
-  cursor: pointer
-}
-
-.mapjs-node span[contenteditable=true] {
-  user-select: text;
-  -moz-user-select: text;
-  -webkit-user-select: text;
-  -ms-user-select: text;
-  cursor: auto
-}
-
-.mapjs-node.activated {
-  outline: 0;
-  border: 3px dotted #2E9AFE;
-  margin: -2px
-}
-
-.mapjs-node:focus {
-  outline: 0
-}
-
-.mapjs-node.selected {
-  outline: 0;
-  /*box-shadow: 5px 5px 5px #000;*/
-  z-index: 4
-}
-
-.mapjs-node.dragging {
-  opacity: .4;
-  z-index: 5
-}
-
-/*.mapjs-node.collapsed {*/
-/*box-shadow: 3px 3px 0 #A0A0A0, 4px 4px 0 #333, 6px 6px 0 #707070, 7px 7px 0 #222*/
-/*}*/
-
-/*.mapjs-node.collapsed.selected {*/
-/*box-shadow: 4px 4px 0 #A0A0A0, 5px 5px 0 #333, 8px 8px 0 #707070, 9px 9px 0 #222, 12px 12px 5px #000*/
-/*}*/
-
-/*.mapjs-node[mapjs-level="1"] {*/
-/*background-color: #22AAE0*/
-/*}*/
-
-/*.mapjs-node[mapjs-level="1"].activated {*/
-/*border: 3px dotted #E0E0E0*/
-/*}*/
-
-.mapjs-node.droppable {
-  outline: 0;
-  border: 3px dashed #EF6F6F;
-  margin: -2px
-}
-
-.mapjs-node-light {
-  color: #4F4F4F
-}
-
-.mapjs-node-dark {
-  color: #EEE
-}
-
-.mapjs-node-white {
-  color: #000
-}
-
-.mapjs-label {
-  left: -.75em;
-  position: absolute;
-  bottom: -1em;
-  opacity: .8;
-  background-color: #f13333;
-  padding: 1px 2px;
-  border: 1px solid #fff;
-  -webkit-border-radius: 9px;
-  -moz-border-radius: 9px;
-  border-radius: 9px;
-  display: inline-block;
-  font-size: 10px;
-  font-weight: 700;
-  line-height: 14px;
-  color: #fff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
-  white-space: nowrap;
-  vertical-align: baseline
-}
-
-.mapjs-hyperlink {
-  right: -.75em;
-  position: absolute;
-  bottom: -.75em;
-  background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoNCgkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQoNCjxwYXRoIHN0eWxlPSJmaWxsOmJsYWNrIiBkPSJNMTU2LjIyNiwxOTkuNjc5YzcuNTQxLTcuNTQsMTUuOTAyLTEzLjc1NywyNC43OTQtMTguNjU5YzQ5LjU1Ni0yNy4zMTgsMTEzLjExNy0xMi43ODgsMTQ0Ljk3LDM1LjUxOA0KDQoJbC0zOC41NDcsMzguNTQ3Yy0xMS4wNTktMjUuMjI3LTM4LjUtMzkuNTY1LTY1LjgxMy0zMy40NTZjLTEwLjI4MiwyLjMtMjAuMDU0LDcuNDI3LTI4LjAzOSwxNS40MTNsLTczLjg5OCw3My44OTYNCg0KCWMtMjIuNDMzLDIyLjQzMy0yMi40MzIsNTguOTM2LDAuMDAyLDgxLjM2OWMyMi40MzMsMjIuNDMzLDU4LjkzNSwyMi40MzMsODEuMzY4LDBsMjIuNzgtMjIuNzc5DQoNCgljMjAuNzEsOC4yMTcsNDIuOTM4LDExLjUwOCw2NC44NjIsOS44NjNsLTUwLjI3OCw1MC4yNzhjLTQzLjEwNSw0My4xMDUtMTEyLjk5MSw0My4xMDUtMTU2LjA5NiwwDQoNCgljLTQzLjEwNS00My4xMDQtNDMuMTA2LTExMi45OTEtMC4wMDEtMTU2LjA5NkwxNTYuMjI2LDE5OS42Nzl6IE0yNzMuNTc0LDgyLjMzbC01MC4yNzgsNTAuMjc4DQoNCgljMjEuOTI4LTEuNjQzLDQ0LjE1MiwxLjY0OCw2NC44NjMsOS44NjVsMjIuNzc5LTIyLjc4YzIyLjQzNC0yMi40MzQsNTguOTM2LTIyLjQzNCw4MS4zNywwYzIyLjQzNCwyMi40MzQsMjIuNDM0LDU4LjkzNiwwLDgxLjM3DQoNCglsLTczLjg5Nyw3My44OTVjLTIyLjUwMSwyMi41MDEtNTkuMDYxLDIyLjMxMS04MS4zNjgsMGMtNS4yMDItNS4yMDEtOS42OTQtMTEuNjc4LTEyLjQ4NC0xOC4wNGwtMzguNTQ2LDM4LjU0Ng0KDQoJYzQuMDQ5LDYuMTQyLDguMjYxLDExLjQ1MywxMy42NjYsMTYuODU4YzEzLjk0OSwxMy45NSwzMS42OTgsMjQuMzM5LDUyLjExNywyOS4yNTFjMjYuNDY2LDYuMzcsNTQuODIzLDIuODM5LDc5LjE4NS0xMC41OTINCg0KCWM4Ljg5Mi00LjkwMywxNy4yNTQtMTEuMTE5LDI0Ljc5NC0xOC42NTlsNzMuODk2LTczLjg5NWM0My4xMDUtNDMuMTA1LDQzLjEwNS0xMTIuOTkxLDAuMDAxLTE1Ni4wOTcNCg0KCUMzODYuNTY2LDM5LjIyNSwzMTYuNjgsMzkuMjI1LDI3My41NzQsODIuMzN6Ii8+DQo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAsLTIwKSIgc3R5bGU9ImZpbGw6IzAwOUFDRCI+DQo8cGF0aCAgZD0iTTE1Ni4yMjYsMTk5LjY3OWM3LjU0MS03LjU0LDE1LjkwMi0xMy43NTcsMjQuNzk0LTE4LjY1OWM0OS41NTYtMjcuMzE4LDExMy4xMTctMTIuNzg4LDE0NC45NywzNS41MTgNCg0KCWwtMzguNTQ3LDM4LjU0N2MtMTEuMDU5LTI1LjIyNy0zOC41LTM5LjU2NS02NS44MTMtMzMuNDU2Yy0xMC4yODIsMi4zLTIwLjA1NCw3LjQyNy0yOC4wMzksMTUuNDEzbC03My44OTgsNzMuODk2DQoNCgljLTIyLjQzMywyMi40MzMtMjIuNDMyLDU4LjkzNiwwLjAwMiw4MS4zNjljMjIuNDMzLDIyLjQzMyw1OC45MzUsMjIuNDMzLDgxLjM2OCwwbDIyLjc4LTIyLjc3OQ0KDQoJYzIwLjcxLDguMjE3LDQyLjkzOCwxMS41MDgsNjQuODYyLDkuODYzbC01MC4yNzgsNTAuMjc4Yy00My4xMDUsNDMuMTA1LTExMi45OTEsNDMuMTA1LTE1Ni4wOTYsMA0KDQoJYy00My4xMDUtNDMuMTA0LTQzLjEwNi0xMTIuOTkxLTAuMDAxLTE1Ni4wOTZMMTU2LjIyNiwxOTkuNjc5eiBNMjczLjU3NCw4Mi4zM2wtNTAuMjc4LDUwLjI3OA0KDQoJYzIxLjkyOC0xLjY0Myw0NC4xNTIsMS42NDgsNjQuODYzLDkuODY1bDIyLjc3OS0yMi43OGMyMi40MzQtMjIuNDM0LDU4LjkzNi0yMi40MzQsODEuMzcsMGMyMi40MzQsMjIuNDM0LDIyLjQzNCw1OC45MzYsMCw4MS4zNw0KDQoJbC03My44OTcsNzMuODk1Yy0yMi41MDEsMjIuNTAxLTU5LjA2MSwyMi4zMTEtODEuMzY4LDBjLTUuMjAyLTUuMjAxLTkuNjk0LTExLjY3OC0xMi40ODQtMTguMDRsLTM4LjU0NiwzOC41NDYNCg0KCWM0LjA0OSw2LjE0Miw4LjI2MSwxMS40NTMsMTMuNjY2LDE2Ljg1OGMxMy45NDksMTMuOTUsMzEuNjk4LDI0LjMzOSw1Mi4xMTcsMjkuMjUxYzI2LjQ2Niw2LjM3LDU0LjgyMywyLjgzOSw3OS4xODUtMTAuNTkyDQoNCgljOC44OTItNC45MDMsMTcuMjU0LTExLjExOSwyNC43OTQtMTguNjU5bDczLjg5Ni03My44OTVjNDMuMTA1LTQzLjEwNSw0My4xMDUtMTEyLjk5MSwwLjAwMS0xNTYuMDk3DQoNCglDMzg2LjU2NiwzOS4yMjUsMzE2LjY4LDM5LjIyNSwyNzMuNTc0LDgyLjMzeiIvPg0KPC9nPg0KDQo8L3N2Zz4NCg0K);
-  width: 2em;
-  height: 2em;
-  background-size: 2em;
-  background-repeat: no-repeat no-repeat
-}
-
-.mapjs-hyperlink:hover {
-  background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoNCgkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQoNCjxwYXRoIHN0eWxlPSJmaWxsOmJsYWNrIiBkPSJNMTU2LjIyNiwxOTkuNjc5YzcuNTQxLTcuNTQsMTUuOTAyLTEzLjc1NywyNC43OTQtMTguNjU5YzQ5LjU1Ni0yNy4zMTgsMTEzLjExNy0xMi43ODgsMTQ0Ljk3LDM1LjUxOA0KDQoJbC0zOC41NDcsMzguNTQ3Yy0xMS4wNTktMjUuMjI3LTM4LjUtMzkuNTY1LTY1LjgxMy0zMy40NTZjLTEwLjI4MiwyLjMtMjAuMDU0LDcuNDI3LTI4LjAzOSwxNS40MTNsLTczLjg5OCw3My44OTYNCg0KCWMtMjIuNDMzLDIyLjQzMy0yMi40MzIsNTguOTM2LDAuMDAyLDgxLjM2OWMyMi40MzMsMjIuNDMzLDU4LjkzNSwyMi40MzMsODEuMzY4LDBsMjIuNzgtMjIuNzc5DQoNCgljMjAuNzEsOC4yMTcsNDIuOTM4LDExLjUwOCw2NC44NjIsOS44NjNsLTUwLjI3OCw1MC4yNzhjLTQzLjEwNSw0My4xMDUtMTEyLjk5MSw0My4xMDUtMTU2LjA5NiwwDQoNCgljLTQzLjEwNS00My4xMDQtNDMuMTA2LTExMi45OTEtMC4wMDEtMTU2LjA5NkwxNTYuMjI2LDE5OS42Nzl6IE0yNzMuNTc0LDgyLjMzbC01MC4yNzgsNTAuMjc4DQoNCgljMjEuOTI4LTEuNjQzLDQ0LjE1MiwxLjY0OCw2NC44NjMsOS44NjVsMjIuNzc5LTIyLjc4YzIyLjQzNC0yMi40MzQsNTguOTM2LTIyLjQzNCw4MS4zNywwYzIyLjQzNCwyMi40MzQsMjIuNDM0LDU4LjkzNiwwLDgxLjM3DQoNCglsLTczLjg5Nyw3My44OTVjLTIyLjUwMSwyMi41MDEtNTkuMDYxLDIyLjMxMS04MS4zNjgsMGMtNS4yMDItNS4yMDEtOS42OTQtMTEuNjc4LTEyLjQ4NC0xOC4wNGwtMzguNTQ2LDM4LjU0Ng0KDQoJYzQuMDQ5LDYuMTQyLDguMjYxLDExLjQ1MywxMy42NjYsMTYuODU4YzEzLjk0OSwxMy45NSwzMS42OTgsMjQuMzM5LDUyLjExNywyOS4yNTFjMjYuNDY2LDYuMzcsNTQuODIzLDIuODM5LDc5LjE4NS0xMC41OTINCg0KCWM4Ljg5Mi00LjkwMywxNy4yNTQtMTEuMTE5LDI0Ljc5NC0xOC42NTlsNzMuODk2LTczLjg5NWM0My4xMDUtNDMuMTA1LDQzLjEwNS0xMTIuOTkxLDAuMDAxLTE1Ni4wOTcNCg0KCUMzODYuNTY2LDM5LjIyNSwzMTYuNjgsMzkuMjI1LDI3My41NzQsODIuMzN6Ii8+DQo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAsLTIwKSIgc3R5bGU9ImZpbGw6IzAwQkZGRiI+DQo8cGF0aCAgZD0iTTE1Ni4yMjYsMTk5LjY3OWM3LjU0MS03LjU0LDE1LjkwMi0xMy43NTcsMjQuNzk0LTE4LjY1OWM0OS41NTYtMjcuMzE4LDExMy4xMTctMTIuNzg4LDE0NC45NywzNS41MTgNCg0KCWwtMzguNTQ3LDM4LjU0N2MtMTEuMDU5LTI1LjIyNy0zOC41LTM5LjU2NS02NS44MTMtMzMuNDU2Yy0xMC4yODIsMi4zLTIwLjA1NCw3LjQyNy0yOC4wMzksMTUuNDEzbC03My44OTgsNzMuODk2DQoNCgljLTIyLjQzMywyMi40MzMtMjIuNDMyLDU4LjkzNiwwLjAwMiw4MS4zNjljMjIuNDMzLDIyLjQzMyw1OC45MzUsMjIuNDMzLDgxLjM2OCwwbDIyLjc4LTIyLjc3OQ0KDQoJYzIwLjcxLDguMjE3LDQyLjkzOCwxMS41MDgsNjQuODYyLDkuODYzbC01MC4yNzgsNTAuMjc4Yy00My4xMDUsNDMuMTA1LTExMi45OTEsNDMuMTA1LTE1Ni4wOTYsMA0KDQoJYy00My4xMDUtNDMuMTA0LTQzLjEwNi0xMTIuOTkxLTAuMDAxLTE1Ni4wOTZMMTU2LjIyNiwxOTkuNjc5eiBNMjczLjU3NCw4Mi4zM2wtNTAuMjc4LDUwLjI3OA0KDQoJYzIxLjkyOC0xLjY0Myw0NC4xNTIsMS42NDgsNjQuODYzLDkuODY1bDIyLjc3OS0yMi43OGMyMi40MzQtMjIuNDM0LDU4LjkzNi0yMi40MzQsODEuMzcsMGMyMi40MzQsMjIuNDM0LDIyLjQzNCw1OC45MzYsMCw4MS4zNw0KDQoJbC03My44OTcsNzMuODk1Yy0yMi41MDEsMjIuNTAxLTU5LjA2MSwyMi4zMTEtODEuMzY4LDBjLTUuMjAyLTUuMjAxLTkuNjk0LTExLjY3OC0xMi40ODQtMTguMDRsLTM4LjU0NiwzOC41NDYNCg0KCWM0LjA0OSw2LjE0Miw4LjI2MSwxMS40NTMsMTMuNjY2LDE2Ljg1OGMxMy45NDksMTMuOTUsMzEuNjk4LDI0LjMzOSw1Mi4xMTcsMjkuMjUxYzI2LjQ2Niw2LjM3LDU0LjgyMywyLjgzOSw3OS4xODUtMTAuNTkyDQoNCgljOC44OTItNC45MDMsMTcuMjU0LTExLjExOSwyNC43OTQtMTguNjU5bDczLjg5Ni03My44OTVjNDMuMTA1LTQzLjEwNSw0My4xMDUtMTEyLjk5MSwwLjAwMS0xNTYuMDk3DQoNCglDMzg2LjU2NiwzOS4yMjUsMzE2LjY4LDM5LjIyNSwyNzMuNTc0LDgyLjMzeiIvPg0KPC9nPg0KDQo8L3N2Zz4NCg==)
-}
-
-.mapjs-attachment {
-  right: -5px;
-  position: absolute;
-  top: -15px;
-  background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoJIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjMycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJ0cmFuc2Zvcm06cm90YXRlKDEwKSI+DQogPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiwtMikgcm90YXRlKDEwKSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MiI+DQogICA8cGF0aCBkPSJNNCwxNiBMNCwxMSBDNCwxIDE1LDEgMTUsMTEgTDE1LDI2IEMxNSwzMSA4LDMxIDgsMjUgTDgsMTAiDQogICAgIHN0eWxlPSJzdHJva2U6YmxhY2siLz4NCiAgIDxwYXRoIGQ9Ik0zLDE2IEwzLDEwIEMzLDAgMTQsMCAxNCwxMCBMMTQsMjUgQzE0LDMwIDcsMzAgNywyNSBMNywxMCINCiAgICAgc3R5bGU9InN0cm9rZTojMDA5QUNEIi8+DQogIDwvZz4NCjwvc3ZnPg0K);
-  width: 16px;
-  height: 32px;
-  background-size: 16px 32px;
-  background-repeat: no-repeat no-repeat
-}
-
-.mapjs-attachment:hover {
-  background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoJIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjMycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJ0cmFuc2Zvcm06cm90YXRlKDEwKSI+DQogPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiwtMikgcm90YXRlKDEwKSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MiI+DQogICA8cGF0aCBkPSJNNCwxNiBMNCwxMSBDNCwxIDE1LDEgMTUsMTEgTDE1LDI2IEMxNSwzMSA4LDMxIDgsMjUgTDgsMTAiDQogICAgIHN0eWxlPSJzdHJva2U6YmxhY2siLz4NCiAgIDxwYXRoIGQ9Ik0zLDE2IEwzLDEwIEMzLDAgMTQsMCAxNCwxMCBMMTQsMjUgQzE0LDMwIDcsMzAgNywyNSBMNywxMCINCiAgICAgc3R5bGU9InN0cm9rZTojMDBCRkZGIi8+DQogIDwvZz4NCjwvc3ZnPg0K)
-}
-
-.mapjs-draw-container {
-  position: absolute;
-  margin: 0;
-  padding: 0
-}
-
-.mapjs-draw-container[data-mapjs-role=connector] {
-  z-index: 1
-}
-
-.mapjs-draw-container[data-mapjs-role=link] {
-  z-index: 2
-}
-
-.mapjs-connector {
-  stroke-width: 1px;
-  fill: none;
-  stroke: #888
-}
-
-.mapjs-link {
-  stroke-width: 1.5px;
-  fill: none
-}
-
-.mapjs-link-hit {
-  stroke: transparent;
-  stroke-width: 15;
-  cursor: crosshair
-}
-
-#container {
-  background-color: #FFF;
-  -moz-user-select: none;
-  -webkit-user-select: none;
-  -ms-user-select: none;
-  margin: 0;
-  padding: 0
-}
-
-.mapjs-reorder-bounds {
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjExcHgiIGhlaWdodD0iMjAuNjM0cHgiPg0KPHBhdGggZD0iTTAuMTk5LDEwLjc5bDkuNjQ2LDkuNjQ2YzAuMTMsMC4xMzMsMC4zMDIsMC4xOTcsMC40NzEsMC4xOTdjMC4xNzMsMCwwLjM0NC0wLjA2NCwwLjQ3My0wLjE5N2wwLjAxMy0wLjAxMQ0KCUMxMC45MjksMjAuMzA1LDExLDIwLjEzMiwxMSwxOS45NTJ2LTQuNjhjMC0wLjE4Mi0wLjA3LTAuMzQ3LTAuMTk4LTAuNDc1TDYuMzIzLDEwLjMybDQuNDc5LTQuNDgzQzEwLjkyOSw1LjcxNCwxMSw1LjU0MywxMSw1LjM2NA0KCVYwLjY4MmMwLTAuMTc2LTAuMDctMC4zNDUtMC4xOTgtMC40NzRsLTAuMDEzLTAuMDEyQzEwLjY2NywwLjA3MSwxMC40OTcsMCwxMC4zMTYsMEMxMC4xNDMsMCw5Ljk3LDAuMDcxLDkuODQ1LDAuMTk2TDAuMTk5LDkuODQ1DQoJQy0wLjA2NiwxMC4xMDQtMC4wNjYsMTAuNTMyLDAuMTk5LDEwLjc5eiIvPg0KPC9zdmc+);
-  background-height: 100%;
-  background-width: 100%;
-  height: 20px;
-  width: 11px;
-  z-index: 999;
-  background-repeat: no-repeat
-}
-
-.mapjs-reorder-bounds[mapjs-edge=left] {
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjExcHgiIGhlaWdodD0iMjAuNjM0cHgiPg0KICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEsIDApIHNjYWxlKC0xLCAxKSI+DQo8cGF0aCBkPSJNMC4xOTksMTAuNzlsOS42NDYsOS42NDZjMC4xMywwLjEzMywwLjMwMiwwLjE5NywwLjQ3MSwwLjE5N2MwLjE3MywwLDAuMzQ0LTAuMDY0LDAuNDczLTAuMTk3bDAuMDEzLTAuMDExDQoJQzEwLjkyOSwyMC4zMDUsMTEsMjAuMTMyLDExLDE5Ljk1MnYtNC42OGMwLTAuMTgyLTAuMDctMC4zNDctMC4xOTgtMC40NzVMNi4zMjMsMTAuMzJsNC40NzktNC40ODNDMTAuOTI5LDUuNzE0LDExLDUuNTQzLDExLDUuMzY0DQoJVjAuNjgyYzAtMC4xNzYtMC4wNy0wLjM0NS0wLjE5OC0wLjQ3NGwtMC4wMTMtMC4wMTJDMTAuNjY3LDAuMDcxLDEwLjQ5NywwLDEwLjMxNiwwQzEwLjE0MywwLDkuOTcsMC4wNzEsOS44NDUsMC4xOTZMMC4xOTksOS44NDUNCglDLTAuMDY2LDEwLjEwNC0wLjA2NiwxMC41MzIsMC4xOTksMTAuNzl6Ii8+DQogIDwvZz4NCjwvc3ZnPg==)
-}
-/*
-
-
-
-*/
-
-
-.mindmup_context_menu_item {
-  cursor: pointer;
-}
-
-.mindmup-reload-modal-errors li {
-  color: #cd0a0a;
-}
-
-.mindmup-last-modal-diffs li {
-  color: #bf993f;
-}
-
-.mindmup-node-icons {
-  position: absolute;
-  left: 0;
-  top: -10px;
-  white-space: nowrap;
-}
-
-.mindmup-node-icons--with_icons .mindmup-node-icons {
-  top: -18px;
-}
-
-.mindmup-node-icon {
-  height: 20px;
-  display: inline-block;
-  margin-right: 3px;
-  vertical-align: middle;
-}
-
-.mindmup-node-icon-avatar, .mindmup-legend-item-cont .gravatar {
-  height: 24px;
-  width: 24px;
-}
-
-.mindmup-node-icon-avatar .gravatar {
-  vertical-align: sub;
-}
-
-.mindmup-node-icon-avatar .gravatar,
-.mindmup-legend-item-cont .gravatar {
-  padding: 1px;
-  border: 1px solid #777;
-}
-
-.mindmup-legend-item-cont .gravatar {
-  margin-top: -7px;
-}
-
-.mindmup-node-icon-avatar .gravatar:hover,
-.mindmup-legend-item-cont .gravatar:hover {
-  transform: scale(2);
-  position: relative;
-  z-index: 5;
-}
-
-.mindmup-node-icon-milestone-diamond {
-  border-width: 4px;
-  border-style: solid;
-}
-
-#context-menu li:not(.folder) > ul {
-  display: none;
-}
-
-.controller-easy_wbs .easy-content-page {
-  transform: none !important;
-}
-
-.link-edit-widget {
-  display: none;
-  z-index: 999;
-  position: absolute;
-  padding: 10px;
-  background-color: white;
-  border: 1px solid #dd3e3a;
-  cursor: default;
-}
-
-.mindmup-legend-used {
-  margin-top: 10px;
-  display: inline-block;
-  color: rgba(66, 50, 26, 0.5);
-}
-
-.mindmup-legend-used-used--all, .mindmup-legend-used-all--used {
-  display: none;
-}
-
-.mindmup-legend-drag-overlay {
-  position: fixed;
-  top: 0;
-  left: 0;
-  z-index: 10000;
-  cursor: move;
-}
-
-.mindmup-legend-drag-avatar {
-  position: absolute;
-  z-index: 5;
-  height: 20px;
-  width: 20px;
-  margin-left: -12px;
-  margin-top: -12px;
-  border: 1px solid;
-}
-
-/*.mindmup__menu-save--tooltip {*/
-/*display: inline-block;*/
-/*color: green;*/
-/*padding: 0 5px;*/
-/*}*/
-
-.mindmup__legend-container {
-  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 2px 2px rgba(0, 0, 0, 0.05);
-}
-
-.mindmup__menu {
-  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 2px 2px rgba(0, 0, 0, 0.05);
-}
-
-.mindmup-node-icon-is_edited {
-  margin-right: 1px;
-  margin-left: -10px;
-  vertical-align: middle;
-  border-radius: 5000px;
-  width: 20px;
-  height: 20px;
-  color: #ffffff;
-  background-color: #e50026;
-  line-height: 1.2;
-  font-size: 18px;
-  text-align: center;
-  display: inline-block;
-}
-
-.mindmup-node-icon-is_edited::before {
-  content: "!";
-  font-family: inherit;
-}
-
-.mindmup-node-icons-all {
-  display: inline-block;
-}
-
-.mindmup__node--filtered_out {
-  opacity: 0.2;
-}
-
-mindmup-sidebar {
-  position: absolute;
-  display: block;
-  top: 0;
-  right: 0;
-}
-
-.date-picker__date-wrap .input-append {
-  width: auto;
-  float: right;
-}
-
-.date-picker__date-wrap {
-  margin-bottom: 5px;
-  overflow: hidden;
-}
-
-easy-lookup .easy-lookup-values-wrapper {
-  height: auto;
-}
-@charset "UTF-8";
-/*----------------------------------------*/
-/* Vendors */
-/*----------------------------------------*/
-/*----------------------------------------*/
-/* Overides */
-/*----------------------------------------*/
-/*----------------------------------------*/
-/* Mixins & Placeholders */
-/*----------------------------------------*/
-.mindmup_hover_menu {
-  -webkit-border-radius: 3.6px;
-  -moz-border-radius: 3.6px;
-  border-radius: 3.6px; }
-
-.mindmup-legend-color-box, .mapjs-collapsor {
-  -webkit-border-radius: 5000px !important;
-  -moz-border-radius: 5000px !important;
-  border-radius: 5000px !important; }
-
-.easy .mindmup__menu-group--tooltiped li > .menu-children, .easy .mindmup__menu-group--tooltiped ul, .mapjs-node {
-  -webkit-border-radius: 1.8px;
-  -moz-border-radius: 1.8px;
-  border-radius: 1.8px; }
-
-.mindmup__menu {
-  -webkit-box-shadow: none !important;
-  -moz-box-shadow: none !important;
-  box-shadow: none !important; }
-
-.mindmup-node-icon-milestone-shell {
-  -webkit-transform: rotate(45deg);
-  -moz-transform: rotate(45deg);
-  -ms-transform: rotate(45deg);
-  -o-transform: rotate(45deg);
-  transform: rotate(45deg); }
-
-.mindmup-node-icon-progress {
-  -webkit-transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  -o-transform: rotate(90deg);
-  transform: rotate(90deg); }
-
-.mindmup_hover_menu, .mindmup-legend {
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box; }
-
-.mindmup__menu {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box; }
-
-.mindmup__legend-header, .mindmup__menu {
-  display: -webkit-box;
-  display: -moz-box;
-  display: box;
-  display: -webkit-flex;
-  display: -moz-flex;
-  display: -ms-flexbox;
-  display: flex; }
-
-.mindmup__menu {
-  -webkit-justify-content: space-between;
-  -ms-justify-content: space-between;
-  justify-content: space-between; }
-
-.mindmup__legend-header > label, .mindmup__menu-group--sizing {
-  -webkit-flex-grow: 1;
-  -ms-flex-grow: 1;
-  flex-grow: 1; }
-
-.mindmup-container, .mindmup-noselect {
-  -moz-user-select: none;
-  -webkit-user-select: none;
-  -ms-user-select: none; }
-
-.easy .mindmup__menu-group--tooltiped li {
-  font-family: "Ubuntu", "Open Sans", sans-serif;
-  font-size: 13px;
-  line-height: 1.5;
-  font-weight: normal;
-  color: #324164; }
-@media only screen and (min-resolution: 100dpi) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 14px; } }
-@media only screen and (max-width: 960px) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 11px; } }
-@media only screen and (max-width: 960px) and (min-resolution: 100dpi) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 13px; } }
-
-@media only screen and (min-width: 1401px) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 14px; } }
-@media only screen and (min-width: 1401px) and (min-resolution: 100dpi) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 16px; } }
-
-@media only screen and (min-width: 1901px) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 15px; } }
-@media only screen and (min-width: 1901px) and (min-resolution: 100dpi) {
-  .easy .mindmup__menu-group--tooltiped li {
-    font-size: 17px; } }
-
-.easy .mindmup__menu-group--tooltiped li a {
-  -ms-word-break: break-all;
-  word-break: break-word;
-  -webkit-hyphens: auto;
-  -moz-hyphens: auto;
-  -ms-hyphens: auto;
-  hyphens: auto; }
-
-@-webkit-keyframes icon-blink {
-  from {
-    opacity: 0.25;
-    -webkit-transform: scale(1);
-    -moz-transform: scale(1);
-    -ms-transform: scale(1);
-    -o-transform: scale(1);
-    transform: scale(1); }
-  to {
-    opacity: 1;
-    -webkit-transform: scale(1.25);
-    -moz-transform: scale(1.25);
-    -ms-transform: scale(1.25);
-    -o-transform: scale(1.25);
-    transform: scale(1.25); } }
-@-moz-keyframes icon-blink {
-  from {
-    opacity: 0.25;
-    -webkit-transform: scale(1);
-    -moz-transform: scale(1);
-    -ms-transform: scale(1);
-    -o-transform: scale(1);
-    transform: scale(1); }
-  to {
-    opacity: 1;
-    -webkit-transform: scale(1.25);
-    -moz-transform: scale(1.25);
-    -ms-transform: scale(1.25);
-    -o-transform: scale(1.25);
-    transform: scale(1.25); } }
-@-ms-keyframes icon-blink {
-  from {
-    opacity: 0.25;
-    -webkit-transform: scale(1);
-    -moz-transform: scale(1);
-    -ms-transform: scale(1);
-    -o-transform: scale(1);
-    transform: scale(1); }
-  to {
-    opacity: 1;
-    -webkit-transform: scale(1.25);
-    -moz-transform: scale(1.25);
-    -ms-transform: scale(1.25);
-    -o-transform: scale(1.25);
-    transform: scale(1.25); } }
-@keyframes icon-blink {
-  from {
-    opacity: 0.25;
-    -webkit-transform: scale(1);
-    -moz-transform: scale(1);
-    -ms-transform: scale(1);
-    -o-transform: scale(1);
-    transform: scale(1); }
-  to {
-    opacity: 1;
-    -webkit-transform: scale(1.25);
-    -moz-transform: scale(1.25);
-    -ms-transform: scale(1.25);
-    -o-transform: scale(1.25);
-    transform: scale(1.25); } }
-@-webkit-keyframes spin {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(360deg); } }
-@-moz-keyframes spin {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(360deg); } }
-@-ms-keyframes spin {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(360deg); } }
-@keyframes spin {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(360deg); } }
-@-webkit-keyframes spin-inverse {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(-360deg); } }
-@-moz-keyframes spin-inverse {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(-360deg); } }
-@-ms-keyframes spin-inverse {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(-360deg); } }
-@keyframes spin-inverse {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(-360deg); } }
-@-webkit-keyframes translate-x {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-moz-keyframes translate-x {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-ms-keyframes translate-x {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@keyframes translate-x {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-webkit-keyframes translate-y {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-moz-keyframes translate-y {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-ms-keyframes translate-y {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@keyframes translate-y {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-webkit-keyframes translate-menu {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-moz-keyframes translate-menu {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-ms-keyframes translate-menu {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@keyframes translate-menu {
-  100% {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); } }
-@-webkit-keyframes load7 {
-  0%,
-  80%,
-  100% {
-    box-shadow: 0 2.5em 0 -1.3em; }
-  40% {
-    box-shadow: 0 2.5em 0 0; } }
-@-moz-keyframes load7 {
-  0%,
-  80%,
-  100% {
-    box-shadow: 0 2.5em 0 -1.3em; }
-  40% {
-    box-shadow: 0 2.5em 0 0; } }
-@-ms-keyframes load7 {
-  0%,
-  80%,
-  100% {
-    box-shadow: 0 2.5em 0 -1.3em; }
-  40% {
-    box-shadow: 0 2.5em 0 0; } }
-@keyframes load7 {
-  0%,
-  80%,
-  100% {
-    box-shadow: 0 2.5em 0 -1.3em; }
-  40% {
-    box-shadow: 0 2.5em 0 0; } }
-@-webkit-keyframes ripple {
-  0% {
-    -webkit-transform: scale(0);
-    -moz-transform: scale(0);
-    -ms-transform: scale(0);
-    -o-transform: scale(0);
-    transform: scale(0);
-    opacity: .2; }
-  100% {
-    -webkit-transform: scale(3);
-    -moz-transform: scale(3);
-    -ms-transform: scale(3);
-    -o-transform: scale(3);
-    transform: scale(3);
-    opacity: 0; } }
-@-moz-keyframes ripple {
-  0% {
-    -webkit-transform: scale(0);
-    -moz-transform: scale(0);
-    -ms-transform: scale(0);
-    -o-transform: scale(0);
-    transform: scale(0);
-    opacity: .2; }
-  100% {
-    -webkit-transform: scale(3);
-    -moz-transform: scale(3);
-    -ms-transform: scale(3);
-    -o-transform: scale(3);
-    transform: scale(3);
-    opacity: 0; } }
-@-ms-keyframes ripple {
-  0% {
-    -webkit-transform: scale(0);
-    -moz-transform: scale(0);
-    -ms-transform: scale(0);
-    -o-transform: scale(0);
-    transform: scale(0);
-    opacity: .2; }
-  100% {
-    -webkit-transform: scale(3);
-    -moz-transform: scale(3);
-    -ms-transform: scale(3);
-    -o-transform: scale(3);
-    transform: scale(3);
-    opacity: 0; } }
-@keyframes ripple {
-  0% {
-    -webkit-transform: scale(0);
-    -moz-transform: scale(0);
-    -ms-transform: scale(0);
-    -o-transform: scale(0);
-    transform: scale(0);
-    opacity: .2; }
-  100% {
-    -webkit-transform: scale(3);
-    -moz-transform: scale(3);
-    -ms-transform: scale(3);
-    -o-transform: scale(3);
-    transform: scale(3);
-    opacity: 0; } }
-.easy .mindmup__menu-group--tooltiped li a.submenu:after, .mindmup__legend-toggler.active a:before, .easy-mindmup__icon:before, .mapjs-collapsor {
-  speak: none;
-  font-weight: normal;
-  font-style: normal;
-  display: inline-block;
-  width: auto;
-  height: auto;
-  background-position: 0% 0%;
-  background-repeat: repeat;
-  background-image: none;
-  vertical-align: baseline;
-  text-decoration: none !important;
-  text-transform: none;
-  letter-spacing: normal;
-  word-wrap: normal;
-  white-space: nowrap;
-  direction: ltr;
-  /* Support for all WebKit browsers. */
-  -webkit-font-smoothing: antialiased;
-  /* Support for Safari and Chrome. */
-  text-rendering: optimizeLegibility;
-  /* Support for Firefox. */
-  -moz-osx-font-smoothing: grayscale;
-  /* Support for IE. */
-  font-feature-settings: 'liga'; }
-
-.easy .mindmup__menu-group--tooltiped li a.submenu:after, .mindmup__legend-toggler.active a:before, .easy-mindmup__icon:before, .mapjs-collapsor {
-  font-family: 'Material Icons','EasyIcons'; }
-
-.mindmup__legend-toggler.active a, .easy-mindmup__icon {
-  position: relative;
-  background-repeat: no-repeat;
-  background-image: none !important; }
-
-.mindmup-container {
-  background-image: linear-gradient(rgba(217, 217, 217, 0.2) 1px, transparent 1px), linear-gradient(90deg, rgba(217, 217, 217, 0.2) 1px, transparent 1px);
-  background-size: 12px 12px, 12px 12px;
-  background-position: -1px -1px, -1px -1px; }
-
-.easy .mindmup__menu-group--tooltiped li > .menu-children, .easy .mindmup__menu-group--tooltiped ul, .mindmup__legend-container {
-  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(0, 0, 0, 0.1);
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(0, 0, 0, 0.1); }
-
-.easy .mindmup__menu-group--tooltiped ul, .mapjs-node.activated, .mapjs-node.selected, .mapjs-node.droppable {
-  -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 2px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 2px rgba(0, 0, 0, 0.1); }
-
-@-webkit-keyframes sidebar-buttons-slide-left {
-  from {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); }
-  to {
-    -webkit-transform: translate(-184px, 0);
-    -moz-transform: translate(-184px, 0);
-    -ms-transform: translate(-184px, 0);
-    -o-transform: translate(-184px, 0);
-    transform: translate(-184px, 0); } }
-@-moz-keyframes sidebar-buttons-slide-left {
-  from {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); }
-  to {
-    -webkit-transform: translate(-184px, 0);
-    -moz-transform: translate(-184px, 0);
-    -ms-transform: translate(-184px, 0);
-    -o-transform: translate(-184px, 0);
-    transform: translate(-184px, 0); } }
-@-ms-keyframes sidebar-buttons-slide-left {
-  from {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); }
-  to {
-    -webkit-transform: translate(-184px, 0);
-    -moz-transform: translate(-184px, 0);
-    -ms-transform: translate(-184px, 0);
-    -o-transform: translate(-184px, 0);
-    transform: translate(-184px, 0); } }
-@keyframes sidebar-buttons-slide-left {
-  from {
-    -webkit-transform: translate(0, 0);
-    -moz-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0); }
-  to {
-    -webkit-transform: translate(-184px, 0);
-    -moz-transform: translate(-184px, 0);
-    -ms-transform: translate(-184px, 0);
-    -o-transform: translate(-184px, 0);
-    transform: translate(-184px, 0); } }
-.easy-mindmup__icon.button:before {
-  position: absolute;
-  left: 0;
-  width: 36px;
-  text-align: center;
-  font-size: 1.2em;
-  line-height: 1;
-  color: inherit;
-  top: 50%;
-  margin-top: -0.5em; }
-
-.easy .mindmup__menu-group--tooltiped li a.submenu:after {
-  position: absolute;
-  right: 1px;
-  top: 1px;
-  bottom: 1px;
-  font-size: 1em;
-  line-height: 2.25;
-  margin: 0;
-  padding: 0;
-  display: block;
-  background: none;
-  border: none;
-  min-width: 24px;
-  text-align: center; }
-.easy .mindmup__menu-group--tooltiped li a.submenu:after {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0; }
-.easy .mindmup__menu-group--tooltiped li a.submenu:after span {
-  display: none; }
-
-.easy .mindmup__menu-group--tooltiped li > .menu-children, .easy .mindmup__menu-group--tooltiped ul {
-  position: absolute;
-  background-color: #ffffff;
-  color: #324164;
-  padding: 0.5em;
-  font-size: 11.57px;
-  line-height: 1;
-  margin-top: -0.25em;
-  white-space: pre; }
-.easy .mindmup__menu-group--tooltiped li > .menu-children a, .easy .mindmup__menu-group--tooltiped ul a {
-  color: #324164;
-  text-decoration: underline; }
-.input-append .easy .mindmup__menu-group--tooltiped li > .menu-children, .easy .mindmup__menu-group--tooltiped .input-append li > .menu-children, .input-append .easy .mindmup__menu-group--tooltiped ul, .easy .mindmup__menu-group--tooltiped .input-append ul {
-  font-weight: normal;
-  margin-top: 1px; }
-
-.easy .mindmup__menu-group--tooltiped li {
-  padding: 0;
-  padding-left: 36px;
-  border: 1px solid transparent;
-  border-left: none;
-  border-right: none;
-  position: relative;
-  line-height: 1.25; }
-.easy .mindmup__menu-group--tooltiped li:hover {
-  border-color: #d9d9d9 !important;
-  background: #d9d9d9 !important;
-  z-index: 1; }
-.easy .mindmup__menu-group--tooltiped li a {
-  padding: 6px 12px;
-  padding-left: 48px;
-  margin-left: -36px;
-  display: block;
-  text-decoration: none; }
-.easy .mindmup__menu-group--tooltiped li a:before {
-  position: absolute;
-  left: 0;
-  width: 36px;
-  text-align: center;
-  padding-top: 1px;
-  color: #324164; }
-.easy .mindmup__menu-group--tooltiped li a.submenu {
-  padding-right: 0 !important;
-  background: none !important;
-  position: relative; }
-.easy .mindmup__menu-group--tooltiped li a.submenu:after {
-  content: "\005d" !important;
-  left: auto;
-  font-size: 10px;
-  text-align: left;
-  line-height: 1.9; }
-.easy .mindmup__menu-group--tooltiped li a ~ span {
-  font-size: 0.89em; }
-
-.easy .mindmup__menu-group--tooltiped {
-  position: relative;
-  z-index: 700; }
-.easy .mindmup__menu-group--tooltiped ul {
-  margin: 0;
-  list-style: none;
-  font-size: 1.125em;
-  min-width: 200px;
-  padding: 6px 0;
-  white-space: normal; }
-.easy .mindmup__menu-group--tooltiped ul:after {
-  content: '';
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: auto;
-  left: 36px;
-  border-left: 1px solid #e5e5e5;
-  z-index: 0; }
-.easy .mindmup__menu-group--tooltiped li > .menu-children {
-  display: none;
-  white-space: normal;
-  top: 6px;
-  left: 99%;
-  width: 150px; }
-.easy .mindmup__menu-group--tooltiped li > .menu-children > li + li {
-  border-top: 1px dashed #e5e5e5; }
-.easy .mindmup__menu-group--tooltiped li > .menu-children > li a {
-  text-decoration: none;
-  display: block;
-  padding: 0.5em; }
-.easy .mindmup__menu-group--tooltiped li > .menu-children > li a:hover {
-  text-decoration: underline; }
-.easy .mindmup__menu-group--tooltiped li > .menu-children > li a:before {
-  color: #01c8a9;
-  text-decoration: none;
-  margin-right: 6px; }
-.easy .mindmup__menu-group--tooltiped li:hover > .menu-children {
-  display: inline-block; }
-
-@font-face {
-  font-family: "Material Icons";
-  src: local("Material Icons"), local("MaterialIcons-Regular"), url("../../fonts/EasyMaterialIcons-Regular.eot");
-  src: local("Material Icons"), local("MaterialIcons-Regular"), url("../../fonts/EasyMaterialIcons-Regular.eot?#iefix") format("embedded-opentype"), url("../../fonts/EasyMaterialIcons-Regular.woff") format("woff"), url("../../fonts/EasyMaterialIcons-Regular.woff2") format("woff2"), url("../../fonts/EasyMaterialIcons-Regular.ttf") format("truetype"), url("../../fonts/EasyMaterialIcons-Regular.svg") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-.mindmup-cont {
-  margin: 0 -18px 6px;
-  width: auto;
-  overflow: hidden; }
-@media only screen and (max-width: 480px) {
-  .mindmup-cont {
-    margin-top: -24px; } }
-.mindmup-container {
-  position: relative;
-  cursor: all-scroll;
-  border-top: none;
-  box-sizing: border-box;
-  background-color: #f9f9f9;
-  margin: 0;
-  padding: 0;
-  outline: none;
-  overflow-y: hidden !important; }
-.mindmup__legend-container {
-  background-color: #ffffff;
-  position: absolute;
-  left: 12px;
-  top: 12px;
-  width: 260px; }
-@media only screen and (max-width: 480px) {
-  .mindmup__legend-container {
-    top: 110%; } }
-.mindmup__legend-container--hidden {
-  display: none; }
-.mindmup__legend-header {
-  background: #f9f9f9;
-  padding: 12px; }
-.mindmup__legend-toggler a {
-  color: rgba(50, 65, 100, 0.5);
-  font-size: 1.5em;
-  line-height: 36px; }
-.mindmup__legend-toggler .tip {
-  display: none; }
-.mindmup__legend-toggler.active a:before {
-  content: "\e5ce" !important; }
-.mindmup__menu {
-  user-select: none;
-  position: relative;
-  z-index: 1;
-  background-color: #ffffff;
-  border-bottom: 1px solid #e5e5e5;
-  padding: 24px; }
-.mindmup__menu-item {
-  display: inline-block;
-  text-align: left; }
-.mindmup__menu-item a.active {
-  color: #d94838 !important; }
-.mindmup__menu-item a.active:before {
-  color: #d94838 !important; }
-@media only screen and (max-width: 960px) {
-  .mindmup__menu-item > a {
-    padding-right: 0; }
-  .mindmup__menu-item > a > span {
-    display: none; } }
-@media only screen and (max-width: 1400px) {
-  .mindmup__menu-item > a.icon-settings, .mindmup__menu-item > a.icon-watch {
-    padding-right: 0; }
-  .mindmup__menu-item > a.icon-settings > span, .mindmup__menu-item > a.icon-watch > span {
-    display: none; } }
-.mindmup__menu .right-menu {
-  float: right; }
-.mindmup__menu-group ul {
-  margin: 0; }
-.mindmup__menu-group--tooltiped > ul {
-  display: none; }
-.mindmup__menu-group--tooltiped:hover > ul {
-  display: block; }
-.mindmup__menu-group--sizing {
-  text-align: center;
-  font-size: 1.5em;
-  position: absolute;
-  bottom: -48px;
-  right: 24px;
-  line-height: 24px; }
-@media only screen and (max-width: 480px) {
-  .mindmup__menu-group--sizing {
-    display: none; } }
-.mindmup__menu-group--sizing a {
-  color: rgba(50, 65, 100, 0.5);
-  text-decoration: none; }
-.mindmup__menu-group--sizing li {
-  list-style: none;
-  display: inline-block; }
-@media only screen and (min-width: 481px) {
-  .mindmup__menu-group-display {
-    margin-left: 272px; } }
-.mindmup__legend-container--hidden + .mindmup__menu-group-display {
-  margin-left: 0; }
-.mindmup_hover_menu {
-  display: block;
-  position: absolute;
-  z-index: 99;
-  background-color: white;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }
-.mindmup-reload-modal-errors li {
-  color: #fe7d99; }
-.mindmup-last-modal-diffs li {
-  color: #fb5619; }
-.mindmup__button--disabled {
-  opacity: 0.4; }
-.mindmup_modal__flash_close {
-  position: absolute;
-  right: 12px;
-  font-size: 24px;
-  line-height: 24px; }
-
-.easy-mindmup__icon--add:before {
-  content: "\e3ba"; }
-.easy-mindmup__icon--add_sibling:before {
-  content: "\e3ba"; }
-.easy-mindmup__icon--insert_between:before {
-  content: "\e3bb"; }
-.easy-mindmup__icon--remove:before {
-  content: "\e92b"; }
-.easy-mindmup__icon--rename:before {
-  content: "\e22b"; }
-.easy-mindmup__icon--edit_data:before {
-  content: "\e880"; }
-.easy-mindmup__icon--follow_url:before {
-  content: "\e0e2"; }
-.easy-mindmup__icon--zoom_in:before {
-  content: "\e8ff"; }
-.easy-mindmup__icon--zoom_out:before {
-  content: "\e900"; }
-.easy-mindmup__icon--refresh_view:before {
-  content: "\e881"; }
-.easy-mindmup__icon--filter:before {
-  content: "\e152"; }
-.easy-mindmup__icon--cancel:before {
-  content: "\e5c9"; }
-.easy-mindmup__icon--cancel_filter:before {
-  content: "\e5c9"; }
-.easy-mindmup__icon--close:before {
-  content: "\e5cd"; }
-.easy-mindmup__icon--display:before {
-  content: "\e417"; }
-.easy-mindmup__icon--links:before {
-  content: "\e157"; }
-.easy-mindmup__icon--icons:before {
-  content: "\e24e"; }
-.easy-mindmup__icon--collapse:before {
-  content: "\e909"; }
-.easy-mindmup__icon--expand:before {
-  content: "\e146"; }
-.easy-mindmup__icon--one_side:before {
-  content: "\e86d"; }
-.easy-mindmup__icon--settings:before {
-  content: "\e8b8"; }
-.easy-mindmup__icon--undo:before {
-  content: "\e166"; }
-.easy-mindmup__icon--redo:before {
-  content: "\e15a"; }
-.easy-mindmup__icon--print:before {
-  content: "\e16b"; }
-.easy-mindmup__icon--cut:before {
-  content: "\e14e"; }
-.easy-mindmup__icon--copy:before {
-  content: "\e14d"; }
-.easy-mindmup__icon--paste:before {
-  content: "\e14f"; }
-.easy-mindmup__icon--save:before {
-  content: "\e161"; }
-.easy-mindmup__icon--legend:before {
-  content: "\e5d2"; }
-.easy-mindmup__icon--legend_hide:before {
-  content: "\e06d"; }
-.easy-mindmup__icon.button {
-  padding-left: 36px; }
-
-.redmine.mindmup__context_menu .easy-mindmup__icon:before, .redmine .button.easy-mindmup__icon:before {
-  position: absolute;
-  left: 0;
-  text-align: center;
-  font-size: 1.2em;
-  line-height: 1;
-  color: inherit;
-  top: 50%;
-  margin-top: -0.5em; }
-
-.redmine .mindmup-cont {
-  margin: 0 -10px -10px -10px; }
-.redmine .mindmup-menu {
-  padding: 5px 1px 0 1px; }
-.redmine .mindmup-menu .menu-item {
-  padding: 8px 10px 8px 10px; }
-.redmine .mindmup__menu {
-  padding: 14px; }
-.redmine .mindmup__menu-group--tooltiped > a {
-  padding-top: 10px;
-  padding-bottom: 10px; }
-.redmine .mindmup__menu-group--tooltiped > ul {
-  position: absolute;
-  background-color: #ffffff;
-  border: 1px solid #dfccaf;
-  color: #42321a;
-  padding: 5px 5px 5px 0;
-  margin-top: 10px;
-  margin-left: -10px;
-  min-width: 150px; }
-.redmine .mindmup__menu-group--tooltiped > ul li {
-  display: block;
-  padding: 3px; }
-.redmine .mindmup__menu-group--tooltiped > ul li a {
-  display: block;
-  padding-left: 20px; }
-.redmine .mindmup__menu-group--tooltiped > ul li a:before {
-  position: absolute;
-  left: 0;
-  width: 20px; }
-.redmine .mindmup__menu-group--tooltiped:after {
-  display: none; }
-.redmine .mindmup__menu-group--tooltiped .icon {
-  background-image: none; }
-.redmine .mindmup__menu-group--sizing a {
-  padding: 0; }
-.redmine .mindmup__menu-item {
-  padding-left: 15px;
-  padding-right: 15px; }
-.redmine .mindmup__menu-save a {
-  padding-left: 30px !important; }
-.redmine .mindmup__menu-save a:before {
-  text-align: center;
-  width: 36px;
-  position: absolute; }
-.redmine .mindmup-legend {
-  margin-top: 1px; }
-.redmine .mindmup-legend__filter_cancel_icon {
-  position: absolute; }
-.redmine .mindmup__legend-container {
-  top: 0; }
-.redmine .mindmup__legend-toggler {
-  height: 25px; }
-.redmine .mindmup__legend-toggler a {
-  line-height: 1.5em; }
-.redmine .mindmup__legend-header {
-  padding: 8px; }
-.redmine a.button-positive {
-  background-color: #4ebf67;
-  border-radius: 2px;
-  border: 1.3px solid #338d47;
-  color: #ffffff;
-  padding: 8px 16px; }
-.redmine .menu-item.active {
-  background-color: #9DB9D5; }
-.redmine .menu-item.active a.button {
-  color: #fff; }
-.redmine .gravatar {
-  max-width: 100%;
-  height: auto;
-  border-radius: 5000px;
-  overflow: hidden;
-  box-sizing: border-box; }
-.redmine .button-2.active {
-  background-color: transparent !important; }
-.redmine .mindmup_modal__flash_close {
-  color: #880000;
-  right: 15px;
-  line-height: 18px; }
-
-.mindmup-progress-modal {
-  position: fixed;
-  z-index: 10000;
-  width: 40%;
-  height: 150px;
-  top: 150px;
-  left: 30%;
-  right: 30%;
-  padding-top: 30px;
-  background-color: #ffffff;
-  border: 1px solid #d9d9d9;
-  box-shadow: 6px 6px 42px 7px rgba(217, 217, 217, 0.65); }
-.mindmup-progress-modal h3 {
-  text-align: center; }
-.mindmup-progress-cont {
-  height: 8px;
-  width: 80%;
-  margin-left: 10%;
-  margin-right: 10%;
-  border: 1px solid #d9d9d9; }
-.mindmup-progress-bar {
-  width: 50%;
-  height: 100%;
-  background-color: green; }
-
-.mindmup-legend {
-  overflow-y: auto;
-  padding: 12px 24px;
-  overflow-x: hidden; }
-.mindmup-legend-color-box {
-  background-color: #E0E0E0;
-  border-color: #E0E0E0;
-  width: 24px;
-  height: 24px;
-  display: inline-block;
-  border-width: 1px;
-  border-style: solid;
-  vertical-align: middle;
-  margin-right: 5px; }
-.mindmup-legend-used-toggle {
-  float: right;
-  margin: 5px 0; }
-.mindmup-legend-item-cont {
-  cursor: pointer;
-  margin-top: 6px; }
-.mindmup-legend .hotkey_link {
-  margin: 12px -12px 0;
-  padding-top: 12px;
-  border-top: 1px solid #e5e5e5; }
-.easy .mindmup-legend .hotkey_link a {
-  color: rgba(50, 65, 100, 0.5); }
-.mindmup-legend__filter_cont {
-  position: absolute;
-  right: 12px; }
-.mindmup-legend__filter_icon {
-  color: rgba(50, 65, 100, 0.4);
-  font-size: 2em;
-  padding: 5px; }
-.mindmup-legend__filter_cancel_icon {
-  position: absolute;
-  display: none;
-  color: #feb0c1;
-  font-size: 2em;
-  padding: 0 5px 5px; }
-.mindmup-legend__filter_cont:hover .mindmup-legend__filter_cancel_icon {
-  display: inline; }
-
-.mapjs-connector {
-  stroke: #cccccc; }
-.mapjs-draw-container {
-  pointer-events: none;
-  overflow: visible; }
-.mapjs-link-hit {
-  pointer-events: all;
-  fill: none; }
-.mapjs-exclamation {
-  right: -.9em;
-  position: absolute;
-  top: -.9em;
-  background-image: url(data:image/png;base64,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);
-  width: 2em;
-  height: 2em;
-  background-size: 2em;
-  background-repeat: no-repeat no-repeat; }
-
-.mapjs-node {
-  border: 1px solid transparent;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-  background-color: #e5e5e5;
-  color: #324164;
-  padding: 9px 18px;
-  margin: 0; }
-.mapjs-node.activated {
-  background-color: #cccccc; }
-.mapjs-node.activated, .mapjs-node.selected, .mapjs-node.droppable {
-  -webkit-box-shadow: 5px 5px 5px 0 gray;
-  -moz-box-shadow: 5px 5px 5px 0 gray;
-  box-shadow: 5px 5px 5px 0 gray;
-  margin-left: -2px; }
-.mapjs-node.activated {
-  border: 1px solid transparent; }
-.mapjs-node.droppable {
-  border-color: #fb5619; }
-.mapjs-node span {
-  word-wrap: break-word; }
-.mapjs-collapsor {
-  position: absolute;
-  left: auto;
-  top: 50%;
-  right: -14px;
-  margin-top: -12px;
-  background-color: #ffffff;
-  color: #fe7d99;
-  line-height: 1;
-  font-size: 24px; }
-.mapjs-collapsor:before {
-  content: ""; }
-.collapsed .mapjs-collapsor {
-  color: #01c8a9; }
-.collapsed .mapjs-collapsor:before {
-  content: ""; }
-.mindmup-node-left .mapjs-collapsor {
-  right: auto;
-  left: -14px; }
-.mapjs-node:hover .mapjs-collapsor {
-  font-size: 30px;
-  margin-top: -14px;
-  right: -17px; }
-.mindmup-node-left:hover .mapjs-collapsor {
-  left: -17px;
-  right: auto; }
-
-.mindmup-node-filtered {
-  opacity: 0.2; }
-.mindmup-node-icon {
-  height: 20px;
-  display: inline-block;
-  margin-right: 3px;
-  vertical-align: middle; }
-.mindmup-node-icon-progress {
-  width: 4px;
-  background-color: #d9d9d9;
-  margin: 0 12px; }
-.mindmup-node-icon-progress-bar {
-  background-color: #01c8a9;
-  position: relative; }
-.mindmup-node-icon-milestone-shell {
-  border: 1px solid #d9d9d9;
-  vertical-align: middle;
-  display: inline-block;
-  margin: 1px; }
-.mindmup-node-icon-status {
-  font-weight: normal;
-  opacity: .5;
-  font-size: 0.89em; }
-.mindmup-node-icons {
-  position: absolute;
-  left: 0;
-  top: -10px;
-  white-space: nowrap; }
-.mindmup-node-icons--with_icons .mindmup-node-icons {
-  top: -18px; }
-.mindmup-node-filtered {
-  opacity: 0.2; }
-.mindmup-node-avatar {
-  position: absolute;
-  top: 50%;
-  margin-top: -11px; }
-.mindmup-node-left .mindmup-node-avatar {
-  left: auto;
-  right: -31px; }
-
-.mindmup-scheme-project {
-  background-color: #0080e6;
-  color: #ffffff; }
-.mindmup-scheme-project.activated {
-  background-color: #0064b3; }
-
-.scheme-by-priority .scheme-priority-1 {
-  background-color: #fad1da; }
-.scheme-by-priority .scheme-priority-1.activated {
-  background-color: #f5a3b5; }
-.scheme-by-priority .scheme-priority-2 {
-  background-color: #f5a3b5; }
-.scheme-by-priority .scheme-priority-2.activated {
-  background-color: #f07590; }
-.scheme-by-priority .scheme-priority-3 {
-  background-color: #d1faf4; }
-.scheme-by-priority .scheme-priority-3.activated {
-  background-color: #a3f5e8; }
-.scheme-by-priority .scheme-priority-4 {
-  background-color: #a3f5e8; }
-.scheme-by-priority .scheme-priority-4.activated {
-  background-color: #75f0dd; }
-.scheme-by-priority .scheme-priority-5 {
-  background-color: #d1e8fa; }
-.scheme-by-priority .scheme-priority-5.activated {
-  background-color: #a3d1f5; }
-.scheme-by-priority .scheme-priority-6 {
-  background-color: #a3d1f5; }
-.scheme-by-priority .scheme-priority-6.activated {
-  background-color: #75b9f0; }
-.scheme-by-priority .scheme-priority-7 {
-  background-color: #fadcd1; }
-.scheme-by-priority .scheme-priority-7.activated {
-  background-color: #f5b9a3; }
-.scheme-by-priority .scheme-priority-8 {
-  background-color: #f5b9a3; }
-.scheme-by-priority .scheme-priority-8.activated {
-  background-color: #f09675; }
-.scheme-by-priority .scheme-priority-9 {
-  background-color: #add7f3; }
-.scheme-by-priority .scheme-priority-9.activated {
-  background-color: #81c1ec; }
-.scheme-by-priority .scheme-priority-10 {
-  background-color: #e5e5e5; }
-.scheme-by-priority .scheme-priority-10.activated {
-  background-color: #cccccc; }
-.scheme-by-priority .scheme-priority-11 {
-  background-color: #fcc; }
-.scheme-by-priority .scheme-priority-11.activated {
-  background-color: #ff9999; }
-.scheme-by-priority .scheme-priority-12 {
-  background-color: #ffb4b4; }
-.scheme-by-priority .scheme-priority-12.activated {
-  background-color: #ff8181; }
-.scheme-by-status .scheme-status-1 {
-  background-color: #f9f6a8; }
-.scheme-by-status .scheme-status-1.activated {
-  background-color: #f6f178; }
-.scheme-by-status .scheme-status-2 {
-  background-color: #fbe3bd; }
-.scheme-by-status .scheme-status-2.activated {
-  background-color: #f8cf8d; }
-.scheme-by-status .scheme-status-3 {
-  background-color: #f3cccf; }
-.scheme-by-status .scheme-status-3.activated {
-  background-color: #e9a3a8; }
-.scheme-by-status .scheme-status-4 {
-  background-color: #eabdec; }
-.scheme-by-status .scheme-status-4.activated {
-  background-color: #dd95e1; }
-.scheme-by-status .scheme-status-5 {
-  background-color: #d0b8ec; }
-.scheme-by-status .scheme-status-5.activated {
-  background-color: #b590e1; }
-.scheme-by-status .scheme-status-6 {
-  background-color: #c9c9f9; }
-.scheme-by-status .scheme-status-6.activated {
-  background-color: #9b9bf4; }
-.scheme-by-status .scheme-status-7 {
-  background-color: #c9dcff; }
-.scheme-by-status .scheme-status-7.activated {
-  background-color: #96bbff; }
-.scheme-by-status .scheme-status-8 {
-  background-color: #d2f4f0; }
-.scheme-by-status .scheme-status-8.activated {
-  background-color: #a9eae2; }
-.scheme-by-status .scheme-status-9 {
-  background-color: #d2ecc9; }
-.scheme-by-status .scheme-status-9.activated {
-  background-color: #b3dfa3; }
-.scheme-by-status .scheme-status-10 {
-  background-color: #e1ee9e; }
-.scheme-by-status .scheme-status-10.activated {
-  background-color: #d4e673; }
-.scheme-by-status .scheme-status-11 {
-  background-color: #dadace; }
-.scheme-by-status .scheme-status-11.activated {
-  background-color: #c4c4b1; }
-.scheme-by-status .scheme-status-12 {
-  background-color: #dbd1c7; }
-.scheme-by-status .scheme-status-12.activated {
-  background-color: #c7b8a8; }
-.scheme-by-tracker .scheme-tracker-1 {
-  background-color: #f9f6a8; }
-.scheme-by-tracker .scheme-tracker-1.activated {
-  background-color: #f6f178; }
-.scheme-by-tracker .scheme-tracker-2 {
-  background-color: #fbe3bd; }
-.scheme-by-tracker .scheme-tracker-2.activated {
-  background-color: #f8cf8d; }
-.scheme-by-tracker .scheme-tracker-3 {
-  background-color: #f3cccf; }
-.scheme-by-tracker .scheme-tracker-3.activated {
-  background-color: #e9a3a8; }
-.scheme-by-tracker .scheme-tracker-4 {
-  background-color: #eabdec; }
-.scheme-by-tracker .scheme-tracker-4.activated {
-  background-color: #dd95e1; }
-.scheme-by-tracker .scheme-tracker-5 {
-  background-color: #d0b8ec; }
-.scheme-by-tracker .scheme-tracker-5.activated {
-  background-color: #b590e1; }
-.scheme-by-tracker .scheme-tracker-6 {
-  background-color: #c9c9f9; }
-.scheme-by-tracker .scheme-tracker-6.activated {
-  background-color: #9b9bf4; }
-.scheme-by-tracker .scheme-tracker-7 {
-  background-color: #c9dcff; }
-.scheme-by-tracker .scheme-tracker-7.activated {
-  background-color: #96bbff; }
-.scheme-by-tracker .scheme-tracker-8 {
-  background-color: #d2f4f0; }
-.scheme-by-tracker .scheme-tracker-8.activated {
-  background-color: #a9eae2; }
-.scheme-by-tracker .scheme-tracker-9 {
-  background-color: #d2ecc9; }
-.scheme-by-tracker .scheme-tracker-9.activated {
-  background-color: #b3dfa3; }
-.scheme-by-tracker .scheme-tracker-10 {
-  background-color: #e1ee9e; }
-.scheme-by-tracker .scheme-tracker-10.activated {
-  background-color: #d4e673; }
-.scheme-by-tracker .scheme-tracker-11 {
-  background-color: #dadace; }
-.scheme-by-tracker .scheme-tracker-11.activated {
-  background-color: #c4c4b1; }
-.scheme-by-tracker .scheme-tracker-12 {
-  background-color: #dbd1c7; }
-.scheme-by-tracker .scheme-tracker-12.activated {
-  background-color: #c7b8a8; }
-.scheme-by-assignee .scheme-assignee-1 {
-  background-color: #f9f6a8; }
-.scheme-by-assignee .scheme-assignee-1.activated {
-  background-color: #f6f178; }
-.scheme-by-assignee .scheme-assignee-2 {
-  background-color: #fbe3bd; }
-.scheme-by-assignee .scheme-assignee-2.activated {
-  background-color: #f8cf8d; }
-.scheme-by-assignee .scheme-assignee-3 {
-  background-color: #f3cccf; }
-.scheme-by-assignee .scheme-assignee-3.activated {
-  background-color: #e9a3a8; }
-.scheme-by-assignee .scheme-assignee-4 {
-  background-color: #eabdec; }
-.scheme-by-assignee .scheme-assignee-4.activated {
-  background-color: #dd95e1; }
-.scheme-by-assignee .scheme-assignee-5 {
-  background-color: #d0b8ec; }
-.scheme-by-assignee .scheme-assignee-5.activated {
-  background-color: #b590e1; }
-.scheme-by-assignee .scheme-assignee-6 {
-  background-color: #c9c9f9; }
-.scheme-by-assignee .scheme-assignee-6.activated {
-  background-color: #9b9bf4; }
-.scheme-by-assignee .scheme-assignee-7 {
-  background-color: #c9dcff; }
-.scheme-by-assignee .scheme-assignee-7.activated {
-  background-color: #96bbff; }
-.scheme-by-assignee .scheme-assignee-8 {
-  background-color: #d2f4f0; }
-.scheme-by-assignee .scheme-assignee-8.activated {
-  background-color: #a9eae2; }
-.scheme-by-assignee .scheme-assignee-9 {
-  background-color: #d2ecc9; }
-.scheme-by-assignee .scheme-assignee-9.activated {
-  background-color: #b3dfa3; }
-.scheme-by-assignee .scheme-assignee-10 {
-  background-color: #e1ee9e; }
-.scheme-by-assignee .scheme-assignee-10.activated {
-  background-color: #d4e673; }
-.scheme-by-assignee .scheme-assignee-11 {
-  background-color: #dadace; }
-.scheme-by-assignee .scheme-assignee-11.activated {
-  background-color: #c4c4b1; }
-.scheme-by-assignee .scheme-assignee-12 {
-  background-color: #dbd1c7; }
-.scheme-by-assignee .scheme-assignee-12.activated {
-  background-color: #c7b8a8; }
-.scheme-by-milestone .scheme-milestone-1 {
-  background-color: #f9f6a8; }
-.scheme-by-milestone .scheme-milestone-1.activated {
-  background-color: #f6f178; }
-.scheme-by-milestone .scheme-milestone-2 {
-  background-color: #fbe3bd; }
-.scheme-by-milestone .scheme-milestone-2.activated {
-  background-color: #f8cf8d; }
-.scheme-by-milestone .scheme-milestone-3 {
-  background-color: #f3cccf; }
-.scheme-by-milestone .scheme-milestone-3.activated {
-  background-color: #e9a3a8; }
-.scheme-by-milestone .scheme-milestone-4 {
-  background-color: #eabdec; }
-.scheme-by-milestone .scheme-milestone-4.activated {
-  background-color: #dd95e1; }
-.scheme-by-milestone .scheme-milestone-5 {
-  background-color: #d0b8ec; }
-.scheme-by-milestone .scheme-milestone-5.activated {
-  background-color: #b590e1; }
-.scheme-by-milestone .scheme-milestone-6 {
-  background-color: #c9c9f9; }
-.scheme-by-milestone .scheme-milestone-6.activated {
-  background-color: #9b9bf4; }
-.scheme-by-milestone .scheme-milestone-7 {
-  background-color: #c9dcff; }
-.scheme-by-milestone .scheme-milestone-7.activated {
-  background-color: #96bbff; }
-.scheme-by-milestone .scheme-milestone-8 {
-  background-color: #d2f4f0; }
-.scheme-by-milestone .scheme-milestone-8.activated {
-  background-color: #a9eae2; }
-.scheme-by-milestone .scheme-milestone-9 {
-  background-color: #d2ecc9; }
-.scheme-by-milestone .scheme-milestone-9.activated {
-  background-color: #b3dfa3; }
-.scheme-by-milestone .scheme-milestone-10 {
-  background-color: #e1ee9e; }
-.scheme-by-milestone .scheme-milestone-10.activated {
-  background-color: #d4e673; }
-.scheme-by-milestone .scheme-milestone-11 {
-  background-color: #dadace; }
-.scheme-by-milestone .scheme-milestone-11.activated {
-  background-color: #c4c4b1; }
-.scheme-by-milestone .scheme-milestone-12 {
-  background-color: #dbd1c7; }
-.scheme-by-milestone .scheme-milestone-12.activated {
-  background-color: #c7b8a8; }
-.scheme-by-progress .scheme-progress-1 {
-  background-color: #e5e5e5; }
-.scheme-by-progress .scheme-progress-1.activated {
-  background-color: #cccccc; }
-.scheme-by-progress .scheme-progress-2 {
-  background-color: #e6faf6; }
-.scheme-by-progress .scheme-progress-2.activated {
-  background-color: #bcf2e7; }
-.scheme-by-progress .scheme-progress-3 {
-  background-color: #c0f1ea; }
-.scheme-by-progress .scheme-progress-3.activated {
-  background-color: #96e8dc; }
-.scheme-by-progress .scheme-progress-4 {
-  background-color: #8de6d8; }
-.scheme-by-progress .scheme-progress-4.activated {
-  background-color: #63ddca; }
-.scheme-by-progress .scheme-progress-5 {
-  background-color: #4dd9c3; }
-.scheme-by-progress .scheme-progress-5.activated {
-  background-color: #2bc8b0; }
-.scheme-by-progress .scheme-progress-6 {
-  background-color: #01c8a9; }
-.scheme-by-progress .scheme-progress-6.activated {
-  background-color: #01957e; }
-
-@media print {
-  .gravatar {
-    max-width: 100%;
-    height: auto;
-    -webkit-border-radius: 5000px;
-    -moz-border-radius: 5000px;
-    border-radius: 5000px; } }
-.mindmup-print-area .mapjs-collapsor {
-  display: none; }
-.mindmup-print-area .mindmup-node-add-button {
-  display: none; }
-.mindmup-print-strip {
-  position: relative;
-  /*border: 1px solid red;*/
-  border: 1px solid #cecece;
-  overflow: hidden;
-  white-space: nowrap;
-  break-inside: avoid;
-  margin: 10px 0;
-  margin-left: -1px;
-  display: inline-block;
-  background-color: #ffffff;
-  border-left: 0; }
-
-.mindmup-sidebar {
-  display: block; }
-.mindmup-sidebar .mindmup-sidebar__empty-title, .mindmup-sidebar .mindmup-sidebar__coworkers--no_id {
-  background-color: #ffffaa;
-  border: 1px solid #bfb23f;
-  padding: 5px;
-  text-align: center; }
-.mindmup-sidebar__empty-title {
-  display: block;
-  margin-top: 10px;
-  box-sizing: border-box; }
-.mindmup-sidebar__resize {
-  position: fixed;
-  width: 10px;
-  text-align: center;
-  cursor: col-resize;
-  display: block;
-  z-index: 101;
-  background-color: silver;
-  box-sizing: border-box;
-  padding-top: 8px;
-  font-size: 20px;
-  border-radius: 5px; }
-.mindmup-sidebar__root {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  z-index: 5; }
-.mindmup-sidebar__toggler {
-  position: absolute;
-  top: 1px;
-  right: 1px;
-  padding: 0;
-  z-index: 1; }
-.mindmup-sidebar__toggler.active {
-  background: #d94838;
-  color: #fff; }
-.mindmup-sidebar__container {
-  border-left: 1px solid #dfccaf;
-  background: #f9f9f9;
-  padding-left: 8px;
-  overflow-y: scroll; }
-.mindmup-sidebar__long-text {
-  position: relative;
-  max-height: 100px;
-  overflow: hidden;
-  min-height: 30px;
-  border: 1px solid #dfccaf; }
-.mindmup-sidebar__long-text__curtain {
-  height: 100%;
-  position: absolute;
-  width: 100%;
-  top: 0;
-  left: 1px;
-  border-bottom: 1px solid #dfccaf;
-  background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.01) 0%, rgba(255, 255, 255, 0.01) 65%, white 100%);
-  background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.01) 0%, rgba(255, 255, 255, 0.01) 65%, white 100%);
-  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.01) 0%, rgba(255, 255, 255, 0.01) 65%, white 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#03ffffff', endColorstr='#ffffff', GradientType=0); }
-.mindmup-sidebar__long-text__content {
-  padding: 3px;
-  min-height: 25px;
-  width: 100%;
-  box-sizing: border-box;
-  max-height: 100px; }
-.mindmup-sidebar__attribute {
-  display: block;
-  overflow: hidden;
-  margin-top: 3px;
-  position: relative; }
-.mindmup-sidebar__attribute .invalid {
-  border: 1px solid red;
-  color: red; }
-.mindmup-sidebar__attribute-form-field {
-  max-width: 200px !important;
-  padding: 1px 1px 1px 5px !important;
-  line-height: normal;
-  float: right;
-  overflow-x: hidden !important; }
-.mindmup-sidebar__attribute-value {
-  max-width: 197px !important;
-  width: 100%;
-  padding: 1px 1px 1px 5px !important;
-  line-height: normal;
-  float: right;
-  margin-top: 6px; }
-.mindmup-sidebar__attribute-label-disabled {
-  color: rgba(0, 0, 0, 0.38); }
-.mindmup-sidebar__attribute-label {
-  display: inline-block;
-  width: 90px;
-  margin-top: 5px; }
-.mindmup-sidebar__attribute .spaceholder {
-  display: none; }
-.mindmup-sidebar__attribute .top-section {
-  margin-bottom: 0; }
-.mindmup-sidebar__attribute-full-screen-icon {
-  display: block;
-  float: right;
-  cursor: pointer;
-  margin-top: 6px;
-  position: absolute;
-  top: 0;
-  right: 0; }
-.mindmup-sidebar__attribute .icon-edit {
-  position: absolute;
-  top: 0;
-  right: 0;
-  cursor: pointer; }
-.mindmup-sidebar__add-comment-button {
-  margin: 3px 0 12px 0; }
-.mindmup-sidebar__add-comment-button a {
-  width: 100%;
-  box-sizing: border-box; }
-.mindmup-sidebar__journal-avatar-container {
-  margin-top: 6px; }
-.mindmup-sidebar__journal-header {
-  margin-top: -6px; }
-.mindmup-sidebar__journal-notes {
-  margin-top: 0;
-  background: #ffffff;
-  border: 1px solid #dfccaf;
-  margin-bottom: 0 !important;
-  box-sizing: border-box;
-  padding: 3px; }
-.mindmup-sidebar__journal-notes p:last-child {
-  margin-bottom: 0; }
-.mindmup-sidebar__journal-full-screen-icon {
-  display: block;
-  float: right;
-  cursor: pointer;
-  margin-top: 25px;
-  position: absolute;
-  top: 0;
-  right: 20px; }
-.mindmup-sidebar__journal-timestamp {
-  font-weight: bold;
-  font-size: smaller; }
-.mindmup-sidebar__tab {
-  margin: 6px 6px; }
-.mindmup-sidebar__tab header {
-  min-height: 36px !important;
-  padding: 0 12px 8px !important; }
-.mindmup-sidebar__tab header.open {
-  min-height: 44px; }
-.mindmup-sidebar__tab header:not(:hover) {
-  color: inherit !important;
-  background-color: unset !important; }
-.mindmup-sidebar__input__name {
-  color: black;
-  font-family: "Open Sans", sans-serif;
-  width: 100% !important; }
-.mindmup-sidebar__input__name .input {
-  max-width: none;
-  text-align: center;
-  font-weight: bold;
-  opacity: 1;
-  color: black !important; }
-.mindmup-sidebar__input__name .bottom-section {
-  display: none; }
-.mindmup-sidebar .gravatar {
-  max-height: 32px;
-  max-width: 32px; }
-.mindmup-sidebar .content-wrapper {
-  margin: 0 12px 8px !important; }
-.mindmup-sidebar .material-tab {
-  padding: 0 !important; }
diff --git a/plugins/easy_mindmup/assets/stylesheets/mindmup.css b/plugins/easy_mindmup/assets/stylesheets/mindmup.css
deleted file mode 100644
index e4fd88c..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/mindmup.css
+++ /dev/null
@@ -1,1434 +0,0 @@
-body, html {
-    height: 100%;
-    /*overflow: hidden*/
-}
-
-#container, #floating-toolbar, #topbar, .dropdown-menu, .floating {
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none
-}
-
-#toolbarSocial {
-    margin-right: 20px
-}
-
-.logo {
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_32.png);
-    background-position: left center;
-    background-repeat: no-repeat;
-    width: 0;
-    height: 40px;
-    padding-left: 40px;
-    padding-top: 5px;
-    padding-bottom: 5px
-}
-
-#logo-img {
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_32.png);
-    background-position: left center;
-    background-repeat: no-repeat;
-    width: 40px;
-    height: 40px;
-    padding: 0;
-    margin-left: 50px
-}
-
-@media (max-width: 979px) {
-    .navbar-fixed-bottom, .navbar-fixed-top {
-        position: fixed;
-        margin-bottom: 0
-    }
-}
-
-@media (max-width: 767px) {
-    .navbar {
-        padding-left: 20px;
-        padding-right: 20px
-    }
-
-    body {
-        padding: 0
-    }
-}
-
-.span-toolbar {
-    width: 120px;
-    cursor: move
-}
-
-@media (max-width: 1024px) {
-    .hidden-tablet-landscape {
-        display: none !important
-    }
-}
-
-@media (max-width: 768px) {
-    .hidden-tablet-portrait {
-        display: none !important
-    }
-}
-
-@media (max-width: 320px) {
-    .hidden-phone-portrait {
-        display: none !important
-    }
-}
-
-@media (max-height: 320px) {
-    .form-horizontal .control-group {
-        margin-bottom: 5px
-    }
-
-    .hidden-phone-landscape {
-        display: none
-    }
-}
-
-@media (max-width: 400px) {
-    .map-changed .changed-phone-hidden {
-        display: none !important
-    }
-}
-
-@media (max-width: 1024px) {
-    .map-changed .changed-tablet-hidden {
-        display: none !important
-    }
-}
-
-@media screen {
-    #topbar .nav > li > a {
-        font-weight: 700
-    }
-}
-
-#floating-toolbar {
-    position: absolute;
-    top: 100px;
-    right: 10px;
-    z-index: 999;
-    border: 1px solid #08c;
-    border-radius: 9px
-}
-
-.android .visible-touch, .ios .visible-touch {
-    display: block !important
-}
-
-.android .hidden-touch, .ios .hidden-touch {
-    display: none !important
-}
-
-div.topbar-color-picker {
-    width: 127px
-}
-
-.topbar-color-picker .colorPicker-swatch {
-    width: 15px;
-    height: 15px
-}
-
-.android .colorPicker-swatch, .ios .colorPicker-swatch {
-    width: 30px;
-    height: 30px
-}
-
-.android .colorPicker-palette, .ios .colorPicker-palette {
-    width: 217px;
-    top: 55px;
-    left: 5px
-}
-
-.map-changed .hidden-map-changed, .map-unchanged .visible-map-changed {
-    display: none !important
-}
-
-#toolbarEdit .btn-group {
-    margin-left: 0
-}
-
-#toolbarEdit button {
-    margin-top: 5px;
-    width: 40px;
-    height: 32px
-}
-
-#toolbarEdit button.two {
-    width: 80px
-}
-
-#toolbarEdit button.three {
-    width: 120px
-}
-
-.ideaInput {
-    position: absolute;
-    z-index: 999;
-    background-color: #5FBF5F;
-    color: #FFF;
-    font-family: Helvetica, "Arial Unicode MS", sans-serif;
-    font-weight: 700;
-    font-size: 13px;
-    line-height: 13px;
-    text-align: center;
-    padding: 0
-}
-
-.center {
-    text-align: center
-}
-
-.ideaInput:focus {
-    outline: 0
-}
-
-.menulink {
-    margin-right: 20px;
-    margin-top: 10px
-}
-
-#gplus-share {
-    border: 0;
-    height: 16px;
-    background-image: url(//ssl.gstatic.com/images/icons/gplus-16.png);
-    background-position: left center;
-    background-repeat: no-repeat;
-    margin-left: 6px;
-    margin-right: 20px;
-    margin-top: 2px;
-    padding-right: 0
-}
-
-#modalDownload .modal-body {
-    text-align: center
-}
-
-#modalDownload .modal-body p {
-    text-align: left
-}
-
-#modalDownload img {
-    max-height: 300px;
-    max-width: 450px
-}
-
-.share {
-    width: 32px;
-    height: 32px;
-    display: inline-block;
-    margin: 5px;
-    cursor: pointer
-}
-
-.btn-inline {
-    border: 0;
-    background: 0 0;
-    margin-left: 5px;
-    margin-right: 5px
-}
-
-.colorPicker_hexWrap {
-    display: none
-}
-
-div.colorPicker-picker {
-    display: inline;
-    float: left;
-    background: 0 0
-}
-
-#modalImport input[type=file] {
-    opacity: 0;
-    position: absolute;
-    width: 0;
-    height: 0
-}
-
-.repo {
-    background-repeat: no-repeat;
-    background-position: left center;
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_16.png)
-}
-
-.repo-a {
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_16.png)
-}
-
-.repo-b {
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_gold_16.png)
-}
-
-.repo-p {
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/logo_gold_private_16.png)
-}
-
-.repo-g {
-    background-image: url(//d1g6a398qq2djm.cloudfront.net/img/google_drive.png)
-}
-
-.repo-menuitem {
-    background-position: 14px center;
-    padding-left: 35px !important
-}
-
-a.repo {
-    margin-left: 5px
-}
-
-span.repo-a, span.repo-b, span.repo-g, span.repo-p {
-    padding-left: 16px
-}
-
-.dropdown-menu li a {
-    cursor: pointer
-}
-
-.visible-collapsed-toolbar {
-    display: none
-}
-
-.collapsed-toolbar .visible-collapsed-toolbar {
-    display: block !important
-}
-
-.collapsed-toolbar span.visible-collapsed-toolbar {
-    display: inline !important
-}
-
-.collapsed-toolbar .hidden-collapsed-toolbar {
-    display: none !important
-}
-
-.visible-row-split {
-    display: none
-}
-
-.row-split .visible-row-split {
-    display: block !important
-}
-
-.row-split span.visible-row-split {
-    display: inline !important
-}
-
-.row-split .hidden-row-split {
-    display: none !important
-}
-
-.visible-column-split {
-    display: none
-}
-
-.column-split .visible-column-split {
-    display: block !important
-}
-
-.column-split span.visible-column-split {
-    display: inline !important
-}
-
-.column-split .hidden-column-split {
-    display: none !important
-}
-
-#listBookmarks a .btn-inline {
-    margin-left: 15px
-}
-
-.gecko #listBookmarks a .btn-inline {
-    position: relative;
-    top: -17px;
-    left: 15px
-}
-
-.hidden-topbar #topbar .navbar-inner {
-    visibility: hidden
-}
-
-.column-split.hidden-topbar #topbar .navbar-inner, .hidden-topbar #topbar:hover .navbar-inner {
-    visibility: visible
-}
-
-.topbar-autohide {
-    display: inline
-}
-
-.hidden-topbar .topbar-autohide, span.topbar-fixed {
-    display: none
-}
-
-.hidden-topbar span.topbar-fixed {
-    display: inline
-}
-
-body.ipad {
-    margin: 1px
-}
-
-body.ios-wkwebview {
-    margin: 0;
-    padding: 0;
-    width: 100%
-}
-
-.image-render-visible {
-    display: none
-}
-
-.image-render .image-render-visible {
-    display: block
-}
-
-.image-render .image-render-hidden, .offline-disabled-hidden {
-    display: none
-}
-
-body.offline-enabled .offline-disabled-hidden {
-    display: block
-}
-
-#attachEditArea {
-    overflow: scroll;
-    outline: 0;
-    border: 1px solid #ccc;
-    padding: 4px;
-    margin: 10px;
-    box-sizing: content-box;
-    -webkit-box-shadow: rgba(0, 0, 0, .0745098) 0 1px 1px 0 inset;
-    box-shadow: rgba(0, 0, 0, .0745098) 0 1px 1px 0 inset;
-    border-radius: 3px;
-    background-color: #fff;
-    display: block;
-    clear: both
-}
-
-#modalAttachmentEditor .editor-topbar {
-    padding-right: 10px;
-    padding-left: 10px;
-    display: none
-}
-
-#modalAttachmentEditor.mm-editable .editor-topbar {
-    display: block
-}
-
-#modalAttachmentEditor .viewer-topbar {
-    margin-top: 5px;
-    margin-bottom: 5px;
-    padding-right: 10px;
-    padding-left: 10px;
-    height: 30px
-}
-
-#modalAttachmentEditor.mm-editable .viewer-topbar {
-    display: none
-}
-
-#modalAttachmentEditor button.close {
-    margin-left: 5px
-}
-
-#modalAttachmentEditor .editor-topbar > .btn-toolbar {
-    display: inline-block;
-    background-color: #eee;
-    width: 100%
-}
-
-#modalAttachmentEditor {
-    position: absolute;
-    height: 80%;
-    width: 80%;
-    left: 10%;
-    top: 10%;
-    padding: 5px;
-    z-index: 9999;
-    background-color: #eee;
-    -moz-border-radius: 6px;
-    border-radius: 6px;
-    margin: 0
-}
-
-@media (max-width: 1200px) {
-    #modalAttachmentEditor {
-        width: 90%;
-        left: 5%;
-        top: 5%
-    }
-}
-
-#modalAttachmentEditor .dropdown-menu .btn-toolbar {
-    display: block
-}
-
-#modalAttachmentEditor .dropdown-menu .btn-toolbar .btn-group {
-    margin-top: 5px;
-    margin-left: 5px;
-    margin-right: 5px
-}
-
-.android #modalAttachmentEditor .btn-toolbar, .ios #modalAttachmentEditor .btn-toolbar {
-    margin-top: 5px;
-    margin-bottom: 5px;
-    padding-bottom: 10px
-}
-
-.android #modalAttachmentEditor, .ios #modalAttachmentEditor {
-    top: 0;
-    height: 60%
-}
-
-@media (max-height: 768px) {
-    .android #modalAttachmentEditor, .ios #modalAttachmentEditor {
-        height: 37%
-    }
-}
-
-.non-group .btn {
-    margin-left: 5px
-}
-
-#linkEditWidget {
-    display: none;
-    z-index: 999;
-    position: absolute;
-    padding: 10px
-}
-
-.alert a {
-    text-decoration: underline;
-    cursor: pointer
-}
-
-.alert a.btn {
-    text-decoration: none
-}
-
-input.noglow {
-    outline: 0;
-    border: none !important;
-    box-shadow: none !important;
-    cursor: pointer
-}
-
-.visible-map-source-a, .visible-map-source-b, .visible-map-source-g, .visible-map-source-n, .visible-map-source-p {
-    display: none
-}
-
-.map-source-a .visible-map-source-a, .map-source-b .visible-map-source-b, .map-source-g .visible-map-source-g, .map-source-n .visible-map-source-n, .map-source-p .visible-map-source-p {
-    display: inherit
-}
-
-@media (max-width: 1200px) {
-    .hidden-narrow-screen {
-        display: none
-    }
-}
-
-@media (max-width: 1600px) {
-    #optionalPane .hidden-narrow-screen {
-        display: none
-    }
-}
-
-.btn-xlarge {
-    padding: 18px 28px;
-    font-size: 40px;
-    line-height: normal;
-    -webkit-border-radius: 8px;
-    -moz-border-radius: 8px;
-    border-radius: 8px;
-    width: 250px;
-    height: 180px;
-    margin-left: 10px;
-    margin-bottom: 10px
-}
-
-@media (max-height: 320px) {
-    .btn-xlarge {
-        padding: 9px 14px;
-        font-size: 20px;
-        line-height: normal;
-        -webkit-border-radius: 4px;
-        -moz-border-radius: 4px;
-        border-radius: 4px;
-        width: 230px;
-        height: 70px;
-        margin-left: 5px;
-        margin-bottom: 5px
-    }
-}
-
-@media (max-width: 320px) {
-    .btn-xlarge {
-        padding: 9px 14px;
-        font-size: 20px;
-        line-height: normal;
-        -webkit-border-radius: 4px;
-        -moz-border-radius: 4px;
-        border-radius: 4px;
-        width: 230px;
-        height: 70px;
-        margin-left: 5px;
-        margin-bottom: 5px
-    }
-
-    #mainMenu > li > a {
-        padding-left: 0;
-        padding-right: 15px
-    }
-
-    #logo-img {
-        margin: 0;
-        padding-left: 5px;
-        padding-right: 0
-    }
-}
-
-@media (min-height: 640px) {
-    #modalKeyActions .modal-body {
-        min-height: 400px
-    }
-}
-
-#modalKeyActions .item a span {
-    padding-right: 10px
-}
-
-#modalKeyActions a {
-    cursor: pointer;
-    color: #000
-}
-
-#modalKeyActions div.item > a {
-    text-decoration: underline
-}
-
-.social {
-    display: inline-block !important;
-    padding-left: 2px !important;
-    padding-right: 2px !important;
-    margin-right: 2px !important;
-    cursor: pointer
-}
-
-#modalGoldLicense textarea {
-    width: 95%;
-    height: 200px
-}
-
-#modalIconEdit .file-drop-zone {
-    width: 150px;
-    height: 150px;
-    border: 1px dashed #000;
-    color: gray;
-    font-size: 7px;
-    text-align: center
-}
-
-#modalIconEdit .file-drop-zone img {
-    max-width: 150px;
-    max-height: 150px
-}
-
-#modalIconEdit {
-    z-index: 9999
-}
-
-.btn .export {
-    max-width: 24px
-}
-
-.btn .landscape {
-    transform: rotate(90deg);
-    -moz-transform: rotate(90deg);
-    -webkit-transform: rotate(90deg)
-}
-
-#modalPDFExport form {
-    margin-top: 20px
-}
-
-.alert-error input {
-    background: 0 0;
-    margin: 0 0 2px;
-    color: #b94a48;
-    border: none !important;
-    outline: 0;
-    box-shadow: none !important;
-    width: 100%;
-    cursor: pointer
-}
-
-body .modal.huge {
-    width: 90%;
-    height: 80%;
-    left: 5%;
-    margin-left: auto;
-    margin-right: auto
-}
-
-#measuresSheet table {
-    background-color: #fff;
-    border: 1px solid #d4d4d4
-}
-
-#measuresSheet td {
-    text-align: right;
-    width: 20%
-}
-
-#measuresSheet th + th {
-    text-align: right
-}
-
-#measuresSheet table thead tr th {
-    border-bottom: 3px gray solid !important
-}
-
-#measuresSheet table tfoot tr th {
-    border-top: 3px gray solid !important
-}
-
-#measuresSheet table tbody th {
-    width: 30%
-}
-
-#measuresSheet form {
-    margin: 0 !important
-}
-
-#measuresSheet td:focus {
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-    outline: #5b9dd9 auto
-}
-
-.measures-editor.error {
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px red !important;
-    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px red !important;
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px red !important;
-    outline: red auto thin !important
-}
-
-#measuresSheet .modal-footer a {
-    margin-right: 20px;
-    margin-left: 20px;
-    line-height: 30px
-}
-
-#optionalPane .input-append.navbar-form button {
-    margin-top: 5px !important
-}
-
-#measuresSheet {
-    margin: 5px;
-    border-left: 1px;
-    user-select: none;
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none
-}
-
-.table-container {
-    margin-right: 5px
-}
-
-.column-split .table-container {
-    margin-bottom: 45px
-}
-
-.show-active {
-    display: none
-}
-
-.mm-active .show-active {
-    display: initial
-}
-
-.black {
-    color: #000 !important
-}
-
-.activated-scene {
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #7ab5d3;
-    outline: #5b9dd9 auto
-}
-
-#storyboard {
-    user-select: none;
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none
-}
-
-.storyboard-container {
-    padding-left: 10px;
-    padding-right: 10px
-}
-
-.storyboard-scene {
-    display: inline-block;
-    max-height: 120px;
-    max-width: 160px;
-    min-height: 120px;
-    min-width: 160px;
-    overflow: hidden;
-    background-color: #fff;
-    border: 1px solid silver;
-    border-radius: 4px;
-    color: #000;
-    margin: 10px;
-    text-align: center;
-    cursor: move
-}
-
-.storyboard-scene-title {
-    display: table-cell;
-    vertical-align: middle;
-    white-space: pre-wrap;
-    font-weight: 700
-}
-
-.drag-shadow {
-    opacity: .5;
-    box-shadow: none;
-    outline: 0;
-    cursor: move;
-    z-index: 10;
-    position: relative
-}
-
-.potential-drop-left {
-    margin-left: 0;
-    margin-right: 20px
-}
-
-.potential-drop-right {
-    margin-left: 20px;
-    margin-right: 0
-}
-
-#splittable {
-    width: 100%;
-    height: calc(100% - 41px);
-    margin-top: 41px;
-    -webkit-tap-highlight-color: transparent
-}
-
-.hidden-topbar:not(.column-split) > #splittable {
-    height: 100%;
-    margin-top: 0
-}
-
-.ios-wkwebview > #splittable {
-    width: 100%;
-    height: calc(100%);
-    margin-top: 0
-}
-
-.ios-wkwebview {
-    -webkit-tap-highlight-color: transparent
-}
-
-.splittable-optional .navbar {
-    width: 100%;
-    margin-bottom: 0
-}
-
-.splittable-optional .content {
-    overflow: scroll;
-    height: calc(100% - 41px)
-}
-
-.ios-wkwebview .splittable-optional .content {
-    overflow: scroll;
-    height: 100%
-}
-
-.splittable-primary {
-    outline: #d4d4d4 solid 1px
-}
-
-.splittable-optional {
-    display: none;
-    outline: #d4d4d4 solid 1px
-}
-
-.column-split .splittable-primary {
-    float: left;
-    height: 100%;
-    overflow: scroll;
-    width: 50%
-}
-
-.column-split .splittable-optional {
-    float: right;
-    height: 100%;
-    width: 50%;
-    display: block
-}
-
-.splittable-primary {
-    height: 100%;
-    width: 100%
-}
-
-.row-split .splittable-primary {
-    height: 50%;
-    overflow: scroll;
-    width: 100%
-}
-
-.row-split .splittable-optional {
-    height: 50%;
-    width: 100%;
-    display: block
-}
-
-#optionalPane {
-    background-color: #f5f5f5;
-    -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, .1);
-    -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, .1);
-    box-shadow: 0 1px 10px rgba(0, 0, 0, .1)
-}
-
-.splittable-optional .content-container {
-    height: 100%
-}
-
-.pull-middle {
-    display: table;
-    height: 100%
-}
-
-.pull-middle > div {
-    display: table-cell;
-    vertical-align: middle;
-    padding-left: 20%;
-    padding-right: 20%
-}
-
-.ios-menu-toggle-container {
-    position: absolute;
-    height: 90px;
-    width: 75px;
-    top: calc(100% - 90px);
-    left: 0;
-    overflow: hidden;
-    z-index: 999
-}
-
-.ios-corner-icon-container {
-    position: absolute;
-    height: 100px;
-    width: 75px;
-    top: 5;
-    left: -11px;
-    border: 1px solid #22AAE0;
-    background-color: #FFF;
-    border-radius: 5px;
-    box-shadow: 2px 2px 1px rgba(104, 104, 104, .8)
-}
-
-.ios-menu-toggle {
-    position: absolute;
-    top: 5;
-    left: 12;
-    height: 73px;
-    width: 65px
-}
-
-.ios-toolbar {
-    position: absolute;
-    box-shadow: 0 -1px 0 #22AAE0;
-    background-color: rgba(255, 255, 255, .85);
-    top: calc(100% - 80px);
-    left: 65px;
-    width: calc(100% - 65px);
-    height: 80px;
-    z-index: 998;
-    overflow: scroll
-}
-
-.ios-icon-label {
-    position: absolute;
-    font-family: Helvetica, "Arial Unicode MS", sans-serif;
-    font-size: 8pt;
-    color: #22AAE0;
-    font-weight: 400;
-    text-align: center;
-    line-height: 1.2;
-    top: calc(100% - 22px);
-    width: 50px;
-    left: 5px;
-    height: 22px
-}
-
-.ios-toolbar-item {
-    display: inline-block;
-    position: relative;
-    top: 0;
-    height: 75px;
-    width: 60px
-}
-
-.ios-toolbar-icon {
-    position: absolute;
-    left: 10px;
-    top: 8px;
-    height: 40px;
-    width: 40px
-}
-
-.ios-modal {
-    z-index: 1090;
-    position: absolute;
-    overflow: hidden;
-    left: 0;
-    top: 0;
-    height: 100%;
-    width: 100%;
-    background-color: rgba(255, 255, 255, .85)
-}
-
-.ios-modal-close {
-    position: absolute;
-    top: 20;
-    left: calc(100% - 45px);
-    height: 40px;
-    width: 40px
-}
-
-.ios-modal-title {
-    position: absolute;
-    left: 45px;
-    top: 30px;
-    height: 40px;
-    width: calc(100% - 90px);
-    text-align: center;
-    font-family: Helvetica, "Arial Unicode MS", sans-serif;
-    font-size: 12pt;
-    color: #22AAE0;
-    font-weight: 700;
-    line-height: 1.2
-}
-
-.ios-modal-content {
-    z-index: 1095;
-    position: absolute;
-    top: 80px;
-    height: calc(100% - 75px);
-    overflow-x: hidden;
-    overflow-y: auto;
-    background-color: #FFF;
-    border: 1px solid #22AAE0;
-    border-radius: 5px;
-    box-shadow: 2px 2px 1px rgba(104, 104, 104, .8)
-}
-
-.ios-color-selector {
-    display: inline-block;
-    box-shadow: 1px 1px 3px rgba(104, 104, 104, .7)
-}
-
-.ios-color-palette {
-    display: block;
-    text-align: center
-}
-
-@media (min-width: 601px) {
-    .ios-modal-content {
-        left: calc(50% - 300px);
-        width: 600px
-    }
-
-    .ios-color-palette {
-        margin: 20px 50px
-    }
-
-    .ios-color-selector {
-        margin: 20px;
-        height: 80px;
-        width: 80px;
-        border-radius: 40px
-    }
-}
-
-@media (max-width: 600px) {
-    .ios-modal-content {
-        left: calc(50% - 150px);
-        width: 300px
-    }
-
-    .ios-color-palette {
-        margin: 10px 20px
-    }
-
-    .ios-color-selector {
-        margin: 10px;
-        height: 40px;
-        width: 40px;
-        border-radius: 20px
-    }
-}
-
-.collaborator-list-container {
-    max-height: 200px;
-    overflow-y: scroll;
-    padding-top: 10px
-}
-
-.collaborator-list-container td {
-    cursor: pointer
-}
-
-.collaborator-list-container table {
-    margin-bottom: 0
-}
-
-.mm-collaborator {
-    position: absolute;
-    width: 32px;
-    height: 32px;
-    border: 3px solid transparent;
-    border-radius: 20px;
-    transform: translate(5px, 5px);
-    min-width: 30px
-}
-
-.collab-name {
-    overflow-x: hidden;
-    max-width: 50px;
-    white-space: nowrap
-}
-
-.collab-name a {
-    line-height: 30px
-}
-
-.collab-photo {
-    width: 30px
-}
-
-.collab-photo img {
-    width: 30px;
-    height: 30px;
-    float: left;
-    margin-right: 10px;
-    border: 2px solid transparent;
-    border-radius: 20px
-}
-
-#floating-collaborators {
-    position: absolute;
-    top: 100px;
-    left: 10px;
-    z-index: 999;
-    border: 1px solid #08c;
-    border-radius: 9px
-}
-
-.visible-collaboration-toolbar {
-    display: none
-}
-
-.map-source-c.collaboration-toolbar .visible-collaboration-toolbar {
-    display: initial !important
-}
-
-.collaboration-toolbar .hidden-collaboration-toolbar {
-    display: none !important
-}
-
-.mm-has-collaborators .hidden-has-collaborators, .visible-has-collaborators {
-    display: none
-}
-
-.mm-has-collaborators .visible-has-collaborators {
-    display: block
-}
-
-.visible-collaboration-mute-speech {
-    display: none
-}
-
-.collaboration-mute-speech .visible-collaboration-mute-speech {
-    display: initial !important
-}
-
-.collaboration-mute-speech .hidden-collaboration-mute-speech {
-    display: none !important
-}
-
-.btn-share {
-    margin-left: 10px;
-    margin-right: 10px
-}
-
-.mm-icon-gmail {
-    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNDU1NTUgMzMwOTciPg0KIDxnPg0KICA8cGF0aCBmaWxsPSIjRTc1QTREIiBkPSJNNDE2MDggMjUwYzIwMzAsMCAzNjkxLDE2NjEgMzY5MSwzNjkxbDAgMTA3MCAtNTEyOCAzNjYzIC0xNzQ1OCAxMjAyNiAtMTc0NTggLTEyMTQ4IDAgMjQyOTUgLTEzMTQgMGMtMjAzMCwwIC0zNjkxLC0xNjYxIC0zNjkxLC0zNjkxbDAgLTI1MjE0YzAsLTIwMzAgMTY2MSwtMzY5MSAzNjkxLC0zNjkxbDE4NzcyIDEzOTE4IDE4ODk0IC0xMzkxOHoiLz4NCiAgPHBvbHlnb24gZmlsbD0iI0U3RTRENyIgcG9pbnRzPSI1MjU1LDg1NTIgNTI1NSwzMjg0NyA0MDE3MiwzMjg0NyA0MDE3Miw4Njc0IDIyNzEzLDIwNzAwICIvPg0KICA8cG9seWdvbiBmaWxsPSIjQjhCN0FFIiBwb2ludHM9IjUyNTUsMzI4NDcgMjI3MTMsMjA3MDAgMjI2MzQsMjA2NDQgNTI1NSwzMjU4MCAiLz4NCiAgPHBvbHlnb24gZmlsbD0iI0I3QjZBRCIgcG9pbnRzPSI0MDE3Miw4Njc0IDQwMTgyLDMyODQ3IDIyNzEzLDIwNzAwICIvPg0KICA8cGF0aCBmaWxsPSIjQjIzOTJGIiBkPSJNNDUyOTkgNTAxMWw2IDI0MTQ4Yy04OCwyNjg0IC0xMjUxLDM2NDIgLTUxMjMsMzY4N2wtMTAgLTI0MTczIDUxMjggLTM2NjN6Ii8+DQogIDxwb2x5Z29uIGZpbGw9IiNGN0Y1RUQiIHBvaW50cz0iMzk0MSwyNTAgMjI3MTMsMTQxNjggNDE2MDgsMjUwICIvPg0KIDwvZz4NCjwvc3ZnPg0K);
-    padding: 15px 9px;
-    background-position: center center;
-    background-repeat: no-repeat
-}
-
-.mm-icon-gdrive {
-    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iNTA5LjA4bW0iIGhlaWdodD0iNDQwLjk3bW0iIHZlcnNpb249IjEuMSIgc3R5bGU9InNoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247IHRleHQtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgaW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTsgZmlsbC1ydWxlOmV2ZW5vZGQ7IGNsaXAtcnVsZTpldmVub2RkIg0Kdmlld0JveD0iMCAwIDEzMzE1NiAxMTUzNDEiDQogeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KIDxkZWZzPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgPCFbQ0RBVEFbDQogICAgLmZpbDIge2ZpbGw6IzExQTg2MX0NCiAgICAuZmlsMCB7ZmlsbDojMzc3N0UzfQ0KICAgIC5maWwxIHtmaWxsOiNGRkNGNjN9DQogICBdXT4NCiAgPC9zdHlsZT4NCiA8L2RlZnM+DQogPGcgaWQ9IkxpdmVsbG9feDAwMjBfMSI+DQogIDxtZXRhZGF0YSBpZD0iQ29yZWxDb3JwSURfMENvcmVsLUxheWVyIi8+DQogIDxwb2x5Z29uIGNsYXNzPSJmaWwwIiBwb2ludHM9IjIyMTk0LDExNTM0MSA0NDM4NSw3Njg5NCAxMzMxNTYsNzY4OTQgMTEwOTYzLDExNTM0MSAiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImZpbDEiIHBvaW50cz0iODg3NzIsNzY4OTQgMTMzMTU2LDc2ODk0IDg4NzcyLDAgNDQzODUsMCAiLz4NCiAgPHBvbHlnb24gY2xhc3M9ImZpbDIiIHBvaW50cz0iMCw3Njg5NCAyMjE5NCwxMTUzNDEgNjY1NzgsMzg0NDcgNDQzODUsMCAiLz4NCiA8L2c+DQo8L3N2Zz4=);
-    padding: 15px 9px;
-    background-position: center center;
-    background-repeat: no-repeat;
-    background-size: 100% 100%
-}
-
-#collaboratorSpeechBubble {
-    position: absolute;
-    z-index: 2;
-    top: 100px;
-    left: 20px
-}
-
-#collaboratorSpeechBubble img {
-    width: 60px;
-    height: 60px;
-    border-radius: 60px;
-    border: 2px solid transparent;
-    box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-    cursor: pointer
-}
-
-#collaboratorSpeechBubble img:hover {
-    box-shadow: 0 5px 10px rgba(0, 0, 0, .5)
-}
-
-.speech-bubble-inner {
-    max-width: 300px;
-    max-height: 100px;
-    min-width: 150px;
-    overflow: hidden
-}
-
-.speech-bubble-title {
-    max-width: 300px;
-    white-space: nowrap;
-    overflow: hidden
-}
-
-.icon-volume-off {
-    margin-left: 3px;
-    margin-right: 5px
-}
-
-.hidden-topbar #mainMenu .dropdown-menu {
-    margin-top: 0
-}
-
-.mapjs-node {
-    margin: 0;
-    padding: 7px;
-    border-radius: 10px;
-    border: 1px solid #777;
-    /*box-shadow: 5px 5px 5px rgba(204, 204, 204, .8);*/
-    z-index: 3;
-    user-select: none;
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none;
-    background-color: #E0E0E0;
-    color: #4F4F4F;
-    cursor: pointer;
-    font-family: Helvetica, "Arial Unicode MS", sans-serif;
-    font-weight: 700;
-    font-size: 12px
-}
-
-.mapjs-add-link {
-    cursor: crosshair
-}
-
-.mapjs-add-link .mapjs-node {
-    cursor: alias
-}
-
-.mapjs-node span {
-    white-space: pre-wrap;
-    text-align: center;
-    line-height: 150%;
-    display: block;
-    max-width: 146px;
-    min-height: 1.5em;
-    min-width: 1em;
-    outline: 0;
-    cursor: pointer
-}
-
-.mapjs-node span[contenteditable=true] {
-    user-select: text;
-    -moz-user-select: text;
-    -webkit-user-select: text;
-    -ms-user-select: text;
-    cursor: auto
-}
-
-.mapjs-node.activated {
-    outline: 0;
-    border: 3px dotted #2E9AFE;
-    margin: -2px
-}
-
-.mapjs-node:focus {
-    outline: 0
-}
-
-.mapjs-node.selected {
-    outline: 0;
-    /*box-shadow: 5px 5px 5px #000;*/
-    z-index: 4
-}
-
-.mapjs-node.dragging {
-    opacity: .4;
-    z-index: 5
-}
-
-/*.mapjs-node.collapsed {*/
-    /*box-shadow: 3px 3px 0 #A0A0A0, 4px 4px 0 #333, 6px 6px 0 #707070, 7px 7px 0 #222*/
-/*}*/
-
-/*.mapjs-node.collapsed.selected {*/
-    /*box-shadow: 4px 4px 0 #A0A0A0, 5px 5px 0 #333, 8px 8px 0 #707070, 9px 9px 0 #222, 12px 12px 5px #000*/
-/*}*/
-
-/*.mapjs-node[mapjs-level="1"] {*/
-    /*background-color: #22AAE0*/
-/*}*/
-
-/*.mapjs-node[mapjs-level="1"].activated {*/
-    /*border: 3px dotted #E0E0E0*/
-/*}*/
-
-.mapjs-node.droppable {
-    outline: 0;
-    border: 3px dashed #EF6F6F;
-    margin: -2px
-}
-
-.mapjs-node-light {
-    color: #4F4F4F
-}
-
-.mapjs-node-dark {
-    color: #EEE
-}
-
-.mapjs-node-white {
-    color: #000
-}
-
-.mapjs-label {
-    left: -.75em;
-    position: absolute;
-    bottom: -1em;
-    opacity: .8;
-    background-color: #f13333;
-    padding: 1px 2px;
-    border: 1px solid #fff;
-    -webkit-border-radius: 9px;
-    -moz-border-radius: 9px;
-    border-radius: 9px;
-    display: inline-block;
-    font-size: 10px;
-    font-weight: 700;
-    line-height: 14px;
-    color: #fff;
-    text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
-    white-space: nowrap;
-    vertical-align: baseline
-}
-
-.mapjs-hyperlink {
-    right: -.75em;
-    position: absolute;
-    bottom: -.75em;
-    background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoNCgkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQoNCjxwYXRoIHN0eWxlPSJmaWxsOmJsYWNrIiBkPSJNMTU2LjIyNiwxOTkuNjc5YzcuNTQxLTcuNTQsMTUuOTAyLTEzLjc1NywyNC43OTQtMTguNjU5YzQ5LjU1Ni0yNy4zMTgsMTEzLjExNy0xMi43ODgsMTQ0Ljk3LDM1LjUxOA0KDQoJbC0zOC41NDcsMzguNTQ3Yy0xMS4wNTktMjUuMjI3LTM4LjUtMzkuNTY1LTY1LjgxMy0zMy40NTZjLTEwLjI4MiwyLjMtMjAuMDU0LDcuNDI3LTI4LjAzOSwxNS40MTNsLTczLjg5OCw3My44OTYNCg0KCWMtMjIuNDMzLDIyLjQzMy0yMi40MzIsNTguOTM2LDAuMDAyLDgxLjM2OWMyMi40MzMsMjIuNDMzLDU4LjkzNSwyMi40MzMsODEuMzY4LDBsMjIuNzgtMjIuNzc5DQoNCgljMjAuNzEsOC4yMTcsNDIuOTM4LDExLjUwOCw2NC44NjIsOS44NjNsLTUwLjI3OCw1MC4yNzhjLTQzLjEwNSw0My4xMDUtMTEyLjk5MSw0My4xMDUtMTU2LjA5NiwwDQoNCgljLTQzLjEwNS00My4xMDQtNDMuMTA2LTExMi45OTEtMC4wMDEtMTU2LjA5NkwxNTYuMjI2LDE5OS42Nzl6IE0yNzMuNTc0LDgyLjMzbC01MC4yNzgsNTAuMjc4DQoNCgljMjEuOTI4LTEuNjQzLDQ0LjE1MiwxLjY0OCw2NC44NjMsOS44NjVsMjIuNzc5LTIyLjc4YzIyLjQzNC0yMi40MzQsNTguOTM2LTIyLjQzNCw4MS4zNywwYzIyLjQzNCwyMi40MzQsMjIuNDM0LDU4LjkzNiwwLDgxLjM3DQoNCglsLTczLjg5Nyw3My44OTVjLTIyLjUwMSwyMi41MDEtNTkuMDYxLDIyLjMxMS04MS4zNjgsMGMtNS4yMDItNS4yMDEtOS42OTQtMTEuNjc4LTEyLjQ4NC0xOC4wNGwtMzguNTQ2LDM4LjU0Ng0KDQoJYzQuMDQ5LDYuMTQyLDguMjYxLDExLjQ1MywxMy42NjYsMTYuODU4YzEzLjk0OSwxMy45NSwzMS42OTgsMjQuMzM5LDUyLjExNywyOS4yNTFjMjYuNDY2LDYuMzcsNTQuODIzLDIuODM5LDc5LjE4NS0xMC41OTINCg0KCWM4Ljg5Mi00LjkwMywxNy4yNTQtMTEuMTE5LDI0Ljc5NC0xOC42NTlsNzMuODk2LTczLjg5NWM0My4xMDUtNDMuMTA1LDQzLjEwNS0xMTIuOTkxLDAuMDAxLTE1Ni4wOTcNCg0KCUMzODYuNTY2LDM5LjIyNSwzMTYuNjgsMzkuMjI1LDI3My41NzQsODIuMzN6Ii8+DQo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAsLTIwKSIgc3R5bGU9ImZpbGw6IzAwOUFDRCI+DQo8cGF0aCAgZD0iTTE1Ni4yMjYsMTk5LjY3OWM3LjU0MS03LjU0LDE1LjkwMi0xMy43NTcsMjQuNzk0LTE4LjY1OWM0OS41NTYtMjcuMzE4LDExMy4xMTctMTIuNzg4LDE0NC45NywzNS41MTgNCg0KCWwtMzguNTQ3LDM4LjU0N2MtMTEuMDU5LTI1LjIyNy0zOC41LTM5LjU2NS02NS44MTMtMzMuNDU2Yy0xMC4yODIsMi4zLTIwLjA1NCw3LjQyNy0yOC4wMzksMTUuNDEzbC03My44OTgsNzMuODk2DQoNCgljLTIyLjQzMywyMi40MzMtMjIuNDMyLDU4LjkzNiwwLjAwMiw4MS4zNjljMjIuNDMzLDIyLjQzMyw1OC45MzUsMjIuNDMzLDgxLjM2OCwwbDIyLjc4LTIyLjc3OQ0KDQoJYzIwLjcxLDguMjE3LDQyLjkzOCwxMS41MDgsNjQuODYyLDkuODYzbC01MC4yNzgsNTAuMjc4Yy00My4xMDUsNDMuMTA1LTExMi45OTEsNDMuMTA1LTE1Ni4wOTYsMA0KDQoJYy00My4xMDUtNDMuMTA0LTQzLjEwNi0xMTIuOTkxLTAuMDAxLTE1Ni4wOTZMMTU2LjIyNiwxOTkuNjc5eiBNMjczLjU3NCw4Mi4zM2wtNTAuMjc4LDUwLjI3OA0KDQoJYzIxLjkyOC0xLjY0Myw0NC4xNTIsMS42NDgsNjQuODYzLDkuODY1bDIyLjc3OS0yMi43OGMyMi40MzQtMjIuNDM0LDU4LjkzNi0yMi40MzQsODEuMzcsMGMyMi40MzQsMjIuNDM0LDIyLjQzNCw1OC45MzYsMCw4MS4zNw0KDQoJbC03My44OTcsNzMuODk1Yy0yMi41MDEsMjIuNTAxLTU5LjA2MSwyMi4zMTEtODEuMzY4LDBjLTUuMjAyLTUuMjAxLTkuNjk0LTExLjY3OC0xMi40ODQtMTguMDRsLTM4LjU0NiwzOC41NDYNCg0KCWM0LjA0OSw2LjE0Miw4LjI2MSwxMS40NTMsMTMuNjY2LDE2Ljg1OGMxMy45NDksMTMuOTUsMzEuNjk4LDI0LjMzOSw1Mi4xMTcsMjkuMjUxYzI2LjQ2Niw2LjM3LDU0LjgyMywyLjgzOSw3OS4xODUtMTAuNTkyDQoNCgljOC44OTItNC45MDMsMTcuMjU0LTExLjExOSwyNC43OTQtMTguNjU5bDczLjg5Ni03My44OTVjNDMuMTA1LTQzLjEwNSw0My4xMDUtMTEyLjk5MSwwLjAwMS0xNTYuMDk3DQoNCglDMzg2LjU2NiwzOS4yMjUsMzE2LjY4LDM5LjIyNSwyNzMuNTc0LDgyLjMzeiIvPg0KPC9nPg0KDQo8L3N2Zz4NCg0K);
-    width: 2em;
-    height: 2em;
-    background-size: 2em;
-    background-repeat: no-repeat no-repeat
-}
-
-.mapjs-hyperlink:hover {
-    background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoNCgkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQoNCjxwYXRoIHN0eWxlPSJmaWxsOmJsYWNrIiBkPSJNMTU2LjIyNiwxOTkuNjc5YzcuNTQxLTcuNTQsMTUuOTAyLTEzLjc1NywyNC43OTQtMTguNjU5YzQ5LjU1Ni0yNy4zMTgsMTEzLjExNy0xMi43ODgsMTQ0Ljk3LDM1LjUxOA0KDQoJbC0zOC41NDcsMzguNTQ3Yy0xMS4wNTktMjUuMjI3LTM4LjUtMzkuNTY1LTY1LjgxMy0zMy40NTZjLTEwLjI4MiwyLjMtMjAuMDU0LDcuNDI3LTI4LjAzOSwxNS40MTNsLTczLjg5OCw3My44OTYNCg0KCWMtMjIuNDMzLDIyLjQzMy0yMi40MzIsNTguOTM2LDAuMDAyLDgxLjM2OWMyMi40MzMsMjIuNDMzLDU4LjkzNSwyMi40MzMsODEuMzY4LDBsMjIuNzgtMjIuNzc5DQoNCgljMjAuNzEsOC4yMTcsNDIuOTM4LDExLjUwOCw2NC44NjIsOS44NjNsLTUwLjI3OCw1MC4yNzhjLTQzLjEwNSw0My4xMDUtMTEyLjk5MSw0My4xMDUtMTU2LjA5NiwwDQoNCgljLTQzLjEwNS00My4xMDQtNDMuMTA2LTExMi45OTEtMC4wMDEtMTU2LjA5NkwxNTYuMjI2LDE5OS42Nzl6IE0yNzMuNTc0LDgyLjMzbC01MC4yNzgsNTAuMjc4DQoNCgljMjEuOTI4LTEuNjQzLDQ0LjE1MiwxLjY0OCw2NC44NjMsOS44NjVsMjIuNzc5LTIyLjc4YzIyLjQzNC0yMi40MzQsNTguOTM2LTIyLjQzNCw4MS4zNywwYzIyLjQzNCwyMi40MzQsMjIuNDM0LDU4LjkzNiwwLDgxLjM3DQoNCglsLTczLjg5Nyw3My44OTVjLTIyLjUwMSwyMi41MDEtNTkuMDYxLDIyLjMxMS04MS4zNjgsMGMtNS4yMDItNS4yMDEtOS42OTQtMTEuNjc4LTEyLjQ4NC0xOC4wNGwtMzguNTQ2LDM4LjU0Ng0KDQoJYzQuMDQ5LDYuMTQyLDguMjYxLDExLjQ1MywxMy42NjYsMTYuODU4YzEzLjk0OSwxMy45NSwzMS42OTgsMjQuMzM5LDUyLjExNywyOS4yNTFjMjYuNDY2LDYuMzcsNTQuODIzLDIuODM5LDc5LjE4NS0xMC41OTINCg0KCWM4Ljg5Mi00LjkwMywxNy4yNTQtMTEuMTE5LDI0Ljc5NC0xOC42NTlsNzMuODk2LTczLjg5NWM0My4xMDUtNDMuMTA1LDQzLjEwNS0xMTIuOTkxLDAuMDAxLTE1Ni4wOTcNCg0KCUMzODYuNTY2LDM5LjIyNSwzMTYuNjgsMzkuMjI1LDI3My41NzQsODIuMzN6Ii8+DQo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAsLTIwKSIgc3R5bGU9ImZpbGw6IzAwQkZGRiI+DQo8cGF0aCAgZD0iTTE1Ni4yMjYsMTk5LjY3OWM3LjU0MS03LjU0LDE1LjkwMi0xMy43NTcsMjQuNzk0LTE4LjY1OWM0OS41NTYtMjcuMzE4LDExMy4xMTctMTIuNzg4LDE0NC45NywzNS41MTgNCg0KCWwtMzguNTQ3LDM4LjU0N2MtMTEuMDU5LTI1LjIyNy0zOC41LTM5LjU2NS02NS44MTMtMzMuNDU2Yy0xMC4yODIsMi4zLTIwLjA1NCw3LjQyNy0yOC4wMzksMTUuNDEzbC03My44OTgsNzMuODk2DQoNCgljLTIyLjQzMywyMi40MzMtMjIuNDMyLDU4LjkzNiwwLjAwMiw4MS4zNjljMjIuNDMzLDIyLjQzMyw1OC45MzUsMjIuNDMzLDgxLjM2OCwwbDIyLjc4LTIyLjc3OQ0KDQoJYzIwLjcxLDguMjE3LDQyLjkzOCwxMS41MDgsNjQuODYyLDkuODYzbC01MC4yNzgsNTAuMjc4Yy00My4xMDUsNDMuMTA1LTExMi45OTEsNDMuMTA1LTE1Ni4wOTYsMA0KDQoJYy00My4xMDUtNDMuMTA0LTQzLjEwNi0xMTIuOTkxLTAuMDAxLTE1Ni4wOTZMMTU2LjIyNiwxOTkuNjc5eiBNMjczLjU3NCw4Mi4zM2wtNTAuMjc4LDUwLjI3OA0KDQoJYzIxLjkyOC0xLjY0Myw0NC4xNTIsMS42NDgsNjQuODYzLDkuODY1bDIyLjc3OS0yMi43OGMyMi40MzQtMjIuNDM0LDU4LjkzNi0yMi40MzQsODEuMzcsMGMyMi40MzQsMjIuNDM0LDIyLjQzNCw1OC45MzYsMCw4MS4zNw0KDQoJbC03My44OTcsNzMuODk1Yy0yMi41MDEsMjIuNTAxLTU5LjA2MSwyMi4zMTEtODEuMzY4LDBjLTUuMjAyLTUuMjAxLTkuNjk0LTExLjY3OC0xMi40ODQtMTguMDRsLTM4LjU0NiwzOC41NDYNCg0KCWM0LjA0OSw2LjE0Miw4LjI2MSwxMS40NTMsMTMuNjY2LDE2Ljg1OGMxMy45NDksMTMuOTUsMzEuNjk4LDI0LjMzOSw1Mi4xMTcsMjkuMjUxYzI2LjQ2Niw2LjM3LDU0LjgyMywyLjgzOSw3OS4xODUtMTAuNTkyDQoNCgljOC44OTItNC45MDMsMTcuMjU0LTExLjExOSwyNC43OTQtMTguNjU5bDczLjg5Ni03My44OTVjNDMuMTA1LTQzLjEwNSw0My4xMDUtMTEyLjk5MSwwLjAwMS0xNTYuMDk3DQoNCglDMzg2LjU2NiwzOS4yMjUsMzE2LjY4LDM5LjIyNSwyNzMuNTc0LDgyLjMzeiIvPg0KPC9nPg0KDQo8L3N2Zz4NCg==)
-}
-
-.mapjs-attachment {
-    right: -5px;
-    position: absolute;
-    top: -15px;
-    background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoJIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjMycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJ0cmFuc2Zvcm06cm90YXRlKDEwKSI+DQogPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiwtMikgcm90YXRlKDEwKSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MiI+DQogICA8cGF0aCBkPSJNNCwxNiBMNCwxMSBDNCwxIDE1LDEgMTUsMTEgTDE1LDI2IEMxNSwzMSA4LDMxIDgsMjUgTDgsMTAiDQogICAgIHN0eWxlPSJzdHJva2U6YmxhY2siLz4NCiAgIDxwYXRoIGQ9Ik0zLDE2IEwzLDEwIEMzLDAgMTQsMCAxNCwxMCBMMTQsMjUgQzE0LDMwIDcsMzAgNywyNSBMNywxMCINCiAgICAgc3R5bGU9InN0cm9rZTojMDA5QUNEIi8+DQogIDwvZz4NCjwvc3ZnPg0K);
-    width: 16px;
-    height: 32px;
-    background-size: 16px 32px;
-    background-repeat: no-repeat no-repeat
-}
-
-.mapjs-attachment:hover {
-    background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQoJIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjMycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJ0cmFuc2Zvcm06cm90YXRlKDEwKSI+DQogPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiwtMikgcm90YXRlKDEwKSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MiI+DQogICA8cGF0aCBkPSJNNCwxNiBMNCwxMSBDNCwxIDE1LDEgMTUsMTEgTDE1LDI2IEMxNSwzMSA4LDMxIDgsMjUgTDgsMTAiDQogICAgIHN0eWxlPSJzdHJva2U6YmxhY2siLz4NCiAgIDxwYXRoIGQ9Ik0zLDE2IEwzLDEwIEMzLDAgMTQsMCAxNCwxMCBMMTQsMjUgQzE0LDMwIDcsMzAgNywyNSBMNywxMCINCiAgICAgc3R5bGU9InN0cm9rZTojMDBCRkZGIi8+DQogIDwvZz4NCjwvc3ZnPg0K)
-}
-
-.mapjs-draw-container {
-    position: absolute;
-    margin: 0;
-    padding: 0
-}
-
-.mapjs-draw-container[data-mapjs-role=connector] {
-    z-index: 1
-}
-
-.mapjs-draw-container[data-mapjs-role=link] {
-    z-index: 2
-}
-
-.mapjs-connector {
-    stroke-width: 1px;
-    fill: none;
-    stroke: #888
-}
-
-.mapjs-link {
-    stroke-width: 1.5px;
-    fill: none
-}
-
-.mapjs-link-hit {
-    stroke: transparent;
-    stroke-width: 15;
-    cursor: crosshair
-}
-
-#container {
-    background-color: #FFF;
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none;
-    margin: 0;
-    padding: 0
-}
-
-.mapjs-reorder-bounds {
-    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjExcHgiIGhlaWdodD0iMjAuNjM0cHgiPg0KPHBhdGggZD0iTTAuMTk5LDEwLjc5bDkuNjQ2LDkuNjQ2YzAuMTMsMC4xMzMsMC4zMDIsMC4xOTcsMC40NzEsMC4xOTdjMC4xNzMsMCwwLjM0NC0wLjA2NCwwLjQ3My0wLjE5N2wwLjAxMy0wLjAxMQ0KCUMxMC45MjksMjAuMzA1LDExLDIwLjEzMiwxMSwxOS45NTJ2LTQuNjhjMC0wLjE4Mi0wLjA3LTAuMzQ3LTAuMTk4LTAuNDc1TDYuMzIzLDEwLjMybDQuNDc5LTQuNDgzQzEwLjkyOSw1LjcxNCwxMSw1LjU0MywxMSw1LjM2NA0KCVYwLjY4MmMwLTAuMTc2LTAuMDctMC4zNDUtMC4xOTgtMC40NzRsLTAuMDEzLTAuMDEyQzEwLjY2NywwLjA3MSwxMC40OTcsMCwxMC4zMTYsMEMxMC4xNDMsMCw5Ljk3LDAuMDcxLDkuODQ1LDAuMTk2TDAuMTk5LDkuODQ1DQoJQy0wLjA2NiwxMC4xMDQtMC4wNjYsMTAuNTMyLDAuMTk5LDEwLjc5eiIvPg0KPC9zdmc+);
-    background-height: 100%;
-    background-width: 100%;
-    height: 20px;
-    width: 11px;
-    z-index: 999;
-    background-repeat: no-repeat
-}
-
-.mapjs-reorder-bounds[mapjs-edge=left] {
-    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjExcHgiIGhlaWdodD0iMjAuNjM0cHgiPg0KICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEsIDApIHNjYWxlKC0xLCAxKSI+DQo8cGF0aCBkPSJNMC4xOTksMTAuNzlsOS42NDYsOS42NDZjMC4xMywwLjEzMywwLjMwMiwwLjE5NywwLjQ3MSwwLjE5N2MwLjE3MywwLDAuMzQ0LTAuMDY0LDAuNDczLTAuMTk3bDAuMDEzLTAuMDExDQoJQzEwLjkyOSwyMC4zMDUsMTEsMjAuMTMyLDExLDE5Ljk1MnYtNC42OGMwLTAuMTgyLTAuMDctMC4zNDctMC4xOTgtMC40NzVMNi4zMjMsMTAuMzJsNC40NzktNC40ODNDMTAuOTI5LDUuNzE0LDExLDUuNTQzLDExLDUuMzY0DQoJVjAuNjgyYzAtMC4xNzYtMC4wNy0wLjM0NS0wLjE5OC0wLjQ3NGwtMC4wMTMtMC4wMTJDMTAuNjY3LDAuMDcxLDEwLjQ5NywwLDEwLjMxNiwwQzEwLjE0MywwLDkuOTcsMC4wNzEsOS44NDUsMC4xOTZMMC4xOTksOS44NDUNCglDLTAuMDY2LDEwLjEwNC0wLjA2NiwxMC41MzIsMC4xOTksMTAuNzl6Ii8+DQogIDwvZz4NCjwvc3ZnPg==)
-}
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_default_variables.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_default_variables.scss
deleted file mode 100644
index 4ef0ca3..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_default_variables.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-$form-input-height: 25px !default;
-$mup-background-menu: white !default;
-$mindmup-node-shadow: 5px 5px 5px 0 gray !default;
-
-$retrace: .75 * $box-padding !default;
-$retrace-mod: (0.25)*$box-padding !default;
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_frame.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_frame.scss
deleted file mode 100644
index cefc367..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_frame.scss
+++ /dev/null
@@ -1,211 +0,0 @@
-$legend-width: 260px;
-.mindmup {
-  &-cont {
-    margin: 0 (-$retrace) $retrace-mod;
-    width: auto;
-    overflow: hidden;
-    @include respond-to(max-small-screen) {
-      margin-top: -$box-padding;
-    }
-  }
-  &-container {
-    @extend %user-select-none !optional;
-    position: relative;
-    cursor: all-scroll;
-    border-top: none;
-    box-sizing: border-box;
-    background-color: mix($color-background, $color-foreground);
-    margin: 0;
-    padding: 0;
-    outline: none;
-    overflow-y: hidden !important;
-    @extend %pattern-grid-background !optional;
-  }
-  &__legend {
-    &-container {
-      @extend %box-shadow !optional;
-      @extend %material__elevation--depth_2 !optional;
-      background-color: $color-foreground;
-      position: absolute;
-      left: $gap;
-      top: $gap;
-      width: $legend-width;
-      @include respond-to(max-small-screen) {
-        top: 110%;
-      }
-      //@include respond-to(max-small-screen) {
-      //  display: none;
-      //}
-      &--hidden {
-        display: none;
-      }
-    }
-    &-header {
-      background: mix($color-foreground, $color-background);
-      padding: $gap;
-      @extend %flex;
-      & > label {
-        @extend %flex-grow-1;
-      }
-    }
-    &-toggler {
-      a {
-        color: rgba($color-text, .5);
-        font-size: 1.5em;
-        line-height: $form-input-height;
-      }
-      .tip {
-        display: none;
-      }
-      &.active {
-        a {
-          @if map-has-key($icons, 'expand-less') {
-            @include icon-parent('expand-less');
-          }
-        }
-      }
-    }
-  }
-  &-noselect {
-    @extend %user-select-none !optional;
-  }
-  &__menu {
-    @extend %box-sizing-border-box !optional;
-    //@extend %material__elevation--inline !optional;
-    @extend %box-shadow-none !optional;
-    @extend %flex !optional;
-    @extend %justify-content-space-between !optional;
-    user-select: none;
-    position: relative;
-    z-index: 1;
-    background-color: $mup-background-menu;
-    //overflow-x: hidden;
-    //border-top: 1px solid $color-border-minor;
-    border-bottom: 1px solid $color-border-minor;
-
-    //margin: 0 (-$retrace-mod);
-    padding: $box-padding;
-    //@include respond-to(min-medium-screen){
-    //  padding-left: $gap + $box-padding + $legend-width;
-    //}
-    &-item {
-      display: inline-block;
-      text-align: left;
-
-      a.active {
-        //* TODO - WILL BE REMOVED after changes in @menu-tooltip
-        // 035b00e84609610ee12cb93294ea823bd2f130ad
-        // 62002a072a0997a8b275a528c8e4aefa41a48412
-        color: #d94838 !important;
-        &:before {
-          color: #d94838 !important;
-        }
-      }
-
-      @include respond-to(max-medium-screen) {
-        & > a {
-          padding-right: 0;
-          & > span {
-            display: none;
-          }
-        }
-      }
-      @include respond-to(max-xlarge-screen) {
-        & > a {
-          &.easy-mindmup__icon--settings, &.easy-mindmup__icon--display {
-            padding-right: 0;
-            & > span {
-              display: none;
-            }
-          }
-        }
-      }
-    }
-    .right-menu {
-      float: right;
-    }
-    &-group {
-      ul {
-        margin: 0;
-      }
-      &--tooltiped {
-        .easy & {
-          @extend %menu-tooltip !optional;
-        }
-        & > ul {
-          display: none;
-        }
-        &:hover {
-          & > ul {
-            display: block;
-          }
-        }
-      }
-      &--sizing {
-        @extend %flex-grow-1 !optional;
-        text-align: center;
-        font-size: 1.5em;
-        position: absolute;
-        bottom: -2*$box-padding;
-        right: $box-padding;
-        line-height: $box-padding;
-        @include respond-to(max-small-screen) {
-          display: none;
-        }
-        a {
-          color: rgba($color-text, .5);
-          text-decoration: none;
-        }
-        li {
-          list-style: none;
-          display: inline-block;
-        }
-      }
-      &-display {
-        @include respond-to(min-small-screen) {
-          margin-left: $gap + $legend-width
-        }
-
-      }
-      .mindmup__legend-container--hidden + &-display {
-        margin-left: 0
-      }
-    }
-    &-save {
-    }
-  }
-  &_hover_menu {
-    display: block;
-    position: absolute;
-    z-index: 99;
-    background-color: white;
-    min-width: 160px;
-    padding: 5px 0;
-    margin: 2px 0 0;
-    border: 1px solid rgba(0, 0, 0, 0.2);
-    @extend %border-radius !optional;
-    @include box-shadow(0 5px 10px rgba(0, 0, 0, 0.2));
-    @extend %background-clip-padding-box !optional;
-  }
-  &-reload-modal-errors li {
-    color: $color-negative;
-  }
-
-  &-last-modal-diffs li {
-    color: $color-important;
-  }
-  &__button {
-    &--disabled {
-      opacity: 0.4;
-    }
-  }
-  &_modal {
-    &__flash_close {
-      position: absolute;
-      right: $gap;
-      font-size: 2*$gap;
-      line-height: 2*$gap;
-    }
-  }
-}
-
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_icons.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_icons.scss
deleted file mode 100644
index 09a1d23..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_icons.scss
+++ /dev/null
@@ -1,50 +0,0 @@
-$mindmup-icons: (
-        add: \e3ba,
-        add_sibling: \e3ba,
-        insert_between: \e3bb,
-        remove: \e92b,
-        rename: \e22b,
-        edit_data: \e880,
-        follow_url: \e0e2,
-        zoom_in: \e8ff,
-        zoom_out:\e900,
-        refresh_view: \e881,
-        filter: \e152,
-        cancel: \e5c9,
-        cancel_filter: \e5c9,
-        close: \e5cd,
-        display: \e417,
-        links: \e157,
-        icons: \e24e,
-        collapse: \e909,
-        expand: \e146,
-        one_side: \e86d,
-        settings: \e8b8,
-        undo: \e166,
-        redo: \e15a,
-        print: \e16b,
-        cut: \e14e,
-        copy: \e14d,
-        paste: \e14f,
-        save: \e161,
-        legend: \e5d2,
-        legend_hide: \e06d,
-);
-
-.easy-mindmup {
-  &__icon {
-    @include icon-parent;
-    &:before {
-      font-family: "Material Icons", sans-serif;
-    }
-    @each $icon, $sign in $mindmup-icons {
-      &--#{$icon}:before {
-        content: unicode($sign);
-      }
-    }
-    &.button {
-      @extend %button-with-icon;
-      padding-left: 3*$gap;
-    }
-  }
-}
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_legend.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_legend.scss
deleted file mode 100644
index 7d689ac..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_legend.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-.mindmup{
-  &-legend {
-    @extend %background-clip-padding-box !optional;
-    overflow-y: auto;
-    padding: $gap $box-padding;
-    overflow-x: hidden;
-    &-color-box {
-      //@include mindmup-scheme($color-border-minor);
-      background-color: #E0E0E0;
-      border-color: #E0E0E0;
-      @extend %border-radius-infinite !optional;
-      //&:before{
-      //  content: 'B';
-      //  font-weight: bold;
-      //  display: block;
-      //  text-align: center;
-      //}
-      width: $box-padding;
-      height: $box-padding;
-      display: inline-block;
-      border-width: 1px;
-      border-style: solid;
-      vertical-align: middle;
-      margin-right: 5px;
-    }
-    &-used-toggle{
-      float:right;
-      margin: 5px 0;
-    }
-    &-item{
-      &-cont{
-        cursor: pointer;
-        margin-top: 0.5*$gap;
-      }
-    }
-    .hotkey_link {
-      margin: $gap (-$gap) 0;
-      padding-top: $gap;
-      border-top: 1px solid $color-border-minor;
-      .easy & a{
-        color: rgba($color-text, .5);
-      }
-    }
-    &__filter{
-      &_cont{
-        position: absolute;
-        right: $gap;
-      }
-      &_icon{
-        color: rgba($color-text, .4);;
-        font-size: 2em;
-        padding: 5px;
-      }
-      &_cancel_icon{
-        position: absolute;
-        display: none;
-        color: lighten($color-negative,10);
-        //color: $color-negative;
-        font-size: 2em;
-        padding: 0 5px 5px;
-      }
-      &_cont:hover &_cancel_icon{
-        display: inline;
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mapjs.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mapjs.scss
deleted file mode 100644
index 4cc10c6..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mapjs.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-.mapjs{
-  &-connector{
-    stroke: darken($color-border,5%);
-    //stroke-width: 2px;
-    //stroke-dasharray: 2, 2;
-  }
-  &-draw{
-    &-container{
-      pointer-events: none;
-      overflow: visible;
-      &[data-mapjs-role=connector]{
-
-      }
-    }
-  }
-  &-link-hit {
-    pointer-events: all;
-    fill: none;
-  }
-  &-exclamation {
-    right: -.9em;
-    position: absolute;
-    top: -.9em;
-    background-image: url(data:image/png;base64,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);
-    width: 2em;
-    height: 2em;
-    background-size: 2em;
-    background-repeat: no-repeat no-repeat
-  }
-}
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mixins.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mixins.scss
deleted file mode 100644
index 953d642..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_mixins.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@mixin mindmup-scheme($color){
-  background-color: $color;
-  &.activated {
-    background-color: darken($color, 10%);
-  }
-}
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_nodes.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_nodes.scss
deleted file mode 100644
index 08726a7..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_nodes.scss
+++ /dev/null
@@ -1,130 +0,0 @@
-.mapjs {
-  &-node {
-    border: 1px solid transparent; // !important;
-    @extend %border-radius-small !optional;
-    //@include mindmup-scheme($color-border-minor);
-    //@include box-shadow(0 0 3px 0px rgba($black, .25));
-    @include box-shadow(none);
-    @include mindmup-scheme($mindmup-default-node-color);
-    color: $color-text;
-    padding: 0.75*$gap 1.5*$gap;
-    margin: 0;
-    &.activated, &.selected, &.droppable {
-      @include box-shadow($mindmup-node-shadow);
-      @extend %material__elevation--depth_4 !optional;
-      margin-left: -2px;
-    }
-    &.activated {
-      border: 1px solid transparent;
-    }
-    &.droppable {
-      border-color: $color-important;
-    }
-    span {
-      word-wrap: break-word;
-    }
-  }
-  &-collapsor {
-    @extend %border-radius-infinite !optional;
-    position: absolute;
-    left: auto;
-    top: 50%;
-    right: -$gap - 2;
-    margin-top: -$gap;
-    background-color: $white;
-    color: $button-negative-background;
-    line-height: 1;
-    font-size: 2*$gap;
-    font-weight: normal;
-
-    font-family: "Material Icons", sans-serif;
-    @extend %material-icon !optional;
-    &:before {
-      content: '\e15c'
-    }
-    .collapsed & {
-      color: $button-positive-background;
-      &:before {
-        content: '\e147'
-      }
-    }
-    .mindmup-node-left & {
-      right: auto;
-      left: -$gap - 2;
-    }
-    .mapjs-node:hover & {
-      font-size: 2.5*$gap;
-      margin-top: -$gap - 2;
-      right: -$gap - 5;
-    }
-    .mindmup-node-left:hover & {
-      left: -$gap - 5;
-      right: auto;
-    }
-  }
-}
-
-.mindmup {
-  &-node {
-    &-filtered {
-      opacity: 0.2;
-    }
-    &-icon {
-      height: 20px;
-      display: inline-block;
-      margin-right: 3px;
-      vertical-align: middle;
-      &-progress {
-        width: 4px;
-        background-color: $color-border;
-        @extend %rotate-90cw;
-        margin: 0 $gap;
-      }
-      &-progress-bar {
-        background-color: $color-positive;
-        position: relative;
-      }
-      &-milestone-shell {
-        border: 1px solid $color-border;
-        @extend %rotate-45cw;
-        vertical-align: middle;
-        display: inline-block;
-        margin: 1px;
-      }
-      &-status {
-        font-weight: normal;
-        opacity: .5;
-        @include small;
-      }
-
-      &s {
-        position: absolute;
-        left: 0;
-        top: -10px;
-        white-space: nowrap;
-        &--with_icons & {
-          top: -18px;
-        }
-      }
-    }
-
-    &-filtered {
-      opacity: 0.2;
-    }
-    &-avatar {
-      position: absolute;
-      top: 50%;
-      margin-top: -11px;
-      .mindmup-node-left & {
-        left: auto;
-        right: -31px;
-      }
-    }
-  }
-}
-
-.mindmup-scheme-project {
-  @include mindmup-scheme($button-main-background);
-  color: $button-main-color;
-}
-
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_print.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_print.scss
deleted file mode 100644
index aa8844a..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_print.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-@media print {
-  .gravatar {
-    max-width: 100%;
-    height: auto;
-    -webkit-border-radius: 5000px;
-    -moz-border-radius: 5000px;
-    border-radius: 5000px;
-  }
-}
-.mindmup-print{
-  &-area{
-    & .mapjs-collapsor{
-      display: none;
-    }
-    & .mindmup-node-add-button{
-      display: none;
-    }
-  }
-  &-strip{
-    position: relative;
-    /*border: 1px solid red;*/
-    border: 1px solid #cecece;
-    overflow: hidden;
-    white-space: nowrap;
-    break-inside: avoid;
-    margin: 10px 0;
-    margin-left: -1px;
-    display: inline-block;
-    background-color: #ffffff;
-    border-left: 0;
-  }
-}
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_progress.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_progress.scss
deleted file mode 100644
index e207235..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_progress.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-.mindmup-progress {
-  &-modal {
-    position: fixed;
-    z-index: 10000;
-    width: 40%;
-    height: 150px;
-    top: 150px;
-    left: 30%;
-    right: 30%;
-    padding-top: 30px;
-    background-color: $color-foreground;
-    border: 1px solid $color-border;
-    box-shadow: 6px 6px 42px 7px transparentize($color-border, 0.35);
-    h3 {
-      text-align: center;
-    }
-  }
-  &-cont {
-    height: 8px;
-    width: 80%;
-    margin-left: 10%;
-    margin-right: 10%;
-    border: 1px solid $color-border;
-  }
-  &-bar {
-    width: 50%;
-    height: 100%;
-    background-color: green;
-  }
-}
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_redmine.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_redmine.scss
deleted file mode 100644
index 905200f..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_redmine.scss
+++ /dev/null
@@ -1,143 +0,0 @@
-%icon_before_list_item{
-  position: absolute;
-  left: 0;
-  text-align: center;
-  font-size: 1.2em;
-  line-height: 1;
-  color: inherit;
-  top: 50%;
-  margin-top: -0.5em;
-}
-
-.redmine {
-  .mindmup {
-    &-cont {
-      margin: 0 -10px -10px -10px;
-    }
-    &-menu {
-      padding: 5px 1px 0 1px;
-      .menu-item {
-        padding: 8px 10px 8px 10px;
-      }
-    }
-    &__menu {
-      padding: 14px;
-      &-group {
-        &--tooltiped {
-          & > a {
-            padding-top: 10px;
-            padding-bottom: 10px;
-          }
-          & > ul {
-            position: absolute;
-            background-color: #ffffff;
-            border: 1px solid #dfccaf;
-            color: #42321a;
-            padding: 5px 5px 5px 0;
-            margin-top: 10px;
-            margin-left: -10px;
-            min-width: 150px;
-            li {
-              display: block;
-              padding: 3px;
-              a {
-                display: block;
-                padding-left: 20px;
-                &:before {
-                  position: absolute;
-                  left: 0;
-                  width: 20px;
-                }
-              }
-            }
-          }
-          &:after {
-            display: none;
-          }
-          .icon {
-            background-image: none;
-          }
-        }
-        &--sizing {
-          a {
-            padding: 0;
-          }
-        }
-      }
-      &-item {
-        padding-left: 15px;
-        padding-right: 15px;
-      }
-      &-save {
-        a {
-          padding-left: 30px !important;
-          &:before {
-            text-align: center;
-            width: 36px;
-            position: absolute;
-          }
-        }
-      }
-    }
-    &-legend {
-      margin-top: 1px;
-      &__filter {
-        &_cancel_icon {
-          position: absolute;
-        }
-      }
-    }
-    &__legend {
-      &-container {
-        top: 0;
-      }
-      &-toggler {
-        height: 25px;
-        a {
-          line-height: 1.5em;
-        }
-      }
-      &-header {
-        padding: 8px;
-      }
-    }
-  }
-  a.button-positive {
-    background-color: #4ebf67;
-    border-radius: 2px;
-    border: 1.3px solid rgb(51, 141, 71);
-    color: #ffffff;
-    padding: 8px 16px;
-  }
-  .menu-item.active {
-    background-color: #9DB9D5;
-  }
-  .menu-item.active a.button {
-    color: #fff;
-  }
-  .gravatar {
-    max-width: 100%;
-    height: auto;
-    border-radius: 5000px;
-    overflow: hidden;
-    box-sizing: border-box;
-  }
-  .button-2.active {
-    background-color: transparent !important;
-  }
-  &.mindmup__context_menu{
-    .easy-mindmup__icon:before{
-      @extend %icon_before_list_item
-    }
-  }
-  .button{
-    &.easy-mindmup__icon:before{
-      @extend %icon_before_list_item
-    }
-  }
-  .mindmup_modal__flash_close{
-    color: #880000;
-    right: 15px;
-    line-height: 18px;
-  }
-}
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_schemes.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_schemes.scss
deleted file mode 100644
index 19601c5..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_schemes.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-.scheme{
-  @each $scheme, $map in $mindmup-schemes {
-    &-by-#{$scheme} &-#{$scheme}{
-      @for $i from 1 through length($map) {
-        $color: nth($map, $i);
-        &-#{$i} {
-          @include mindmup-scheme($color);
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_sidebar.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_sidebar.scss
deleted file mode 100644
index 58466a1..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_sidebar.scss
+++ /dev/null
@@ -1,219 +0,0 @@
-&-sidebar {
-
-  %info-block {
-    background-color: #ffffaa;
-    border: 1px solid #bfb23f;
-    padding: 5px;
-    text-align: center;
-  }
-
-  display: block;
-  &__empty-title {
-    @extend %info-block;
-    display: block;
-    margin-top: 10px;
-    box-sizing: border-box;
-  }
-  &__resize {
-    position: fixed;
-    width: 10px;
-    text-align: center;
-    cursor: col-resize;
-    display: block;
-    z-index: 101;
-    background-color: silver;
-    box-sizing: border-box;
-    padding-top: 8px;
-    font-size: 20px;
-    border-radius: 5px;
-  }
-  &__root {
-    position: absolute;
-    right: 0;
-    bottom: 0;
-    z-index: 5;
-  }
-  &__toggler {
-    position: absolute;
-    top: 1px;
-    right: 1px;
-    padding: 0;
-    z-index: 1;
-    &.active {
-      background: #d94838;
-      color: #fff;
-    }
-  }
-  &__container {
-    border-left: 1px solid #dfccaf;
-    background: mix($color-foreground, $color-background);
-    padding-left: 8px;
-    overflow-y: scroll;
-  }
-  &__long-text {
-    position: relative;
-    max-height: 100px;
-    overflow: hidden;
-    min-height:30px;
-    border: 1px solid #dfccaf;
-    &__curtain {
-      height: 100%;
-      position: absolute;
-      width: 100%;
-      top: 0;
-      left: 1px;
-      border-bottom: 1px solid #dfccaf;
-      background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.01) 0%, rgba(255, 255, 255, 0.01) 65%, white 100%);
-      background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.01) 0%, rgba(255, 255, 255, 0.01) 65%, white 100%);
-      background: linear-gradient(to bottom, rgba(255, 255, 255, 0.01) 0%, rgba(255, 255, 255, 0.01) 65%, white 100%);
-      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#03ffffff', endColorstr='#ffffff', GradientType=0);
-    }
-    &__content{
-      padding: 3px;
-      min-height: 25px;
-      width: 100%;
-      box-sizing: border-box;
-      max-height: 100px;
-    }
-  }
-  &__attribute {
-    display: block;
-    overflow: hidden;
-    margin-top: 3px;
-    position: relative;
-    & .invalid{
-      border: 1px solid red;
-      color: red;
-    }
-    &-form-field {
-      max-width: 200px !important;
-      padding: 1px 1px 1px 5px !important;
-      line-height: normal;
-      float: right;
-      overflow-x: hidden !important;
-    }
-    &-value {
-      max-width: 197px !important;
-      width: 100%;
-      padding: 1px 1px 1px 5px !important;
-      line-height: normal;
-      float: right;
-      margin-top: 6px;
-    }
-    &-label-disabled {
-      color: rgba(0, 0, 0, 0.38);
-    }
-    &-label {
-      display: inline-block;
-      width: 90px;
-      margin-top: 5px;
-    }
-    .spaceholder {
-      display: none;
-    }
-    .top-section {
-      margin-bottom: 0;
-    }
-    &-full-screen-icon {
-      display: block;
-      float: right;
-      cursor: pointer;
-      margin-top: 6px;
-      position: absolute;
-      top: 0;
-      right: 0;
-    }
-    & .icon-edit{
-      position: absolute;
-      top: 0;
-      right: 0;
-      cursor: pointer;
-    }
-  }
-  &__attributes {
-
-  }
-  &__add-comment-button {
-    a {
-      width: 100%;
-      box-sizing: border-box;
-    }
-    margin: 3px 0 12px 0;
-  }
-  &__journal {
-    &-avatar-container {
-      margin-top: 6px
-    }
-    &-header {
-      margin-top: -6px
-    }
-    &-notes {
-      margin-top: 0;
-      background: #ffffff;
-      border: 1px solid #dfccaf;
-      margin-bottom: 0 !important;
-      box-sizing: border-box;
-      padding: 3px;
-      p:last-child {
-        margin-bottom: 0;
-      }
-    }
-    &-full-screen-icon {
-      display: block;
-      float: right;
-      cursor: pointer;
-      margin-top: 25px;
-      position: absolute;
-      top: 0;
-      right: 20px;
-    }
-    &-timestamp {
-      font-weight: bold;
-      font-size: smaller;
-    }
-  }
-  &__coworkers--no_id {
-    @extend %info-block
-  }
-  &__tab {
-    margin: 6px 6px;
-    header {
-      min-height: 36px !important;
-      padding: 0 12px 8px !important;
-    }
-    header.open {
-      min-height: 44px;
-    }
-    header:not(:hover) {
-      color: inherit !important;
-      background-color: unset !important;
-    }
-  }
-  &__input {
-    &__name {
-      color: black;
-      font-family: "Open Sans", sans-serif;
-      width: 100% !important;
-      .input {
-        max-width: none;
-        text-align: center;
-        font-weight: bold;
-        opacity: 1;
-        color: black !important;
-      }
-      .bottom-section {
-        display: none;
-      }
-    }
-  }
-  .gravatar {
-    max-height: 32px;
-    max-width: 32px;
-  }
-  .content-wrapper {
-    margin: 0 12px 8px !important;
-  }
-  .material-tab {
-    padding: 0 !important;
-  }
-}
diff --git a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_variables.scss b/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_variables.scss
deleted file mode 100644
index ad8db5d..0000000
--- a/plugins/easy_mindmup/assets/stylesheets/sass/_mindmup_variables.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-$mindmup-default-node-color: #e5e5e5;
-$mindmup-default-schemes: (
-        #f9f6a8,
-        #fbe3bd,
-        #f3cccf,
-        #eabdec,
-        #d0b8ec,
-        #c9c9f9,
-        #c9dcff,
-        #d2f4f0,
-        #d2ecc9,
-        #e1ee9e,
-        #dadace,
-        #dbd1c7
-);
-$progress-0: white;
-$progress-1: $color-positive;
-$mindmup-schemes: (
-        priority: (
-                hsl(hue($color-negative), 80%, 90%),
-                hsl(hue($color-negative), 80%, 80%),
-                hsl(hue($color-positive), 80%, 90%),
-                hsl(hue($color-positive), 80%, 80%),
-                hsl(hue($color-main), 80%, 90%),
-                hsl(hue($color-main), 80%, 80%),
-                hsl(hue($color-important), 80%, 90%),
-                hsl(hue($color-important), 80%, 80%),
-                #add7f3, // redmine low
-                #e5e5e5, // redmine normal
-                #fcc,    // redmine high
-                #ffb4b4  // redmine urgent
-        ),
-        status: join((), $mindmup-default-schemes),
-        tracker: join((), $mindmup-default-schemes),
-        assignee: join((), $mindmup-default-schemes),
-        milestone: join((), $mindmup-default-schemes),
-        progress: (
-                $mindmup-default-node-color,
-                mix($progress-1, $progress-0, 10%),
-                mix($progress-1, $progress-0, 25%),
-                mix($progress-1, $progress-0, 45%),
-                mix($progress-1, $progress-0, 70%),
-                $progress-1)
-) !default;
diff --git a/plugins/easy_mindmup/config/locales/cs.yml b/plugins/easy_mindmup/config/locales/cs.yml
deleted file mode 100644
index cfa1ca6..0000000
--- a/plugins/easy_mindmup/config/locales/cs.yml
+++ /dev/null
@@ -1,163 +0,0 @@
----
-cs:
-  easy_mindmup:
-    button_add_child: Přidat dítě
-    button_add_parent: Přidat rodiče
-    button_add_sibling: Přidat sourozence
-    button_all_icons: Ikony
-    button_collapse: Sbalit
-    button_collapse_all: Sbalit vše
-    button_cut: Vyjmout
-    button_edit_data: Upravit údaje
-    button_expand: Rozbalit
-    button_expand_all: Rozbalit vše
-    button_expand_collapse: Rozbalit/sbalit
-    button_legend: Legenda
-    button_one_side: Jedna strana
-    button_paste: Vložit
-    button_project_menu: Easy MindMup
-    button_redo: Vpřed
-    button_remove_node: Odstranit uzel
-    button_show_links: Zobrazit odkazy
-    button_undo: Zpět
-    edit_issue: Upravit úkol
-    error_create: Nelze vytvořit
-    error_delete: Nelze smazat
-    error_update: Nelze aktualizovat
-    errors:
-      not_subtaskable: Úkol "%{task_name}" nemůže být podúkolem kvůli nastavení jeho
-        trackeru
-    button_hotkeys: Klávesové zkratky
-    hotkeys:
-      info_mac_metakey: Na Mac OS X klávesy Ctrl a Cmd mohou být použity pro zkratky
-        níže - některé prohlížeče mohou určitým klávesovým zkratkám bránit. Například
-        pokud Cmd + Space nefunguje v prohlížeči, zkuste Ctrl + Space.
-      keyboard:
-      - název: Manipulace s uzly
-        hotkeys:
-        - hotkey: Enter
-          info: Přidat sourozence
-        - hotkey: Shift+Enter
-          info: Přidat sourozence nad, nebo zalomení řádku (při přejmenování uzlu)
-        - hotkey: Tab nebo Insert
-          info: Přidat dítě
-        - hotkey: Shift+Tab
-          info: Přidat rodiče
-        - hotkey: Mezerník
-          info: Přejmenovat uzel
-        - hotkey: Shift+mezerník
-          info: Upravit údaje uzlu
-        - hotkey: Backspace nebo Delete
-          info: Odstranit uzel
-        - hotkey: Ctrl+nahoru/dolů
-          info: Posunout uzel nahoru/dolů
-      - název: "Úpravy"
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Uložit
-        - hotkey: Ctrl+X nebo C
-          info: Vyjmout
-        - hotkey: Ctrl+C nebo Y
-          info: Kopírovat
-        - hotkey: Ctrl+V nebo P
-          info: Vložit
-        - hotkey: U nebo Ctrl+Z
-          info: Zpět
-        - hotkey: R nebo Ctrl+Y nebo Ctrl+Shift+Z
-          info: Vpřed
-      - název: Vybrat
-        hotkeys:
-        - hotkey: "šipky"
-          info: Vyberte uzel nahoře/dole/vlevo/vpravo nebo aktuálně vybraný
-        - hotkey: Shift+šipky
-          info: Přidat uzel nahoru/dolů/doleva/doprava k výběru (užitečné pro vícenásobné
-            označení sourozenců)
-        - hotkey: "{"
-          info: Vícenásobný výběr aktuálního uzlu a celého podstromu pod ním
-        - hotkey: "["
-          info: Vícenásobný výběr pouze podstromu pod aktuálním uzlem (nikoli uzel
-            sám)
-        - hotkey: "="
-          info: Vícenásobný výběr všech sourozenců aktuálního uzlu (které mají stejného
-            rodiče)
-        - hotkey: "."
-          info: Zrušit vícenásobný výběr a vybrat znovu pouze aktuální uzel
-        - hotkey: 1 - 9
-          info: Vybrat všechny uzly na určité úrovni (např. 1 vybere všechny uzly
-            první úrovně)
-      - název: Navigace a obrazovka
-        hotkeys:
-        - hotkey: "/ nebo F"
-          info: Rozbalit nebo sbalit uzel (složit nebo rozložit děti)
-        - hotkey: Ctrl + nebo Z
-          info: Přiblížit
-        - hotkey: Ctrl - nebo Shift Z
-          info: Oddálit
-        - hotkey: Esc, 0, Ctrl+0
-          info: Resetovat zobrazení mapy - vyberte kořenový uzel a přetáhněte jej
-            do středu obrazovky
-      mouse:
-      - action: Přesunutí mapy
-        gesture: klikněte a přetáhněte středový uzel, klikněte a přetáhněte pozadí nebo
-          skrolujte na trackpadu/touchpadu.
-      - action: Vybrat uzel
-        gesture: klikněte nebo klepněte na něj
-      - action: Vybrat více uzlů
-        gesture: Shift+klik
-      - action: Změna pořadí uzlů
-        gesture: přetáhněte uzel mezi svými sourozenci, horizontálně blízko k místu
-          změny pořadí. Při změně pořadí se zobrazí bod s černou šipkou.
-      - action: Ručně umístit uzel
-        gesture: stačí přetáhnout uzel, dokud šipka pro změnu pořadí nezmizí. Chcete-li
-          vynutit ruční postavení, i když se šipka pro změnu pořadí ukazuje, podržte
-          klávesu Shift při tažení. Upozorňujeme, že děti z kořenového uzlu je možné
-          přetáhnout v libovolném směru, ale uzly nižší úrovně mohou být umístěny
-          pouze ve směru svého rodiče ke kořeni.
-      - action: Přejmenování uzlu
-        gesture: Dvojitý klik nebo dvojité ťuknutí
-      - action: Zobrazit kontextové menu s operacemi
-        gesture: 'Klikněte pravým tlačítkem na uzel (myší) nebo poklepejte na pozadí,
-          nebo dlouze stiskněte uzel: zobrazit (na dotykových zařízeních)'
-      - action: Změna rodičovského uzlu
-        gesture: přetáhněte uzel na jiný uzel (kruhové upuštění není povoleno, takže
-          nelze upustit uzel na jednom ze svých dětí nebo potomků)
-      - action: Otevřít úkol nebo projekt v samostatném okně
-        gesture: Alt+klik
-      title_key_shortcuts: Klávesové operace
-      title_mouse_shortcuts: Operace s myší a dotykem
-      title_shortcuts: Zkratky
-    info_all_saved: Vše úspěšně uloženo
-    info_any_failed: 'Některé z neúspěšných požadavků:'
-    info_no_permission: Nemáte potřebná oprávnění k této akci
-    warning_delete_node: Opravdu chcete smazat uzel {{name}} a všechny jeho poduzly?
-    warning_delete_nodes: Opravdu chcete smazat tyto uzly a všechny jejich poduzly?
-    label_color_by: Barva dle
-    label_go_to: Jít do
-    label_or: nebo
-    last_state_modal:
-      label_differencies: Rozdíly na serveru
-      message_changed: mají rozdílné atributy (browser => server) ({{changes}})
-      message_missing: nemá nadřazený úkol "{{from}}"
-      message_moved: je podúkolem "{{to}}", ne "{{from}}"
-      message_present: je přítomen jako podúkol "{{to}}"
-      text_reload_appeal: Přejete si znovu načíst stav ze serveru?
-      title: Poslední klientský stav Myšlenkové mapy je odlišný od stavu serveru
-    reload_modal:
-      label_errors: Chyby
-      text_reload_appeal: Chcete ignorovat neuložené položky a znovu načíst data ze
-        serveru?
-      title: Myšlenkovou mapu se nepodařilo správně uložit
-    stored_modal:
-      text_load_appeal: Chcete jej načíst místo aktuálního stavu ze serveru?
-      title: Byl nalezen neuložený stav
-      button_local: Neuložená verze
-      button_server: Serverová verze
-    save_info:
-      loaded: Staženo
-      saved: Uloženo
-      autosaved: Automaticky uloženo
-      at: v
-    label_save_progress: Prosím počkejte, probíhá ukládání
-    warning_not_saved: není správně uloženo
-    title_node_changed: Tento uzel byl změněn a bude uložen
-    label_less: Méně
diff --git a/plugins/easy_mindmup/config/locales/en.yml b/plugins/easy_mindmup/config/locales/en.yml
deleted file mode 100644
index c5149d5..0000000
--- a/plugins/easy_mindmup/config/locales/en.yml
+++ /dev/null
@@ -1,171 +0,0 @@
----
-en:
-  easy_mindmup:
-    button_add_child: Add child
-    button_add_parent: Add parent
-    button_add_sibling: Add sibling
-    button_all_icons: Icons
-    button_collapse: Collapse
-    button_collapse_all: Collapse all
-    button_cut: Cut
-    button_edit_data: Edit data
-    button_expand: Expand
-    button_expand_all: Expand all
-    button_expand_collapse: Expand/Collapse
-    button_legend: Legend
-    button_one_side: One side
-    button_paste: Paste
-    button_project_menu: Easy MindMup
-    button_redo: Redo
-    button_remove_node: Remove node
-    button_show_links: Show links
-    button_undo: Undo
-    error_create: could not be created
-    error_delete: could not be deleted
-    error_update: could not be updated
-    errors:
-      not_subtaskable: Task "%{task_name}" cannot be subtask because of the setting
-        of its tracker
-      no_rest_api: REST API is disabled. Please enable it on Administration.
-    free:
-      button_upgrade: Get Full version
-      feature_coloring: Coloring nodes by property
-      feature_context_menu: Changing node's properties by context menu
-      feature_dnd_property: Changing node's properties by drag & drop
-      feature_filtering: Filtering nodes by property
-      header_not_available: Available only in Full version
-    button_hotkeys: Hotkeys
-    hotkeys:
-      info_mac_metakey: On Mac OSX, Ctrl and Cmd keys can be used for shortcuts marked
-        Ctrl below - some browsers prevent certain key bindings. So, for example,
-        if Cmd+Space does not work in your browser, try Ctrl+Space.
-      keyboard:
-      - title: Node manipulation
-        hotkeys:
-        - hotkey: Enter
-          info: Add Sibling
-        - hotkey: Shift+Enter
-          info: Add Sibling above or line break (when renaming node)
-        - hotkey: Tab or Insert
-          info: Add child
-        - hotkey: Shift+Tab
-          info: Insert parent
-        - hotkey: Space
-          info: Rename node
-        - hotkey: Shift+Space
-          info: Edit node data
-        - hotkey: Backspace or Delete
-          info: Remove node
-        - hotkey: Ctrl+Up/Down
-          info: Move node up/down
-      - title: Editing
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Save
-        - hotkey: Ctrl+X or C
-          info: Cut
-        - hotkey: Ctrl+C or Y
-          info: Copy
-        - hotkey: Ctrl+V or P
-          info: Paste
-        - hotkey: U or Ctrl+Z
-          info: Undo
-        - hotkey: R or Ctrl+Y or Ctrl+Shift+Z
-          info: Redo
-      - title: Selection
-        hotkeys:
-        - hotkey: Arrow Keys
-          info: Select the node up/down/left/right of the currently selected one
-        - hotkey: Shift + Arrow keys
-          info: Add node up/down/left/right to selection (useful to multi-select siblings)
-        - hotkey: "{"
-          info: Multi-select the current node and the entire subtree under it
-        - hotkey: "["
-          info: Multi-select only the subtree under the current node (not the node
-            itself)
-        - hotkey: "="
-          info: Multi-select all the siblings of the current node (that have the same
-            parent)
-        - hotkey: "."
-          info: Cancel multi-selection and select only the current node again
-        - hotkey: 1 - 9
-          info: Select all nodes of a particular level (eg 1 selects all first level
-            nodes)
-      - title: Navigation and screen
-        hotkeys:
-        - hotkey: "/ or F"
-          info: Expand or collapse node (fold or unfold children)
-        - hotkey: Ctrl + or Z
-          info: Zoom in
-        - hotkey: Ctrl - or Shift Z
-          info: Zoom out
-        - hotkey: Esc, 0, Ctrl+0
-          info: Reset map view - select root node and bring it to the center of the
-            screen
-      mouse:
-      - action: Move the map
-        gesture: click and drag the center node, click and drag the background or
-          scroll with trackpad/touchpad.
-      - action: Select a node
-        gesture: tap or click on it
-      - action: Select multiple nodes
-        gesture: Shift+click
-      - action: Reorder nodes
-        gesture: drag a node between its siblings, horizontally close to the position
-          of reordering. A black arrow point will show when reordering.
-      - action: Manually position a node
-        gesture: just drag a node until the arrow point for reordering isn't showing.
-          To force manual position even when the reorder arrow point is showing, hold
-          Shift while dragging. Please note that children of the root node can be
-          pulled in any direction, but lower level nodes can only be positioned in
-          the direction of its parent relative to the root.
-      - action: Rename a node
-        gesture: Double-click or double-tap it
-      - action: Show context menu with operations
-        gesture: 'Right click on a node (by mouse) or double-tap the background, or
-          long press a node: show (on touch devices)'
-      - action: Change node parent
-        gesture: drag and drop a node on another node (circular drops are not allowed,
-          so you can't drop a node on one of it's children or descendants)
-      - action: Open issue or project in separate window
-        gesture: Alt+click
-      title_key_shortcuts: Keyboard operations
-      title_mouse_shortcuts: Mouse and touch operations
-      title_shortcuts: Shortcuts
-    info_all_saved: Everything saved successfully
-    info_any_failed: 'Some of the requests failed:'
-    info_no_permission: You do not have necessary permissions to do that
-    warning_delete_node: Do you really want to delete node {{name}} and every of its descendants?
-    warning_delete_nodes: Do you really want to delete these nodes and every of their descendants?
-    label_color_by: Color by
-    label_go_to: Go to
-    label_hide_unused: Hide unused
-    label_or: or
-    last_state_modal:
-      label_differencies: Differencies on server
-      message_changed: have different attributes (browser => server) ({{changes}})
-      message_missing: is missing from parent "{{from}}"
-      message_moved: is child of "{{to}}", not "{{from}}"
-      message_present: is present as child of "{{to}}"
-      text_reload_appeal: Do you want reload state from server?
-      title: Last client state of Mind map is different from server state
-    reload_modal:
-      label_errors: Errors
-      text_reload_appeal: Do you want to ignore unsaved items and reload data from
-        server?
-      title: Mind map failed to save properly
-    stored_modal:
-      text_load_appeal: Do you want to loaded it? Or you want to load fresh state from the server?
-      title: Unsaved local version have been found
-      button_local: Local version
-      button_server: Server version
-    save_info:
-      loaded: Loaded
-      saved: Saved
-      autosaved: Autosaved
-      at: at
-    label_save_progress: Please wait, all entities are being saved
-    label_show_unused: Show unused
-    warning_not_saved: is not properly saved
-    title_node_changed: This node have been changed and will be saved
-    label_less: Less
diff --git a/plugins/easy_mindmup/config/routes.rb b/plugins/easy_mindmup/config/routes.rb
deleted file mode 100644
index 69ec9c2..0000000
--- a/plugins/easy_mindmup/config/routes.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-resources :projects do
-  put 'easy_mindmup_update_layout', to: 'easy_mindmup#update_layout', as: 'easy_mindmup_update_layout'
-end
diff --git a/plugins/easy_mindmup/init.rb b/plugins/easy_mindmup/init.rb
deleted file mode 100644
index a6b7bd9..0000000
--- a/plugins/easy_mindmup/init.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-Redmine::Plugin.register :easy_mindmup do
-  name 'Easy MindMup plugin'
-  author 'Easy Software Ltd'
-  description 'Mind map view based on MindMup'
-  version '1.0'
-  url 'www.easyredmine.com'
-  author_url 'www.easysoftware.cz'
-
-  if Redmine::Plugin.installed?(:easy_extensions)
-    visible false
-    should_be_disabled false
-  end
-end
-
-unless Redmine::Plugin.installed?(:easy_extensions)
-  require_relative 'after_init'
-end
diff --git a/plugins/easy_mindmup/lib/easy_mindmup/easy_mindmup.rb b/plugins/easy_mindmup/lib/easy_mindmup/easy_mindmup.rb
deleted file mode 100644
index e767709..0000000
--- a/plugins/easy_mindmup/lib/easy_mindmup/easy_mindmup.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-module EasyMindmup
-
-  def self.easy_extensions?
-    Redmine::Plugin.installed?(:easy_extensions)
-  end
-
-end
diff --git a/plugins/easy_mindmup/spec/controllers/easy_wbs_controller_spec.rb b/plugins/easy_mindmup/spec/controllers/easy_wbs_controller_spec.rb
deleted file mode 100644
index e09343c..0000000
--- a/plugins/easy_mindmup/spec/controllers/easy_wbs_controller_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-# RSpec.describe EasyWbsController, logged: :admin do
-
-#   around(:each) do |example|
-#     with_settings(rest_api_enabled: 1) { example.run }
-#   end
-
-#   context 'rest api' do
-#     let(:project) { FactoryGirl.create(:project, add_modules: ['easy_wbs']) }
-
-#     it 'enabled' do
-#       get :index, project_id: project
-#       expect(response).to be_success
-#     end
-#   end
-
-# end
-
diff --git a/plugins/easy_mindmup/spec/features/wbs_tree_spec.rb b/plugins/easy_mindmup/spec/features/wbs_tree_spec.rb
deleted file mode 100644
index 9e95f96..0000000
--- a/plugins/easy_mindmup/spec/features/wbs_tree_spec.rb
+++ /dev/null
@@ -1,74 +0,0 @@
-# require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-# RSpec.feature 'tree', logged: :admin, js: true do
-#   let(:superproject) {
-#     FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 3)
-#   }
-#   let(:subproject) {
-#     FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 0,parent_id:superproject.id)
-#   }
-#   let(:project_issues) {
-#     FactoryGirl.create_list(:issue, 3, :project_id => superproject.id)
-#   }
-#   let(:subproject_issues) {
-#     FactoryGirl.create_list(:issue, 3, :project_id => subproject.id)
-#   }
-#   let(:sub_issues) {
-#     FactoryGirl.create_list(:issue, 3, :parent_issue_id => subproject_issues[0].id, :project_id => subproject.id)
-#   }
-#   let(:sub_sub_issues) {
-#     FactoryGirl.create_list(:issue, 3, :parent_issue_id => sub_issues[0].id, :project_id => subproject.id)
-#   }
-
-#   around(:each) do |example|
-#     with_settings(rest_api_enabled: 1) { example.run }
-#   end
-#   it 'should show project items in correct tree' do
-#     superproject
-#     project_issues
-#     subproject_issues
-#     sub_issues
-#     sub_sub_issues
-#     visit project_easy_wbs_index_path(superproject)
-#     wait_for_ajax
-
-#     expect(page).to have_css('#container')
-#     container=page.find('#container')
-#     #puts evaluate_script('ysy.loader.sourceData;').to_json
-#     expect(container).to have_text(superproject.name)
-#     project_issues.each do |issue|
-#       expect(container).to have_text(issue.subject)
-#     end
-#     expect(container).to have_text(subproject.name)
-#     subproject_issues.each do |issue|
-#       expect(container).not_to have_text(issue.subject)
-#     end
-
-#     node = container.find('span', text: subproject.name).find(:xpath, '..')
-#     node.find('.mapjs-collapsor').click
-#     subproject_issues.each do |issue|
-#       expect(container).to have_text(issue.subject)
-#     end
-#     sub_issues.each do |issue|
-#       expect(container).not_to have_text(issue.subject)
-#     end
-
-#     sleep(0.5)
-#     node = container.find('span', text: subproject_issues[0].subject).find(:xpath, '..')
-#     node.find('.mapjs-collapsor').click
-#     sub_issues.each do |issue|
-#       expect(container).to have_text(issue.subject)
-#     end
-#     sub_sub_issues.each do |issue|
-#       expect(container).not_to have_text(issue.subject)
-#     end
-
-#     sleep(0.5)
-#     node = container.find('span', text: sub_issues[0].subject).find(:xpath, '..')
-#     execute_script("ysy.mapjs.getModel().selectNode(#{node[:id].split('_')[1]})")
-#     node.find('.mapjs-collapsor').click
-#     sub_sub_issues.each do |issue|
-#       expect(container).to have_text(issue.subject)
-#     end
-#   end
-# end
diff --git a/plugins/easy_wbs/Gemfile b/plugins/easy_wbs/Gemfile
deleted file mode 100644
index 772940c..0000000
--- a/plugins/easy_wbs/Gemfile
+++ /dev/null
@@ -1 +0,0 @@
-gem 'redmine_extensions' unless Dir.exist?(File.expand_path('../../easyproject', __FILE__))
diff --git a/plugins/easy_wbs/README.rdoc b/plugins/easy_wbs/README.rdoc
deleted file mode 100644
index f394e67..0000000
--- a/plugins/easy_wbs/README.rdoc
+++ /dev/null
@@ -1,3 +0,0 @@
-= easy_wbs
-
-Description goes here
diff --git a/plugins/easy_wbs/after_init.rb b/plugins/easy_wbs/after_init.rb
deleted file mode 100644
index 51781c2..0000000
--- a/plugins/easy_wbs/after_init.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-app_dir = File.join(File.dirname(__FILE__), 'app')
-lib_dir = File.join(File.dirname(__FILE__), 'lib', 'easy_wbs')
-
-# Redmine patches
-patch_path = File.join(lib_dir, 'redmine_patch', '**', '*.rb')
-Dir.glob(patch_path).each do |file|
-  require file
-end
-
-if Redmine::Plugin.installed?(:easy_extensions)
-  ActiveSupport::Dependencies.autoload_paths << File.join(app_dir, 'models', 'easy_queries')
-  EasyQuery.register(EasyWbsEasyIssueQuery)
-end
-
-Redmine::MenuManager.map :project_menu do |menu|
-  menu.push(:easy_wbs, { controller: 'easy_wbs', action: 'index'},
-    param: :project_id,
-    caption: :'easy_wbs.button_project_menu')
-end
-
-Redmine::AccessControl.map do |map|
-  map.project_module :easy_wbs do |pmap|
-    pmap.permission :view_easy_wbs, { easy_wbs: [:index] }, read: true
-    pmap.permission :edit_easy_wbs, { easy_wbs: [:create, :update, :destroy, :update_layout] }
-  end
-end
-
-RedmineExtensions::Reloader.to_prepare do
-  require 'easy_wbs/hooks'
-  require 'easy_wbs/easy_wbs'
-
-  RedmineExtensions::EasySettingPresenter.boolean_keys << :easy_wbs_no_sidebar
-end
diff --git a/plugins/easy_wbs/app/controllers/easy_wbs_controller.rb b/plugins/easy_wbs/app/controllers/easy_wbs_controller.rb
deleted file mode 100644
index bf12aea..0000000
--- a/plugins/easy_wbs/app/controllers/easy_wbs_controller.rb
+++ /dev/null
@@ -1,108 +0,0 @@
-class EasyWbsController < ApplicationController
-  accept_api_auth :index, :update_layout
-  menu_item :easy_wbs
-
-  before_action :check_rest_api_enabled, only: [:index, :update_layout]
-  before_action :find_project_by_project_id, if: proc { params[:project_id].present? }
-  before_action :authorize, if: proc { @project.present? }
-  before_action :authorize_global, if: proc { @project.nil? }
-
-  helper :easy_mindmup
-
-  include_query_helpers
-
-  def index
-    retrieve_query
-
-    respond_to do |format|
-      format.html { render(layout: !request.xhr?) }
-      format.api do
-        load_issues
-        load_projects
-        load_trackers
-        load_users
-        load_versions
-        load_relations
-      end
-    end
-  end
-
-  private
-
-    def check_rest_api_enabled
-      if Setting.rest_api_enabled != '1'
-        render_error message: l('easy_mindmup.errors.no_rest_api')
-        return false
-      end
-    end
-
-    def query_class
-      easy_extensions? ? EasyWbsEasyIssueQuery : EasyWbs::IssueQuery
-    end
-
-    def retrieve_query
-      if params[:query_id].present?
-        cond  = 'project_id IS NULL'
-
-        if @project
-          cond << " OR project_id = #{@project.id}"
-
-          # In Easy Project query can be defined for subprojects
-          if !@project.root? && EasyWbs.easy_extensions?
-            ancestors = @project.ancestors.select(:id).to_sql
-            cond << " OR (is_for_subprojects = #{Project.connection.quoted_true} AND project_id IN (#{ancestors}))"
-          end
-        end
-
-        @query = query_class.where(cond).find_by(id: params[:query_id])
-        raise ActiveRecord::RecordNotFound if @query.nil?
-        raise Unauthorized unless @query.visible?
-
-        @query.project = @project
-        sort_clear
-      else
-        @query = query_class.new(name: '_')
-        @query.project = @project
-        @query.from_params(params)
-      end
-    end
-
-    def load_issues
-      @issues = @query.entities(order: "#{Issue.table_name}.id")
-      @issue_ids = @issues.map(&:id)
-
-      if @issues.blank?
-        return
-      end
-
-      # All ancestors conditions
-      tree_conditions = []
-      @issues.each do |issue|
-        tree_conditions << "(root_id = #{issue.root_id} AND lft < #{issue.lft} AND rgt > #{issue.rgt})"
-      end
-      tree_conditions = tree_conditions.join(' OR ')
-
-      @missing_parent_issues = Issue.where(tree_conditions).where.not(id: @issue_ids)
-    end
-
-    def load_projects
-      @projects = @project.self_and_descendants.where.not(status: [Project::STATUS_CLOSED, Project::STATUS_ARCHIVED])
-    end
-
-    def load_trackers
-      @trackers = Setting.display_subprojects_issues? ? @project.rolled_up_trackers : @project.trackers
-    end
-
-    def load_users
-      @users = @project.assignable_users_including_all_subprojects
-    end
-
-    def load_versions
-      @versions = @projects.flat_map(&:shared_versions).uniq
-    end
-
-    def load_relations
-      @relations = IssueRelation.where(issue_from_id: @issue_ids, issue_to_id: @issue_ids)
-    end
-
-end
diff --git a/plugins/easy_wbs/app/helpers/easy_wbs_helper.rb b/plugins/easy_wbs/app/helpers/easy_wbs_helper.rb
deleted file mode 100644
index 82b81a6..0000000
--- a/plugins/easy_wbs/app/helpers/easy_wbs_helper.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-module EasyWbsHelper
-
-  TRANSLATION_KEYS = [
-    'field_name',
-    'label_attribute_plural',
-    'label_description',
-    'title_user_detail',
-    'easy_wbs.label_basic_data',
-    'easy_wbs.label_additional_data',
-    'label_comment_plural',
-    'field_attachments',
-    'easy_wbs.label_all',
-    'label_others',
-    'description_notes',
-    'easy_wbs.button_remove_comment',
-    'easy_wbs.button_add_comment',
-    'easy_wbs.text_issue_not_saved',
-    'sidebar_project_members',
-    'label_issue_watchers',
-    'label_issue_automatic_recalculate_attributes',
-    'easy_wbs.button_add_child',
-    'heading_easy_wbs_issues',
-    'label_preview',
-    'title_inline_editable',
-    'easy_wbs.name_an_entity_first'
-  ]
-
-  def api_render_issues(api, issues, filtered_out: false)
-    issues.each do |issue|
-      api.issue do
-        api.id issue.id
-        api.subject issue.subject
-        api.parent_issue_id issue.parent_issue_id
-        api.project_id issue.project_id
-        api.assigned_to_id issue.assigned_to_id
-        api.tracker_id issue.tracker_id
-        api.status_id issue.status_id
-        api.priority_id issue.priority_id
-        api.done_ratio issue.done_ratio
-        api.activity_id issue.try(:activity_id)
-        api.fixed_version_id issue.fixed_version_id
-        api.filtered_out filtered_out
-      end
-    end
-  end
-
-  def wbs_url_to_project(project)
-    if EasyWbs.easy_extensions?
-      url_to_project(project)
-    else
-      project_path(project)
-    end
-  end
-
-  def wbs_translations
-    TRANSLATION_KEYS.map{|k| [k, l(k)] }.to_h
-  end
-
-end
diff --git a/plugins/easy_wbs/app/models/easy_wbs/issue_query.rb b/plugins/easy_wbs/app/models/easy_wbs/issue_query.rb
deleted file mode 100644
index 62820fd..0000000
--- a/plugins/easy_wbs/app/models/easy_wbs/issue_query.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-module EasyWbs
-  class IssueQuery < ::IssueQuery
-
-    def initialize(*args)
-      super
-      self.filters = { 'status_id' => { operator: 'o', values: ['']} }
-    end
-
-    def to_partial_path
-      'easy_wbs/easy_queries/show'
-    end
-
-    def from_params(params)
-      build_from_params(params)
-    end
-
-    def to_params
-      params = { set_filter: 1, type: self.class.name, f: [], op: {}, v: {} }
-
-      filters.each do |filter_name, opts|
-        params[:f] << filter_name
-        params[:op][filter_name] = opts[:operator]
-        params[:v][filter_name] = opts[:values]
-      end
-
-      params[:c] = column_names
-      params
-    end
-
-    def entity
-      Issue
-    end
-
-    def entity_scope
-      scope = Issue.visible.preload(:project)
-      if Project.column_names.include? 'easy_baseline_for_id'
-        scope = scope.where(Project.table_name => {easy_baseline_for_id: nil})
-      end
-      scope
-    end
-
-    def create_entity_scope(options={})
-      entity_scope.includes(options[:includes]).references(options[:includes]).preload(options[:preload]).where(statement)
-    end
-
-    def entities(options={})
-      create_entity_scope(options).order(options[:order])
-    end
-
-  end
-end
diff --git a/plugins/easy_wbs/app/views/easy_query_settings/by_query/_easy_wbs_easy_issue_query_settings.html.erb b/plugins/easy_wbs/app/views/easy_query_settings/by_query/_easy_wbs_easy_issue_query_settings.html.erb
deleted file mode 100644
index d2f1e08..0000000
--- a/plugins/easy_wbs/app/views/easy_query_settings/by_query/_easy_wbs_easy_issue_query_settings.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<% # A little hack %>
-
-<script>
-  $("#custom_formatting, #filters_settings, .easy_query_additional_options, .show_avatars").remove();
-</script>
diff --git a/plugins/easy_wbs/app/views/easy_wbs/_includes.html.erb b/plugins/easy_wbs/app/views/easy_wbs/_includes.html.erb
deleted file mode 100644
index 321f373..0000000
--- a/plugins/easy_wbs/app/views/easy_wbs/_includes.html.erb
+++ /dev/null
@@ -1,14 +0,0 @@
-<%= stylesheet_link_tag('easy_wbs', plugin: 'easy_wbs', media: 'all') %>
-<%= javascript_include_tag(
-      :wbs_main,
-      :wbs_context_menu,
-      :wbs_loader,
-      :wbs_node_patch,
-      :wbs_saver,
-      :wbs_modals,
-      :wbs_styles,
-      :wbs_validator,
-      plugin: 'easy_wbs'
-
-) %>
-<% include_galereya_headers_tags if defined?(include_galereya_headers_tags) %>
diff --git a/plugins/easy_wbs/app/views/easy_wbs/_js_prepare.html.erb b/plugins/easy_wbs/app/views/easy_wbs/_js_prepare.html.erb
deleted file mode 100644
index c4095ed..0000000
--- a/plugins/easy_wbs/app/views/easy_wbs/_js_prepare.html.erb
+++ /dev/null
@@ -1,57 +0,0 @@
-<script type="text/javascript">
-  window.easyMindMupSetting = $.extend(true, window.easyMindMupSetting, <%= {
-    mindMupId: 'WBS classic',
-    menuDiv: '#wbs_menu',
-    projectID: @project.id,
-    noSave: (params[:nosave] ? true : false),
-    paths: {
-      issuePage: issue_path(':issueID'),
-      projectPage: project_path(':projectID'),
-      issuePOST: issues_path(format: 'json', key: User.current.api_key),
-      issuePUT: issue_path(':issueID', format: 'json', key: User.current.api_key),
-      issueDELETE: issue_path(':issueID', format: 'json', key: User.current.api_key),
-      projectPUT: project_path(':projectID', format: 'json', key: User.current.api_key),
-      newIssuePath: new_issue_path(key: User.current.api_key),
-      editIssuePath: edit_issue_path(':issueID', key: User.current.api_key),
-      updateLayout: project_easy_mindmup_update_layout_path(@project, format: 'json', key: User.current.api_key)
-    },
-    labels: {
-      free: {
-        textNotAvailable: l('easy_wbs.free.text_not_available'),
-        buttonUpgradeHref: l('easy_wbs.free.button_upgrade_href')
-      },
-      errors:{
-        not_subtaskable: l('easy_wbs.errors.not_subtaskable'),
-        cannotBeEmpty: l('activerecord.errors.messages.empty')
-      },
-      types:{
-        project: l(:field_project),
-        issue: l(:field_issue)
-      },
-      modals: {
-        new_issue: l(:label_issue_new),
-        edit_issue: l('easy_wbs.edit_issue')
-      },
-      context: {
-        tracker: l(:field_tracker),
-        priority: l(:field_priority),
-        status: l(:field_status),
-        assignee: l(:field_assigned_to),
-        doneRatio: l(:field_done_ratio)
-      },
-      links: {
-        start_to_start: l(:label_start_to_start),
-        start_to_finish: l(:label_start_to_finish),
-        finish_to_finish: l(:label_finish_to_finish),
-        precedes: l(:label_precedes),
-        relates: l(:label_relates_to),
-        copied_to: l(:label_copied_to),
-        blocks: l(:label_blocks),
-        duplicates: l(:label_duplicates)
-      }
-    },
-    templates: {
-    },
-    translations: wbs_translations
-  }.to_json.html_safe %>);
-</script>
diff --git a/plugins/easy_wbs/app/views/easy_wbs/_test_includes.html.erb b/plugins/easy_wbs/app/views/easy_wbs/_test_includes.html.erb
deleted file mode 100644
index 54a36eb..0000000
--- a/plugins/easy_wbs/app/views/easy_wbs/_test_includes.html.erb
+++ /dev/null
@@ -1,6 +0,0 @@
-<%= javascript_include_tag(
-        'tests/saving_test',
-        'tests/printing',
-        'tests/parse_form',
-        plugin: 'easy_wbs'
-    ) %>
diff --git a/plugins/easy_wbs/app/views/easy_wbs/easy_queries/_show.html.erb b/plugins/easy_wbs/app/views/easy_wbs/easy_queries/_show.html.erb
deleted file mode 100644
index 0206dad..0000000
--- a/plugins/easy_wbs/app/views/easy_wbs/easy_queries/_show.html.erb
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="content-title"><%= title(easy_query_name) %></div>
-
-<%= form_tag(project_easy_wbs_index_path(@project), method: :get, id: 'query_form') do %>
-  <div id="query_form_with_buttons" class="hide-when-print">
-    <%= hidden_field_tag 'set_filter', '1' %>
-    <div id="query_form_content">
-      <fieldset id="filters" class="collapsible collapsed">
-        <legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
-        <div style="display: none;">
-          <%= render 'queries/filters', query: @query %>
-        </div>
-      </fieldset>
-    </div>
-    <p class="buttons">
-      <%= link_to_function l(:button_apply), '$("#query_form").submit()', class: 'icon icon-checked' %>
-      <%= link_to l(:button_clear), { set_filter: 1, project_id: @project }, class: 'icon icon-reload' %>
-    </p>
-  </div>
-<% end %>
diff --git a/plugins/easy_wbs/app/views/easy_wbs/index.api.rsb b/plugins/easy_wbs/app/views/easy_wbs/index.api.rsb
deleted file mode 100644
index 4540602..0000000
--- a/plugins/easy_wbs/app/views/easy_wbs/index.api.rsb
+++ /dev/null
@@ -1,91 +0,0 @@
-api.easy_wbs_data do
-
-  api.layout EasySetting.value(:easy_wbs_layout, @project)
-
-  api.array :projects do
-    @projects.each do |project|
-      api.project do
-        api.id project.id
-        api.name project.name
-        api.parent_id project.parent_id
-        api.default_url wbs_url_to_project(project)
-      end
-    end
-  end
-
-  api.array :issues do
-    api_render_issues(api, @issues)
-    api_render_issues(api, @missing_parent_issues, filtered_out: true) if @missing_parent_issues
-  end
-
-  api.array :relations do
-    @relations.each do |rel|
-      api.relation do
-        api.id rel.id
-        api.source_id rel.issue_from_id
-        api.target_id rel.issue_to_id
-        api.type rel.relation_type
-      end
-    end
-  end
-
-  api.array :trackers do
-    @trackers.each do |tracker|
-      api.tracker do
-        api.id tracker.id
-        api.name tracker.name
-        api.subtaskable tracker.core_fields.include?('parent_issue_id')
-      end
-    end
-  end
-
-  api.array :users do
-    @users.each do |user|
-      api.user do
-        api.id user.id
-        api.name user.name
-        api.avatar_url mindmup_avatar_url(user)
-      end
-    end
-  end
-  if defined?(EasyExtensions)
-    api.array :priorities do
-      IssuePriority.active.sorted.each do |priority|
-        api.priority do
-          api.id priority.id
-          api.name priority.name
-          api.scheme priority.easy_color_scheme
-        end
-      end
-    end
-  else
-    api.array :priorities do
-      IssuePriority.active.sorted.each do |priority|
-        api.priority do
-          api.id priority.id
-          api.name priority.name
-          api.is_default priority.is_default
-        end
-      end
-    end
-  end
-
-  api.array :statuses do
-    IssueStatus.sorted.each do |status|
-      api.status do
-        api.id status.id
-        api.name status.name
-      end
-    end
-  end
-
-  api.array :versions do
-    @versions.each do |version|
-      api.version do
-        api.id version.id
-        api.name version.name
-      end
-    end
-  end
-
-end
diff --git a/plugins/easy_wbs/app/views/easy_wbs/index.html.erb b/plugins/easy_wbs/app/views/easy_wbs/index.html.erb
deleted file mode 100644
index 79c6c54..0000000
--- a/plugins/easy_wbs/app/views/easy_wbs/index.html.erb
+++ /dev/null
@@ -1,157 +0,0 @@
-<%
-  data_path_params = @query.to_params.merge(key: User.current.api_key, format: 'json')
-  data_path = project_easy_wbs_index_path(@project, data_path_params)
-%>
-
-<div id="easy_wbs" class="<%= defined?(EasyExtensions) ? 'easy' : 'redmine' %>
-    wbs clear">
-
-  <%= render @query, easy_query_name: l(:heading_easy_wbs_issues),
-       wrapper_class: '',
-       options: { show_custom_formatting: false, show_free_search: false } %>
-
-  <div id="wbs_cont" class="clear mindmup-cont">
-    <div id="wbs_menu" class="mindmup__menu">
-      <div class="push-left">
-        <div class="mindmup__legend-container">
-          <div class="mindmup__legend-header">
-            <label class=mindmup__legend-label"><%= l(:button_legend, :scope => [:easy_wbs]) %>:
-              <select class="mindmup-color-select" style="width:150px">
-                <option value="tracker" selected><%= l(:field_tracker) %></option>
-                <option value="progress"><%= l(:field_done_ratio) %></option>
-                <option value="priority"><%= l(:field_priority) %></option>
-                <option value="status"><%= l(:field_status) %></option>
-                <option value="assignee"><%= l(:field_assigned_to) %></option>
-                <option value="milestone"><%= l(:field_version) %></option>
-              </select>
-            </label>
-            <div class="mindmup__legend-toggler legend-toggler push-right">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--legend mindmup__legend-trigger"><span class="tip"><%= l(:button_legend, :scope => [:easy_wbs]) %></span></a>
-            </div>
-          </div>
-          <div class="mindmup-legend"></div>
-        </div>
-        <div class="mindmup__menu-group mindmup__menu-group--tooltiped mindmup__menu-item mindmup__menu-group-display">
-          <a href="javascript:void(0)" class="button button-2 easy-mindmup__icon easy-mindmup__icon--display"><span><%= l(:button_display, :scope => [:easy_wbs]) %></span></a>
-          <ul>
-            <li class="show-links-toggler">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--links"><%= l(:button_show_links, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="all-icon-toggler">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--icons"><%= l(:button_all_icons, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="toggleOneSide">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--one_side"><%= l(:button_one_side, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="mindmup-expand-all">
-              <a href="javascript:void(0)" class="mindmup-button-expand-all easy-mindmup__icon easy-mindmup__icon--expand"><%= l(:button_expand_all, :scope => [:easy_wbs]) %></a>
-              <a href="javascript:void(0)" class="mindmup-button-collapse-all easy-mindmup__icon easy-mindmup__icon--collapse"><%= l(:button_collapse_all, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="mindmup__legend-cont-toggler">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--legend_hide"><%= l(:button_legend, :scope => [:easy_mindmup]) %></a>
-            </li>
-          </ul>
-        </div>
-      </div>
-      <% if defined?(EasyExtensions) && !EasySetting.value(:easy_wbs_no_sidebar)%>
-        <script type="application/javascript">
-          window.easyDartLoaders = window.easyDartLoaders || [];
-          document.write('<ng-root-' + window.easyDartLoaders.length + ' class="mindmup-sidebar__root"></ng-root-' + window.easyDartLoaders.length + '>');
-          window.easyDartLoaders.push(<%= {
-            subtype: :wbs,
-            id:'WBS classic',
-            plugin: 'mindmupSidebar',
-            data: {
-              lang: wbs_translations,
-              paths: {
-                # home_path: (home_path=='/')?home_path:(home_path+'/'),
-                home_path: home_path,
-                issue_path: issue_path('__issueId',key: User.current.api_key,format: :json),
-                project_path: project_path('__projectId',key: User.current.api_key,format: :json),
-                easy_issue_form_fields: url_for(controller: :easy_issues, action: :form_fields,id: '__issueId',format: :json,project_id: nil,key: User.current.api_key),
-                easy_issue_project_form_fields: url_for(controller: :easy_issues, action: :form_fields,format: :json,project_id: '__projectId',key: User.current.api_key),
-                user_json: user_path('__userId',key: User.current.api_key,format: :json),
-                user_html: user_path('__userId'),
-                user_profile_html:profile_user_path('__userId')
-              }
-            }.to_json.to_s
-            # there should be String value in key data - it is faster to iterop with dart part
-          }.to_json.html_safe %>);
-        </script>
-      <% end %>
-      <div class="mindmup__menu-group mindmup__menu-group--sizing mindmup__menu-item">
-        <ul>
-          <li class="scaleUp">
-            <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--zoom_in"></a>
-          </li>
-          <li class="resetView">
-            <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--refresh_view"></a>
-          </li>
-          <li class="scaleDown">
-            <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--zoom_out"></a>
-          </li>
-        </ul>
-      </div>
-      <div class="push-right">
-        <div class="mindmup__menu-group mindmup__menu-group--tooltiped mindmup__menu-item">
-          <a href="javascript:void(0)" class="button button-2 easy-mindmup__icon easy-mindmup__icon--settings"><span><%= l(:button_actions, :scope => [:easy_wbs]) %></span></a>
-          <ul>
-            <li class="undo mindmup-button-undo">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--undo"><%= l(:button_undo, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="redo mindmup-button-redo">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--redo"><%= l(:button_redo, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="mindmup-button-print">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--print"><%= l(:button_export) %></a>
-            </li>
-            <li class="cut">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--cut"><%= l(:button_cut, :scope => [:easy_wbs]) %></a>
-            </li>
-            <li class="copy">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--copy"><%= l(:button_copy) %></a>
-            </li>
-            <li class="paste">
-              <a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--paste"><%= l(:button_paste, :scope => [:easy_wbs]) %></a>
-            </li>
-          </ul>
-        </div>
-        <div class="mindmup__menu-item save mindmup__menu-save">
-          <a href="javascript:void(0)" class="button button-positive easy-mindmup__icon easy-mindmup__icon--save"><span><%= l(:button_save) %></span></a>
-          <div class="mindmup__menu-save--tooltip"></div>
-        </div>
-      </div>
-    </div>
-
-    <div id="container" class="mindmup-container" style="min-height: 600px;width: 100%;">
-      <div class="link-edit-widget">
-        <div class="link-edit-type-actual"></div>
-      </div>
-      <%= render 'easy_mindmup/hotkeys' %>
-    </div>
-  </div>
-</div>
-
-<% heads_for_wiki_formatter %>
-<%= content_for :header_tags do %>
-  <%= render 'easy_mindmup/includes' %>
-  <%= render 'easy_mindmup/js_prepare' %>
-  <%= render 'easy_wbs/js_prepare' %>
-  <%= render 'easy_wbs/includes' %>
-  <%= render 'easy_wbs/test_includes' %>
-
-  <script type="application/javascript">
-    window.easyMindMupSetting.paths.data = "<%= data_path.html_safe %>";
-  </script>
-
-  <script type="text/javascript">
-    (function () {
-      var settings = window.easyMindMupSetting;
-      delete window.easyMindMupSetting;
-      $(document).ready(function () {
-        new window.easyMindMupClasses.WbsMain(settings);
-      })
-    })();
-  </script>
-<% end %>
-
diff --git a/plugins/easy_wbs/assets/images/person.gif b/plugins/easy_wbs/assets/images/person.gif
deleted file mode 100644
index a0e72aff4e540308d048fd10a07f48a64d32b654..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 875
zcmZ?wbhEHb6l4%#c+LO<jEsy-Oiawo%q%P{tgNhTY;5f8>>L~%oSd9oTwL7T+&nxy
zyu7@8e0==;`~m_3f`WoVLPEmA!XhFfqN1W=Vq)Ur;t~=Pl9G~AQc}{=(lRnKva+&r
za&q$W@(KzHii(O#N=nMg$|@=<s;a7LYHI50>KYmvnwpwgT3XuL+B!Nqy1Kf0dV2c$
z`UVCDhK7blMn=ZQ#wI2vrlzK5W@hH*<`xzfmX?-QR#w*5);2aawzjr*c6Rpm_6`mX
zj*gB_PEO9w&Mq!4uCA_bZf@@G?j9Z<o}QjwUS8hb-abA)zP`SGet!P`{s932fq{WR
zK|#U6!66|bp`oE+VPWCn;SmuLk&%&6QBl#+(J?VGv9YmnadGkS@d*hDiHV6xNlD4c
z$tfu*si~=HX=&-{=@}UrnVFecSy|cH**Q5mxw*M{d3pKy`2__9g@uJhMMcHM#U&*r
zrKP21Wo6~%<rNhbm6erMRaMp1)ipIWwY9Z%b#?Xi^$iUTjg5^>O-;?s%`Gi0t*xzX
zZEfxC?HwH*ot>RsU0vPX-90@$y}iACeSQ7?{Szikm^g9bq)C$|Po6ww%9N>7r%szT
zZTj@-GiJ<~IdkT$S+i!(o;_#IoVj!7&YL%H{`~n17A#n}aN(jwixw|lykyCerAwDC
zTefWZ^5rX5tXR2n<*HSyR<B;YX3d(lYuBz@w{HFV^&2*9*tl`yrcIkRZ{ECR%a*NM
zw{F|EZTt4^J9g~YxpU{PUAuPg-o0nfp1phb?%TI-|Ni|44jedm@Zh0ChYlY;eB{WH
zqeqV(J9g~&@#7~>oH%*%<f&7qPM<z~=FFM1XV0EHckcZ8^A|2$xOnm6rAwDCU%q_h
z%9X2EuU@-$?fUiWH*VaxdGqG2TeoiCzJ2G;ox6AM-n)12{{8z89z1yX@ZqCJj~+jM
z{N%}#r%#_gd-m-4^XD&Kym<NY<*Qe(UcY|*=FOY8Z{NOq_wN1s_a8od`1tYTr%#_g
zfByXC%a^ZTzkd7n?fdudKYsl9`Sa(mU%!6;{{83ApTB?q{`>du|NsArKUo;L82&Tp
zfN}yTPcU$JF#P9~`LVv+v5A9SDyG6<p;H^LtW(O14G)fVaOfwUvDmoiK)0NH8K-B^
lBabF&U8xi!1J0xU0<L;3lEO=l&9*3hb?4+}^>Ymj)&PIyq38er

diff --git a/plugins/easy_wbs/assets/javascripts/gateway.js b/plugins/easy_wbs/assets/javascripts/gateway.js
deleted file mode 100644
index f98d458..0000000
--- a/plugins/easy_wbs/assets/javascripts/gateway.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * Created by hosekp on 11/15/16.
- */
-(function () {
-  /**
-   * Helper class - contains Ajax requests
-   * @param ysy
-   * @constructor
-   */
-  function Gateway(ysy) {
-    this.ysy = ysy;
-  }
-
-  /**
-   * @callback GatewayCallback
-   * @param {Object} response
-   */
-  /**
-   *
-   * @param {String} urlTemplate
-   * @param {Object} obj
-   * @param {GatewayCallback} callback
-   * @param {GatewayCallback} fail
-   */
-  Gateway.prototype.polymorficGet = function (urlTemplate, obj, callback, fail) {
-    if (!urlTemplate) return;
-    var url = urlTemplate.replace(":issueID", obj.issueID);
-    $.get(url, obj)
-        .done(callback)
-        .fail(fail);
-  };
-  /**
-   *
-   * @param {String} urlTemplate
-   * @param {Object} obj
-   * @param {GatewayCallback} callback
-   * @param {GatewayCallback} fail
-   */
-  Gateway.prototype.polymorficGetJSON = function (urlTemplate, obj, callback, fail) {
-    if (!urlTemplate) return;
-    var url = Mustache.render(urlTemplate, $.extend(this.getBasicParams(), obj));
-    $.getJSON(url, obj)
-        .done(callback)
-        .fail(fail);
-  };
-  /**
-   *
-   * @param {String} urlTemplate
-   * @param {Object} obj
-   * @param {Object} data
-   * @param {GatewayCallback} callback
-   * @param {GatewayCallback} fail
-   */
-  Gateway.prototype.polymorficPost = function (urlTemplate, obj, data, callback, fail) {
-    if (!urlTemplate) return;
-    var url = Mustache.render(urlTemplate, $.extend(this.getBasicParams(), obj));
-    $.ajax({
-      url: url,
-      type: "POST",
-      data: data,
-      dataType: "json"
-    }).done(callback).fail(fail);
-  };
-  /**
-   *
-   * @param {String} urlTemplate
-   * @param {Object} obj
-   * @param {Object} data
-   * @param {GatewayCallback} callback
-   * @param {GatewayCallback} fail
-   */
-  Gateway.prototype.polymorficPut = function (urlTemplate, obj, data, callback, fail) {
-    if (!urlTemplate) return;
-    var url = Mustache.render(urlTemplate, $.extend(this.getBasicParams(), obj));
-    $.ajax({
-      url: url,
-      type: "PUT",
-      data: JSON.stringify(data),
-      contentType: "application/json",
-      dataType: "text"
-    }).done(callback).fail(fail);
-  };
-  /**
-   *
-   * @param {String} urlTemplate
-   * @param {Object} obj
-   * @param {GatewayCallback} callback
-   * @param {GatewayCallback} fail
-   */
-  Gateway.prototype.polymorficDelete = function (urlTemplate, obj, callback, fail) {
-    if (!urlTemplate) return;
-    var url = Mustache.render(urlTemplate, $.extend(this.getBasicParams(), obj));
-    $.ajax({
-      url: url,
-      type: "DELETE",
-      dataType: "json"
-    }).done(callback).fail(fail);
-  }
-})();
diff --git a/plugins/easy_wbs/assets/javascripts/tests/idea_diff.js b/plugins/easy_wbs/assets/javascripts/tests/idea_diff.js
deleted file mode 100644
index 2570ac4..0000000
--- a/plugins/easy_wbs/assets/javascripts/tests/idea_diff.js
+++ /dev/null
@@ -1,102 +0,0 @@
-ysy.wbs = ysy.wbs || {};
-ysy.wbs.test = ysy.wbs.test || {};
-ysy.wbs.test.ideaDiff = function () {
-  var idea1 = {id: 0, attr: {data: {id: 0}}};
-  var idea2 = {id: 0, attr: {data: {id: 0}}};
-
-  var recursiveBuilder = function (idea1, idea2, level) {
-    if (Math.random() < 0.5 * (level - 1)) return; // leaves
-    var count = Math.ceil(Math.random() * 7);
-    idea1.ideas = {};
-    idea2.ideas = {};
-    for (var i = 0; i < count; i++) {
-      var id = Math.ceil(Math.random() * 10000);
-      var child1 = {
-        id: id,
-        title: "Task " + id,
-        attr: {
-          data: {
-            id: id
-          }
-        }
-      };
-      var child2 = {
-        id: child1.id,
-        title: "Task " + child1.attr.data.id,
-        attr: {
-          data: {
-            id: child1.attr.data.id
-          }
-        }
-      };
-      var rank = 0;
-      while (rank === 0 || idea1.ideas[rank]) {
-        rank = Math.ceil(Math.random() * count * 2);
-      }
-      idea1.ideas[rank] = child1;
-      rank = 0;
-      while (rank === 0 || idea2.ideas[rank]) {
-        rank = Math.ceil(Math.random() * count * 2);
-      }
-      idea2.ideas[rank] = child2;
-      recursiveBuilder(child1, child2, level + 1);
-    }
-  };
-
-  recursiveBuilder(idea1, idea2, 1);
-  return {idea1: idea1, idea2: idea2};
-  // console.log(JSON.stringify([idea1,idea2]));
-  // console.log(JSON.stringify(ysy.storage.lastState.compareIdea(idea1,"structure",idea2)));
-};
-ysy.wbs.test.scramble = function (idea) {
-  var possibleParents = [];
-  ysy.util.traverse(idea, function (node) {
-    if (_.isEmpty(node.ideas)) return;
-    for (var rank in node.ideas) {
-      if (!node.ideas.hasOwnProperty(rank)) continue;
-      if (!_.isEmpty(node.ideas[rank].ideas)) return;
-    }
-    possibleParents.push(node);
-  });
-  var parent = possibleParents[Math.floor(Math.random() * possibleParents.length)];
-  var childRanks = Object.getOwnPropertyNames(parent.ideas);
-  var childRank = childRanks[Math.floor(Math.random() * childRanks.length)];
-  var child = parent.ideas[childRank];
-  child.scrambled = true;
-  var possibleTargets = [];
-  ysy.util.findWhere(idea, function (node) {
-    if (node === child) return true;
-    if (node === parent) return false;
-    possibleTargets.push(node);
-  });
-  var target = possibleTargets[Math.floor(Math.random() * possibleTargets.length)];
-  if (!target.ideas) target.ideas = {};
-  target.ideas[100000] = child;
-  delete parent.ideas[childRank];
-};
-ysy.wbs.test.changeValue = function (idea) {
-  var possibleNodes = [];
-  ysy.util.traverse(idea, function (node) {
-    if (node.attr.isProject) return;
-    possibleNodes.push(node);
-  });
-  var node = possibleNodes[Math.floor(Math.random() * possibleNodes.length)];
-  // node = idea;
-  node.changed = true;
-  ysy.mapModel.setData(node, {status_id: 5});
-};
-ysy.wbs.test.nonSubtaskable = function () {
-  var task4 = ysy.mapjs.idea.ideas[-1].ideas[1];
-  ysy.mapModel.setData(task4, {tracker_id: 1});
-  ysy.mapModel.setData(task4, {tracker_id: 2});
-  task4.attr.data.tracker_id = 57;
-};
-ysy.wbs.test.diffMessages = function () {
-  var ideas = ysy.wbs.test.ideaDiff();
-  // ysy.wbs.test.scramble(ideas.idea2);
-  ysy.wbs.test.changeValue(ideas.idea2);
-  // ysy.log.debug(JSON.stringify(ideas));
-  var diff = ysy.storage.lastState.compareIdea(ideas.idea2, "server", ideas.idea1);
-  ysy.log.debug(JSON.stringify(diff));
-  ysy.loader.prepareLastStateMessages(diff, ideas.idea1, ideas.idea2);
-};
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/tests/parse_form.js b/plugins/easy_wbs/assets/javascripts/tests/parse_form.js
deleted file mode 100644
index 1f07c26..0000000
--- a/plugins/easy_wbs/assets/javascripts/tests/parse_form.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Created by hosekp on 2/21/17.
- */
-window.easyTests = $.extend(window.easyTests, {
-  /** @type {MindMup}*/
-  ysyInstance: null,
-  parseForm: function () {
-    var formData = [{"name": "utf8", "value": "✓"}, {
-      "name": "_method",
-      "value": "patch"
-    }, {
-      "name": "authenticity_token",
-      "value": "AyUhWxdKyCnB5V5FgkMZecRtDucWOsFRAq+RmxhPjclTrjNy3VngNdHp5tiS+iVqOqp4+7PXyrJNrDAX2rWGmA=="
-    }, {"name": "form_update_triggered_by", "value": ""}, {
-      "name": "issue[subject]",
-      "value": "level 1d"
-    }, {"name": "issue[tracker_id]", "value": "15"}, {
-      "name": "issue[author_id]",
-      "value": "5"
-    }, {"name": "issue[fixed_version_id]", "value": ""}, {
-      "name": "issue[old_fixed_version_id]",
-      "value": ""
-    }, {"name": "issue[parent_issue_id]", "value": ""}, {
-      "name": "issue[parent_issue_id]",
-      "value": ""
-    }, {"name": "issue[start_date]", "value": "2016-12-08"}, {
-      "name": "issue[easy_repeat_settings][simple_period]",
-      "value": ""
-    }, {
-      "name": "issue[easy_repeat_settings][end_date]",
-      "value": ""
-    }, {
-      "name": "issue[easy_repeat_settings][endtype_count_x]",
-      "value": ""
-    }, {"name": "issue[custom_field_values][29][]", "value": "material2"}, {
-      "name": "issue[custom_field_values][29][]",
-      "value": "material4"
-    }, {"name": "issue[custom_field_values][29][]", "value": ""}, {
-      "name": "issue[custom_field_values][83]",
-      "value": ""
-    }, {"name": "issue[status_id]", "value": "1"}, {
-      "name": "issue[done_ratio]",
-      "value": "0"
-    }, {"name": "issue[priority_id]", "value": "9"}, {"name": "issue[due_date]", "value": ""}, {
-      "name": "issue[notes]",
-      "value": ""
-    }, {"name": "version[project_id]", "value": "118"}, {
-      "name": "issue[private_notes]",
-      "value": "0"
-    }, {"name": "issue[private_notes]", "value": "1"}, {
-      "name": "issue[update_repeat_entity_attributes]",
-      "value": "1"
-    }, {"name": "issue[lock_version]", "value": "4"}];
-    var result = this.ysyInstance.util.formToJson(formData);
-    console.log(JSON.stringify(result));
-  }
-});
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/tests/printing.js b/plugins/easy_wbs/assets/javascripts/tests/printing.js
deleted file mode 100644
index 46b9f73..0000000
--- a/plugins/easy_wbs/assets/javascripts/tests/printing.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Created by hosekp on 11/25/16.
- */
-
-window.easyTests = $.extend(window.easyTests,{
-  /** @type {MindMup}*/
-  ysyInstance: null,
-  printify:function(){
-    this.ysyInstance.print.beforePrint();
-  },
-  deprintify:function () {
-    this.ysyInstance.print.afterPrint();
-  }
-});
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/tests/saving_test.js b/plugins/easy_wbs/assets/javascripts/tests/saving_test.js
deleted file mode 100644
index 8cc83a6..0000000
--- a/plugins/easy_wbs/assets/javascripts/tests/saving_test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Created by hosekp on 11/15/16.
- */
-
-window.easyTests = $.extend(window.easyTests,{
-  /** @type {MindMup}*/
-  ysyInstance: null,
-  addTenIssues: function () {
-    var counter = 1;
-    var mapModel = this.ysyInstance.mapModel;
-    for (var i = 0; i < 10; i++) {
-      mapModel.addSubIdea("script", undefined, "Node " + counter++);
-    }
-  },
-  changeStatusOfAll: function (status) {
-    /** @type {MindMup}*/
-    var ysy = this.ysyInstance;
-    ysy.util.traverse(ysy.idea, function (node) {
-      ysy.setData(node,{status_id:status || 2});
-    });
-    ysy.idea.dispatchEvent('changed');
-  }
-});
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_context_menu.js b/plugins/easy_wbs/assets/javascripts/wbs_context_menu.js
deleted file mode 100644
index 09c1891..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_context_menu.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * Created by hosekp on 11/28/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  /**
-   * Context menu for WBS
-   * @param {WbsMain} ysy
-   * @constructor
-   */
-  function WbsContextMenu(ysy) {
-    classes.ContextMenu.call(this, ysy);
-  }
-
-  classes.extendClass(WbsContextMenu, classes.ContextMenu);
-  /**
-   * Prepare Object for Mustache to render context menu
-   * @param {ModelEntity} node
-   * @override
-   * @return {Object}
-   */
-  WbsContextMenu.prototype.getStructure = function (node) {
-    var ysy = this.ysy;
-    var data = ysy.getData(node);
-    var isProject = node.attr.entityType === "project";
-    var isBulkEdit = ysy.mapModel.getActivatedNodeIds().length > 1;
-    var isCollapsed = node.attr.collapsed;
-    var trackers, priorities, statuses, assignees, doneRatio;
-    if (!isProject) {
-      trackers = ysy.dataStorage.get("trackers").map(function (entity) {
-        return {name: entity.name, value: entity.id, previous: data.tracker_id === entity.id}
-      });
-      priorities = ysy.dataStorage.get("priorities").map(function (entity) {
-        return {name: entity.name, value: entity.id, previous: data.priority_id === entity.id};
-      });
-      statuses = ysy.dataStorage.get("statuses").map(function (entity) {
-        return {name: entity.name, value: entity.id, previous: data.status_id === entity.id};
-      });
-      assignees = [{name: "<< nobody >>", value: null, previous: !data.assigned_to_id}]
-          .concat(ysy.dataStorage.get("users").map(function (entity) {
-            return {name: entity.name, value: entity.id, previous: data.assigned_to_id === entity.id}
-          }));
-      doneRatio = [];
-      var dataDoneRatio = data.done_ratio || 0;
-      for (var i = 0; i <= 100; i += 10) {
-        doneRatio.push({name: i + " %", value: i, previous: dataDoneRatio === i})
-      }
-    }
-    var labels = ysy.settings.labels;
-    var ctxLabels = labels.context;
-    var nonEditable = node.attr.nonEditable;
-    return [
-      {
-        name: isCollapsed ? ctxLabels.expand : ctxLabels.collapse,
-        aClassName: 'easy-mindmup__icon easy-mindmup__icon--'+(isCollapsed ? 'expand' : 'collapse') + ' toggleCollapse',
-        skip: _.isEmpty(node.ideas)
-      }, {
-        name: ctxLabels.goto + " " + (isProject ? labels.types.project : labels.types.issue),
-        aClassName: 'easy-mindmup__icon easy-mindmup__icon--follow_url followURL',
-        skip: isBulkEdit
-      }, {
-        name: ctxLabels.rename,
-        aClassName: 'easy-mindmup__icon easy-mindmup__icon--rename editNode',
-        skip: isBulkEdit || !ysy.validator.validate("nodeRename", node)
-      }, {
-        name: ctxLabels.editData,
-        aClassName: 'easy-mindmup__icon easy-mindmup__icon--edit_data editNodeData',
-        skip: isBulkEdit || nonEditable
-      },
-      this.prepareOption(function () {
-        return {
-          name: ctxLabels.tracker,
-          key: 'tracker_id',
-          changer: trackers
-        };
-      }, nonEditable || isProject),
-      this.prepareOption(function () {
-        return {
-          name: ctxLabels.priority,
-          key: 'priority_id',
-          changer: priorities
-        };
-      }, nonEditable),
-      this.prepareOption(function () {
-        return {
-          name: ctxLabels.status,
-          key: 'status_id',
-          changer: statuses
-        };
-      }, nonEditable || isProject),
-      this.prepareOption(function () {
-        return {
-          name: ctxLabels.assignee,
-          key: 'assigned_to_id',
-          changer: assignees
-        };
-      }, nonEditable || isProject),
-      this.prepareOption(function () {
-        return {
-          name: ctxLabels.doneRatio,
-          key: 'done_ratio',
-          changer: doneRatio
-        };
-      }, nonEditable || isProject),
-      this.prepareOption(function () {
-        return {
-          name: ctxLabels.add,
-          className: 'folder',
-          aClassName: 'easy-mindmup__icon easy-mindmup__icon--add',
-          subMenu: [
-            {
-              name: ctxLabels.addChild,
-              className: 'easy-mindmup__icon easy-mindmup__icon--add addSubIdea'
-            }, {
-              name: ctxLabels.addSibling,
-              className: 'easy-mindmup__icon easy-mindmup__icon--add_sibling addSiblingIdea'
-            }, {
-              name: ctxLabels.addParent,
-              className: 'easy-mindmup__icon easy-mindmup__icon--insert_between insertIntermediate'
-            }
-          ]
-        };
-      }, isBulkEdit),
-      {
-        name: ctxLabels.remove,
-        aClassName: 'easy-mindmup__icon easy-mindmup__icon--remove removeSubIdea',
-        skip: nonEditable
-      }
-    ]
-  };
-  classes.WbsContextMenu = WbsContextMenu;
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_loader.js b/plugins/easy_wbs/assets/javascripts/wbs_loader.js
deleted file mode 100644
index 7b81688..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_loader.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  /**
-   * @extends {Loader}
-   * @param {WbsMain} ysy
-   * @constructor
-   */
-  function WbsLoader(ysy) {
-    classes.Loader.call(this, ysy);
-  }
-
-  classes.extendClass(WbsLoader, classes.Loader);
-
-  /**
-   *
-   * @param {Object} rawData
-   * @return {Object}
-   */
-  WbsLoader.prototype.extractData = function (rawData) {
-    return rawData["easy_wbs_data"];
-  };
-  WbsLoader.prototype.loadSideData = function (data) {
-    this.ysy.dataStorage.save("trackers", data["trackers"]);
-    this.ysy.dataStorage.save("priorities", data["priorities"]);
-    this.ysy.dataStorage.save("statuses", data["statuses"]);
-    this.ysy.dataStorage.save("users", data["users"]);
-    this.ysy.dataStorage.save("versions", data["versions"]);
-  };
-
-  WbsLoader.prototype.getParentFromSource = function (entity, next) {
-    var entityData = entity.attr.data;
-    if (!next) {
-      if (entityData["parent_issue_id"]) return new classes.ParentPack("issue", entityData["parent_issue_id"]);
-      if (entityData["parent_id"]) return new classes.ParentPack("project", entityData["parent_id"]);
-      if (entityData["project_id"]) return new classes.ParentPack("project", entityData["project_id"]);
-    } else {
-      if (entityData["parent_issue_id"]) return new classes.ParentPack("project", entityData["project_id"]);
-    }
-    return null;
-  };
-
-  classes.WbsLoader = WbsLoader;
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_main.js b/plugins/easy_wbs/assets/javascripts/wbs_main.js
deleted file mode 100644
index 545e533..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_main.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  /**
-   * @extends {MindMup}
-   * @param {Object} settings
-   * @constructor
-   */
-  function WbsMain(settings) {
-    classes.MindMup.call(this, settings);
-    this.helperInit();
-    this.patch();
-    this.init();
-    // this.settings.noSave = true;
-    easyTests.ysyInstance = this;
-  }
-
-  classes.extendClass(WbsMain, classes.MindMup);
-
-
-  WbsMain.prototype.patch = function () {
-    /** @type {WbsLoader} */
-    this.loader = new classes.WbsLoader(this);
-    /** @type {WbsNodePatch} */
-    this.nodePatch = new classes.WbsNodePatch(this);
-    /** @type {WbsSaver} */
-    this.saver = new classes.WbsSaver(this);
-    /** @type {WbsStyles} */
-    this.styles = new classes.WbsStyles(this);
-    /** @type {WbsValidator} */
-    this.validator = new classes.WbsValidator(this);
-    /** @type {WbsContextMenu} */
-    this.contextMenu = new classes.WbsContextMenu(this);
-    /** @type {WbsModals} */
-    this.modals = new classes.WbsModals(this);
-
-    /** @type {WbsMain} */
-    var self = this;
-    /**
-     * Modify StorageExtra._getIdOfIdea(), so it use proper prefixes
-     */
-    this.eventBus.register("BeforeViewClassInit", function () {
-      /** @param {ModelEntity} idea */
-      self.storage.extra._getIdOfIdea = function (idea) {
-        var id = this.ysy.getData(idea).id;
-        if (idea.attr.entityType === "project") {
-          return "p" + id;
-        } else {
-          return "i" + id;
-        }
-      };
-    });
-  };
-  WbsMain.prototype.creatingEntity = "issue";
-
-  classes.WbsMain = WbsMain;
-})();
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_modals.js b/plugins/easy_wbs/assets/javascripts/wbs_modals.js
deleted file mode 100644
index 74a694c..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_modals.js
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- * Created by hosekp on 11/15/16.
- */
-(function () {
-  /**
-   *
-   * @param {WbsMain} ysy
-   * @constructor
-   */
-  function WbsModals(ysy) {
-    this.ysy = ysy;
-    /** @type {jQuery} */
-    this.$target = null;
-    /** @type {ModelEntity} */
-    this.selectedIdea = null;
-    this._cache = {};
-    this.patch(ysy);
-  }
-
-  /**
-   *
-   * @param {WbsMain} ysy
-   */
-  WbsModals.prototype.patch = function (ysy) {
-    var self = this;
-    ysy.eventBus.register("MapInited", function (mapModel) {
-      ysy.$container.off("click.exclamation").on("click.exclamation", ".mapjs-exclamation", function () {
-        var contextNodeId = mapModel.getSelectedNodeId();
-
-        ysy.eventBus.fireEvent('nodeEditDataRequested', contextNodeId);
-      });
-      ysy.eventBus.register('nodeEditDataRequested', $.proxy(self.onEditRequested, self));
-    });
-  };
-  WbsModals.prototype.onEditRequested = function (nodeId) {
-    /** @type {ModelEntity} */
-    var idea = this.ysy.mapModel.findIdeaById(nodeId);
-    this.selectedIdea = idea;
-    var sendPack = new this.ysy.saver.createSendPack(idea, this.ysy.idea.findParent(idea.id));
-    sendPack.ysy = this.ysy;
-    sendPack.updateNodeData();
-    var startsWith = this.ysy.util.startsWith;
-    var preFill = _.omit(sendPack.node.attr.data, function (value, key) {
-      return _.isFunction(value) || startsWith(key, "_");
-    });
-    if(preFill.custom_fields){
-      var customValues={};
-      for(var i=0;i<preFill.custom_fields.length;i++){
-        var customField = preFill.custom_fields[i];
-        customValues[customField.id]=customField.value;
-      }
-      delete preFill.custom_fields;
-      preFill.custom_field_values = customValues;
-    }
-    if (idea.attr.entityType === "project") {
-
-    } else {
-      this.$target = this.ysy.util.getModal("form-modal", "90%");
-      if (preFill.id) {
-        this.openEditIssueModal(preFill);
-      } else {
-        this.openNewIssueModal(preFill);
-      }
-    }
-
-  };
-  WbsModals.prototype.submitFunction = function (e) {
-    var $target = this.$target;
-    if (window.fillFormTextAreaFromCKEditor) {
-      $target.find("textarea").each(function () {
-        window.fillFormTextAreaFromCKEditor(this.id);
-      });
-    }
-    var errors = [];
-    var cannotBeEmpty = this.ysy.settings.labels.errors.cannotBeEmpty;
-    $.unique($target.find("label.required, label .required").closest("label")).each(function () {
-      var $label = $(this);
-      var $input = $label.parent().find("#" + $label.attr("for"));
-      if (!$input.length) return;
-      //var $input = $label.next();
-      if (!$input.val()) {
-        var label = $label.text();
-        errors.push(label.substring(0, label.length - 2) + " " + cannotBeEmpty /* + ysy.view.getLabel("addTask", "error_blank")*/);
-      }
-    });
-    if (errors.length) {
-      var errorSpan = $('<span></span>').html(errors.join("<br>"));
-      var closeButton = $('<a href="javascript:void(0)" class="easy-mindmup__icon easy-mindmup__icon--close mindmup_modal__flash_close"></a>').click(function (event) {
-        $(this)
-            .closest('.flash')
-            .fadeOut(500, function () {
-              $(this).remove();
-            })
-      });
-      $target.prepend($('<div class="flash error"></div>').append(errorSpan, closeButton));
-      return false;
-    }
-    var data = $target.parent().find("form").serializeArray();
-
-    var transformed = this.transformData(data);
-    this.updateIssue(this.selectedIdea, transformed);
-    $target.dialog("close");
-    return false;
-  };
-  WbsModals.prototype.openNewIssueModal = function (preFill) {
-    var self = this;
-    var successCallback = function (data) {
-      var $form = $(data).filter("#issue-form");
-      if ($form.length === 0) $form = $(data).find("#issue-form");
-
-      $form.find('input[name="continue"]').remove();
-      $form.find('fieldset[data-toggle="easy_checklist_form_container"]').remove();
-      self.finishModal("new", "issue", $form, preFill);
-    };
-    $.ajax(this.ysy.settings.paths.newIssuePath, {
-      method: "GET",
-      data: {
-        projectID: preFill.project_id,
-        issue: preFill
-      }
-    }).done(successCallback);
-  };
-  WbsModals.prototype.openEditIssueModal = function (preFill) {
-    var self = this;
-    var path = this.ysy.settings.paths.editIssuePath.replace(":issueID", preFill.id);
-    var successCallback = function (data) {
-      var $form = $(data).filter("#issue-form");
-      if ($form.length === 0) $form = $(data).find("#issue-form");
-      if (self.ysy.settings.easyRedmine) {
-        $form.find("#issue_timeentry_fields").parent().remove();
-        $form.find("#edit_issue_notes").hide()
-            .siblings().find(".module-toggle-button .group").removeClass("open");
-        $form.find("#issue_descr_fields").show();
-        $form.find(".issue-edit-hidden-attributes").remove();
-        $form.find(".issue_edit_submit_buttons a").remove();
-      } else {
-        $form.find("#time_entry_hours").closest("fieldset").remove();
-        $form.find("#attachments_fields").closest("fieldset").remove();
-      }
-      $form.find(".issue-attachments-container").remove();
-      self.finishModal("edit", "issue", $form, preFill);
-    };
-    $.ajax(path, {
-      method: "GET",
-      data: {
-        projectID: preFill.project_id,
-        issue: preFill
-      }
-    }).done(successCallback);
-
-  };
-  /**
-   *
-   * @param {String} actionType
-   * @param {String} entityType
-   * @param {jQuery} $form
-   * @param {Object} preFill
-   */
-  WbsModals.prototype.finishModal = function (actionType, entityType, $form, preFill) {
-    var settings = this.ysy.settings;
-    $form.find("#preview").remove();
-    $form.find("h2, h3.title").remove();
-    var $target = this.$target;
-    $target.empty().append($form);
-    if (!settings.easyRedmine) {
-      $form.contents().filter(function () {
-        return this.nodeName === "A" || this.nodeType == 3;
-      }).remove();
-      $('<div class="issue_submit_buttons"></div>').append($form.find('input[type="submit"]')).appendTo($form);
-    }
-    $target.prepend($("<h3 class='title'>" + settings.labels.modals[actionType + "_" + entityType] + "</h3>"));
-    var $buttons = $form.find(".issue_edit_submit_buttons, .issue_submit_buttons");
-    $buttons.find('input[type="submit"]').click($.proxy(this.submitFunction, this));
-    $buttons.append($('<a href="javascript:void(0)" class="wbs-modal-close button">' + settings.labels.buttons.close + '</a>')
-        .click(function () {
-          $target.dialog('close');
-        }));
-    $target.find(".form-actions").hide();
-
-    showModal("form-modal");
-    $target.dialog({
-      maxHeight: window.innerHeight - 100,
-      buttons: [
-        {}
-      ]
-    });
-    $target.parent().find(".ui-dialog-buttonpane").empty().append($('<form id="modal_submit_form">').append($buttons.children()));
-    $target.find("#issue-form").submit($.proxy(this.submitFunction, this))
-        .append($('<input type="hidden" name="version[project_id]" value="' + preFill.project_id + '" />'));
-  };
-  /**
-   * Accepts data from form.serializeArray() and transform it to Object similar to ModelEntityData
-   * @param {Array.<Object.<String,String>>} data
-   * @return {Object}
-   */
-  WbsModals.prototype.transformData = function (data) {
-    //var momentarize=function(date){return moment(date,"YYYY-MM-DD");};
-    //var momentarizeEnd=function(date){var mom=moment(date,"YYYY-MM-DD");mom._isEndDate=true;return mom;};
-    var structured = this.ysy.util.formToJson(data);
-    var transformed = {};
-    var parseInteger = function (number) {
-      if (number === "") return null;
-      return parseInt(number);
-    };
-    var parseDecimal = function (number) {
-      if (number === "") return null;
-      return parseFloat(number);
-    };
-    var functionMap = {
-      // name: nothing,
-      is_private: parseInteger,
-      tracker_id: parseInteger,
-      status_id: parseInteger,
-      // status: nothing,
-      // sharing: nothing,
-      // subject: nothing,
-      // description: nothing,
-      priority_id: parseInteger,
-      project_id: parseInteger,
-      assigned_to_id: parseInteger,
-      fixed_version_id: parseInteger,
-      easy_version_category_id: parseInteger,
-      old_fixed_version_id: parseInteger,
-      parent_issue_id: parseInteger,
-      // start_date: nothing,
-      // due_date: nothing,
-      effective_date: function (value) {
-        transformed.start_date = value;
-        return null;
-      },
-      estimated_hours: parseDecimal,
-      done_ratio: parseInteger,
-      // custom_field_values: nothing,
-      // easy_distributed_tasks: nothing,
-      // easy_repeat_settings: nothing,
-      // easy_repeat_simple_repeat_end_at: nothing,
-      // watcher_user_ids: nothing,
-      // easy_ldap_entity_mapping: nothing,
-      // skip_estimated_hours_validation: nothing,
-      activity_id: parseInteger
-    };
-    var issueKeys = Object.getOwnPropertyNames(structured.issue);
-    for (var i = 0; i < issueKeys.length; i++) {
-      var key = issueKeys[i];
-      if (functionMap.hasOwnProperty(key)) {
-        var parsed = functionMap[key](structured.issue[key], key);
-      } else {
-        parsed = structured.issue[key];
-      }
-      transformed[key] = parsed;
-    }
-    return transformed;
-  };
-  /**
-   *
-   * @param {ModelEntity} idea
-   * @param {Object} transformed
-   */
-  WbsModals.prototype.updateIssue = function (idea, transformed) {
-    this.ysy.setData(idea, transformed);
-    idea.title = idea.attr.data.subject;
-    this.ysy.idea.dispatchEvent("changed");
-  };
-
-
-  window.easyMindMupClasses.WbsModals = WbsModals;
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_node_patch.js b/plugins/easy_wbs/assets/javascripts/wbs_node_patch.js
deleted file mode 100644
index e2ec91c..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_node_patch.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  /**
-   *
-   * @param {WbsMain} ysy
-   * @constructor
-   */
-  function WbsNodePatch(ysy) {
-    classes.NodePatch.call(this, ysy);
-    this.initIcons();
-  }
-
-  classes.extendClass(WbsNodePatch, classes.NodePatch);
-  /**
-   * @param {ModelEntity} nodeContent
-   * @return {String}
-   */
-  WbsNodePatch.prototype.nodeBonusCss = function (nodeContent) {
-    return nodeContent.attr.entityType === "project" ? " mindmup-scheme-project wbs-project" : " wbs-issue";
-  };
-
-  WbsNodePatch.prototype.iconsForEntity = {
-    issue: ["exclamation", "avatar", "progress", "status", "milestone"]
-  };
-  WbsNodePatch.prototype.initIcons = function () {
-    /** @type {WbsMain} */
-    var ysy = this.ysy;
-    this.addIconBuilder("progress", function (nodeContent) {
-      var data = ysy.getData(nodeContent);
-      if (data.done_ratio === undefined) return null;
-      return '<div class="mindmup-node-icon-progress-bar" style="top:' + (100 - data.done_ratio) + '%;height:' + data.done_ratio + '%"></div>';
-    });
-    this.addIconBuilder("status", function (nodeContent) {
-      var data = ysy.getData(nodeContent);
-      var statuses = ysy.dataStorage.get("statuses");
-      if (data.status_id === undefined) return;
-      var status = _.find(statuses, function (status) {
-        return status.id === data.status_id;
-      });
-      if (status) return status.name;
-    });
-    this.addIconBuilder("milestone", function (nodeContent) {
-      var data = ysy.getData(nodeContent);
-      var css = ysy.styles.styles["milestone"].addSchemeClassFromData(data);
-      if (!css) return null;
-      return '<div class="mindmup-node-icon-milestone-shell scheme-by-milestone">\
-            <div class="mindmup-node-icon-milestone-diamond' + css + '"></div></div>'
-    });
-  };
-
-  classes.WbsNodePatch = WbsNodePatch;
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_saver.js b/plugins/easy_wbs/assets/javascripts/wbs_saver.js
deleted file mode 100644
index 96af2c6..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_saver.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  /**
-   * @extends {Saver}
-   * @param {WbsMain} ysy
-   * @constructor
-   */
-  function WbsSaver(ysy) {
-    classes.Saver.call(this, ysy);
-  }
-
-  classes.extendClass(WbsSaver, classes.Saver);
-
-  WbsSaver.prototype.layoutKey = "easy_wbs_layout";
-
-  classes.WbsSaver = WbsSaver;
-  //####################################################################################################################
-  /**
-   * @extends {SendPack}
-   * @param {ModelEntity} node
-   * @param {ModelEntity} [parent]
-   * @param {ModelEntity} [project]
-   * @constructor
-   */
-  function WbsSendPack(node, parent, project) {
-    classes.SendPack.call(this, node, parent, project);
-  }
-
-  classes.extendClass(WbsSendPack, classes.SendPack);
-
-  WbsSendPack.prototype.needInclusionCheck = function () {
-    var entityData = this.nodeData;
-    return entityData._old.parent_issue_id !== entityData.parent_issue_id
-        && entityData.parent_issue_id
-        && entityData._old.parent_issue_id
-  };
-  WbsSendPack.prototype.isSafeCheck = function () {
-    var data = this.nodeData;
-    if (this.node.attr.entityType === "project") {
-      return !data._old.hasOwnProperty("parent_id") || data._old.parent_id === data.parent_id;
-    }
-    if (data._old.hasOwnProperty("project_id") && data._old.project_id !== data.project_id) return false;
-    return !data._old.hasOwnProperty("parent_issue_id") || data._old.parent_issue_id === data.parent_issue_id;
-  };
-  WbsSendPack.prototype.updateNodeData = function () {
-    var idea = this.node;
-    var parent = this.parent;
-    var updateObj;
-    if (idea.attr.entityType === "project") {
-      if (parent) {
-        var parentData = this.ysy.getData(parent);
-        updateObj = {parent_id: parentData.id, name: idea.title};
-      } else {
-        updateObj = {name: idea.title};
-      }
-    } else {
-      if (parent) {
-        parentData = this.ysy.getData(parent);
-        if (parent.attr.entityType === "project") {
-          updateObj = {
-            project_id: parentData.id,
-            parent_issue_id: null,
-            subject: idea.title
-          }
-        } else {
-          if (this.project) {
-            var projectId = this.project && this.ysy.getData(this.project).id;
-          }
-          updateObj = {
-            parent_issue_id: parentData.id,
-            subject: idea.title,
-            project_id: projectId || this.ysy.util.getEntityProjectId(parent)
-          };
-        }
-      } else {
-        updateObj = {
-          subject: idea.title
-        };
-      }
-    }
-    if (updateObj) {
-      this.ysy.setData(idea, updateObj);
-    }
-  };
-  WbsSendPack.prototype.updateByPOSTAdditional = function (source) {
-    var keysToTransform = ["tracker", "status", "priority"];
-    var wantedKeys = ["tracker_id", "status_id", "priority_id", "done_ratio"];
-    for (var i = 0; i < keysToTransform.length; i++) {
-      var key = keysToTransform[i];
-      if (_.isObject(source[key])) {
-        source[key + "_id"] = source[key].id;
-        delete source[key];
-      }
-    }
-    $.extend(this.nodeData, _.pick(source, wantedKeys));
-  };
-  WbsSendPack.prototype.getInclusionData = function () {
-    if (this.node.attr.entityType === "issue") {
-      return {id: this.nodeData.id, _old: {parent_issue_id: 5}, parent_issue_id: null};
-    }
-  };
-
-  classes.WbsSendPack = WbsSendPack;
-  /**
-   * @param {ModelEntity} node
-   * @param {ModelEntity} [parent]
-   * @param {ModelEntity} [project]
-   * @return {WbsSendPack}
-   */
-  WbsSaver.prototype.createSendPack = function (node, parent, project) {
-    var pack = new WbsSendPack(node, parent, project);
-    pack.saver = this;
-    return pack;
-  };
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_styles.js b/plugins/easy_wbs/assets/javascripts/wbs_styles.js
deleted file mode 100644
index 3cd5e1c..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_styles.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  /**
-   * @extends {Styles}
-   * @param {WbsMain} ysy
-   * @constructor
-   */
-  function WbsStyles(ysy) {
-    this.defaultStyle = "tracker";
-    classes.Styles.call(this, ysy);
-    this.createStyles(this.styleSources);
-  }
-
-  classes.extendClass(WbsStyles, classes.Styles);
-
-  WbsStyles.prototype.styleSources = {
-    tracker: {
-      dataArray: "trackers",
-      value: function (data) {
-        if (data.isProject) return "project";
-        return data.tracker_id;
-      }
-    },
-    assignee: {
-      dataArray: "users",
-      value: function (data) {
-        if (data.isProject) return "project";
-        return data.assigned_to_id || 0;
-      },
-      builderType: "assignee",
-      nullAllowed: true,
-      changeObject: classes.Style.oneKeyObjectConstructorBuilder("assigned_to_id")
-    },
-    status: {
-      dataArray: "statuses",
-      value: function (data) {
-        if (data.isProject) return "project";
-        return data.status_id;
-      }
-    },
-    priority: {
-      initAttribute: function (list) {
-        this.colors = {};
-        if (this.ysy.settings.easyRedmine) {
-          for (var i = 0; i < list.length; i++) {
-            var scheme = list[i].scheme;
-            if (!scheme) continue;
-            var schemeSplit = scheme.split("-");
-            if (schemeSplit.length <= 1) continue;
-            var schemeId = parseInt(schemeSplit[schemeSplit.length - 1]);
-            this.colors[list[i].id] = schemeId + 1;
-          }
-        } else {
-          var schemeOffset = 8; // first 8 colors are from easyRedmine
-          scheme = 1 + schemeOffset;
-          var defaultFound = false;
-          for (i = 0; i < list.length; i++) {
-            var isDefault = list[i].is_default;
-            if (isDefault) {
-              this.colors[list[i].id] = 2 + schemeOffset;
-              defaultFound = true;
-              scheme = 3 + schemeOffset;
-              continue;
-            }
-            this.colors[list[i].id] = scheme;
-            if (!defaultFound) {
-              scheme = 2 + schemeOffset;
-            } else {
-              scheme = 4 + schemeOffset;
-            }
-          }
-        }
-        this.data = list;
-      },
-      dataArray: "priorities",
-      value: function (data) {
-        if (data.isProject) return "project";
-        return data.priority_id;
-      }
-    },
-    progress: {
-      init: function () {
-        var colors = {};
-        for (var i = 0; i < 6; i++) {
-          colors[i * 20] = i + 1;
-        }
-        this.colors = colors;
-      },
-      value: function (data) {
-        if (data.isProject) return "project";
-        return Math.round(data.done_ratio / 20.0) * 20.0;
-      },
-      options: function () {
-        return [0, 20, 40, 60, 80, 100];
-      },
-      builderType: "percent",
-      changeObject: classes.Style.oneKeyObjectConstructorBuilder("done_ratio")
-    },
-    milestone: {
-      dataArray: "versions",
-      value: function (data) {
-        if (data.isProject) return;
-        return data.fixed_version_id || 0;
-      },
-      nullAllowed: true,
-      changeObject: classes.Style.oneKeyObjectConstructorBuilder("fixed_version_id")
-    }
-  };
-
-
-  /**
-   *
-   * @param {ModelEntity} node
-   * @return {String}
-   */
-  WbsStyles.prototype.cssClasses = function (node) {
-    var data = this.ysy.getData(node);
-    if (node.attr && node.attr.entityType === "project") return " mindmup-scheme-project";
-    return ""
-        + this.styles["tracker"].addSchemeClassFromData(data)
-        + this.styles["assignee"].addSchemeClassFromData(data)
-        + this.styles["status"].addSchemeClassFromData(data)
-        + this.styles["progress"].addSchemeClassFromData(data)
-        + this.styles["milestone"].addSchemeClassFromData(data)
-        + this.styles["priority"].addSchemeClassFromData(data);
-  };
-
-
-  classes.WbsStyles = WbsStyles;
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/javascripts/wbs_validator.js b/plugins/easy_wbs/assets/javascripts/wbs_validator.js
deleted file mode 100644
index 81579f4..0000000
--- a/plugins/easy_wbs/assets/javascripts/wbs_validator.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Created by hosekp on 11/14/16.
- */
-(function () {
-  var classes = window.easyMindMupClasses;
-
-  function WbsValidator(ysy) {
-    classes.Validator.call(this,ysy);
-  }
-  classes.extendClass(WbsValidator,classes.Validator);
-
-  WbsValidator.prototype.changeParent = function (child, newParent) {
-    if(child.attr.nonEditable) return false;
-    var childData = this.ysy.getData(child);
-    if (!childData.tracker_id) return true;
-    var tracker = _.find(this.ysy.dataStorage.get("trackers"), function (item) {
-      return item.id === childData.tracker_id;
-    });
-    if (!tracker.subtaskable) {
-      if (newParent.attr && newParent.attr.isProject) return true;
-      showFlashMessage("error", this.ysy.settings.labels.errors.not_subtaskable.replace("%{task_name}", child.title));
-      return false;
-    }
-    return true;
-
-  };
-
-
-  classes.WbsValidator = WbsValidator;
-})();
\ No newline at end of file
diff --git a/plugins/easy_wbs/assets/stylesheets/easy_wbs.css b/plugins/easy_wbs/assets/stylesheets/easy_wbs.css
deleted file mode 100644
index f6a0c98..0000000
--- a/plugins/easy_wbs/assets/stylesheets/easy_wbs.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-* = require_self
-*/
-.mindmup-sidebar__attachments-thumbnails > img{
-  display: none;
-}
-.mindmup-sidebar__attachments-thumbnails{
-  margin: 0;
-}
-
diff --git a/plugins/easy_wbs/assets/stylesheets/easy_wbs_old.css b/plugins/easy_wbs/assets/stylesheets/easy_wbs_old.css
deleted file mode 100644
index ff8e544..0000000
--- a/plugins/easy_wbs/assets/stylesheets/easy_wbs_old.css
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
-* = require_self
-*/
-
-#container{
-  position: relative;
-  cursor: all-scroll;
-}
-.wbs_noselect {
-  -moz-user-select: -moz-none;
-  -webkit-user-select: none;
-  -ms-user-select: none;
-  user-select: none
-}
-
-#easy_wbs #wbs_menu {
-  user-select: none;
-  position: relative;
-  z-index: 1;
-  width: 100%;
-  background-color: white;
-}
-
-#easy_wbs .menu-item {
-  display: inline-block;
-}
-
-#wbs_menu .right-menu {
-  float: right;
-}
-
-#easy_wbs.redmine .menu-item {
-  padding: 8px 10px 8px 10px;
-}
-
-#easy_wbs.redmine .button.icon-magnifier {
-  background-image: url('../../../images/magnifier.png');
-}
-
-#easy_wbs.redmine a.button-positive {
-  background-color: #4ebf67;
-  border-radius: 2px;
-  border: 1.3px solid rgb(51, 141, 71);
-  color: #ffffff;
-  padding: 8px 16px;
-}
-
-.wbs_hover_menu {
-  display: block;
-  position: absolute;
-  z-index: 99;
-  background-color: white;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
-}
-
-.wbs_context_menu_item {
-  cursor: pointer;
-}
-
-.mapjs-exclamation {
-  right: -.9em;
-  position: absolute;
-  top: -.9em;
-  background-image: url(data:image/png;base64,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);
-  width: 2em;
-  height: 2em;
-  background-size: 2em;
-  background-repeat: no-repeat no-repeat
-}
-
-.wbs-legend-color-box {
-  width: 20px;
-  height: 20px;
-  display: inline-block;
-  border: 1px solid;
-  vertical-align: middle;
-  margin-right: 5px;
-}
-
-.table-striped > tbody > tr:nth-child(odd) > td {
-  background-color: #f9f9f9;
-}
-
-.table-striped td {
-  padding: 8px;
-  line-height: 1.42857143;
-  vertical-align: top;
-  border-top: 1px solid #ddd;
-}
-
-#easy_wbs.redmine .menu-item.active {
-  background-color: #9DB9D5;
-}
-
-#easy_wbs.redmine .menu-item.active a.button {
-  color: #fff;
-}
-
-.close_button.close-icon {
-  float: right;
-}
-
-.mapjs-link-hit{
-  fill:none;
-}
-.mapjs-draw-container{
-  overflow: visible;
-}
-
-#wbs_menu .legend-toggler {
-  text-align: center;
-}
-
-#wbs_legend {
-  position: absolute;
-  display: block;
-  z-index: 99;
-  background-color: white;
-  overflow-x: auto;
-  min-width: 160px;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
-}
-
-
-#wbs_legend .hotkey_link {
-  margin: 4px 0;
-}
-
-.wbs-reload-modal-errors li {
-  color: #cd0a0a;
-}
-
-.wbs-last-modal-diffs li {
-  color: #bf993f;
-}
-
-.wbs-node-icons{
-  position: absolute;
-  left: 0;
-  top: -18px;
-  white-space: nowrap;
-}
-
-.wbs-node-icon{
-  height: 20px;
-  display: inline-block;
-  margin-right: 3px;
-  vertical-align: middle;
-}
-
-.wbs-node-icon-avatar,.wbs-legend-item-cont .gravatar {
-  height: 24px;
-  width: 24px;
-}
-
-/*.scheme-by-assignee .wbs-node-icon-avatar {*/
-/*display: inline-block;*/
-/*}*/
-
-.wbs-node-icon-avatar .gravatar{
-  vertical-align: sub;
-}
-
-.wbs-node-icon-avatar .gravatar,
-.wbs-legend-item-cont .gravatar {
-  padding: 1px;
-  border: 1px solid #777;
-}
-
-.wbs-node-icon-avatar .gravatar:hover,
-.wbs-legend-item-cont .gravatar:hover {
-  transform: scale(2);
-  position: relative;
-  z-index: 5;
-}
-.wbs-node-icon-progress{
-  width:4px;
-  background-color: #ee6666;
-  border: 1px solid dimgray;
-}
-.wbs-node-icon-progress-bar{
-  background-color: #66bb66;
-  position:relative;
-}
-.wbs-node-icon-milestone-shell{
-  border: 1px solid dimgray;
-  transform: rotate(45deg);
-  vertical-align: middle;
-  display: inline-block;
-  margin: 1px;
-}
-.wbs-node-icon-milestone-diamond{
-  border-width: 4px;
-  border-style: solid;
-}
-
-#context-menu li:not(.folder) > ul {
-  display: none;
-}
-
-.wbs-node-filtered {
-  opacity: 0.2;
-}
-
-.wbs-legend-item-cont {
-  cursor: pointer;
-}
-
-.wbs-print-area {
-
-}
-
-.wbs-print-strip {
-  position: relative;
-  /*border: 1px solid red;*/
-  border: 1px solid #cecece;
-  overflow: hidden;
-  white-space: nowrap;
-  break-inside: avoid;
-  margin: 10px 0;
-  margin-left: -1px;
-  display: inline-block;
-  background-color: #ffffff;
-  border-left: 0;
-}
-.wbs-print-area .mapjs-collapsor{
-  display: none;
-}
-
-@media print{
-  .gravatar{
-    max-width: 100%;
-    height: auto;
-    -webkit-border-radius: 5000px;
-    -moz-border-radius: 5000px;
-    border-radius: 5000px;
-  }
-}
-.mapjs-node span {
-  word-wrap: break-word;
-}
-
-.controller-easy_wbs .easy-content-page{
-  transform: none !important;
-}
-.mapjs-link-hit{
-  pointer-events: all;
-}
-.mapjs-draw-container{
-  pointer-events: none;
-}
-.link-edit-widget{
-  background-color: white;
-  border: 1px solid #dd3e3a;
-  cursor: default;
-}
diff --git a/plugins/easy_wbs/config/locales/ar.yml b/plugins/easy_wbs/config/locales/ar.yml
deleted file mode 100644
index b93c21a..0000000
--- a/plugins/easy_wbs/config/locales/ar.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-ar: 
diff --git a/plugins/easy_wbs/config/locales/cs.yml b/plugins/easy_wbs/config/locales/cs.yml
deleted file mode 100644
index b949c79..0000000
--- a/plugins/easy_wbs/config/locales/cs.yml
+++ /dev/null
@@ -1,170 +0,0 @@
----
-cs:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Ostatní akce
-    button_add_child: Přidat dítě
-    button_add_parent: Přidat rodiče
-    button_add_sibling: Přidat sourozence
-    button_all_icons: Ikony
-    button_collapse: Sbalit
-    button_collapse_all: Sbalit vše
-    button_cut: Vyjmout
-    button_display: Zobrazit nastavení
-    button_edit_data: Upravit údaje
-    button_expand: Rozbalit
-    button_expand_all: Rozbalit vše
-    button_expand_collapse: Rozbalit/sbalit
-    button_legend: Legenda
-    button_one_side: Jedna strana
-    button_paste: Vložit
-    button_project_menu: Easy WBS
-    button_redo: Vpřed
-    button_remove_node: Odstranit uzel
-    button_show_links: Zobrazit vazby
-    button_undo: Zpět
-    edit_issue: Upravit úkol
-    error_create: Nelze vytvořit
-    error_delete: Nelze smazat
-    error_update: Nelze aktualizovat
-    errors:
-      not_subtaskable: Úkol "%{task_name}" nemůže být podúkolem kvůli nastavení jeho
-        trackeru
-    free:
-      button_upgrade: Získat plnou verzi
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Obarvení uzlů podle vlastnosti
-      feature_context_menu: Změna vlastností uzlů
-      feature_filtering: Filtrování uzlů podle vlastnosti
-      header_not_available: K dispozici pouze v plné verzi
-      text_not_available: je k dispozici pouze v plné verzi Easy WBS.
-    hotkeys:
-      info_mac_metakey: Na Mac OS X klávesy Ctrl a Cmd mohou být použity pro zkratky
-        níže - některé prohlížeče mohou určitým klávesovým zkratkám bránit. Například
-        pokud Cmd + Space nefunguje v prohlížeči, zkuste Ctrl + Space.
-      keyboard:
-      - title: Manipulace s uzly
-        hotkeys:
-        - hotkey: Enter
-          info: Přidat sourozence
-        - hotkey: Shift+Enter
-          info: Přidat sourozence nad nebo konec řádku (při přejmenování uzlu)
-        - hotkey: Tab nebo Insert
-          info: Přidat dítě
-        - hotkey: Shift+Tab
-          info: Přidat rodiče
-        - hotkey: Mezerník
-          info: Přejmenovat uzel
-        - hotkey: Shift+mezerník
-          info: Upravit data uzlu
-        - hotkey: Backspace nebo Delete
-          info: Odstranit uzel
-        - hotkey: Ctrl+nahoru/dolů
-          info: Posunout uzel nahoru/dolů
-      - title: Úpravy
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Uložit
-        - hotkey: Ctrl+X nebo C
-          info: Vyjmout
-        - hotkey: Ctrl+C nebo Y
-          info: Kopírovat
-        - hotkey: Ctrl+V nebo P
-          info: Vložit
-        - hotkey: U nebo Ctrl+Z
-          info: Zpět
-        - hotkey: R nebo Ctrl+Y nebo Ctrl+Shift+Z
-          info: Vpřed
-      - title: Výběr
-        hotkeys:
-        - hotkey: Šipky
-          info: Vyberte uzel nahoře/dole/nalevo/napravo od aktuálně vybraného
-        - hotkey: Shift + šipky
-          info: Přidat uzel nahoru/dolů/nalevo/napravo od aktuálně vybraného (užitečné
-            pro vícenásobný výběr sourozenců)
-        - hotkey: "{"
-          info: Vícenásobný výběr aktuálního uzlu a celého jeho podstromu
-        - hotkey: "["
-          info: Vícenásobný výběr pouze podstromu aktuálního uzlu (nikoli uzlu samého)
-        - hotkey: "="
-          info: Vícenásobný výběr všech sourozenců aktuálního uzlu (které mají stejného
-            rodiče)
-        - hotkey: "."
-          info: Zrušit vícenásobný výběr a znovu vybrat pouze aktuální uzel
-        - hotkey: 1 - 9
-          info: Vybrat všechny uzly na určité úrovni (např. 1 vybere všechny uzly
-            první úrovně)
-      - title: Navigace a obrazovka
-        hotkeys:
-        - hotkey: "/ nebo F"
-          info: Rozbalit nebo sbalit uzel (zobrazit nebo skrýt děti)
-        - hotkey: Ctrl + nebo Z
-          info: Přiblížit
-        - hotkey: Ctrl - nebo Shift Z
-          info: Oddálit
-        - hotkey: Esc, 0, Ctrl+0
-          info: Resetovat zobrazení mapy - vybrat kořenový uzel a umístit ho do středu
-            obrazovky
-      mouse:
-      - action: Přesunutí mapy
-        gesture: klikněte a přetáhněte středový uzel, klikněte a přetáhněte pozadí
-          nebo skrolujte na trackpadu/touchpadu.
-      - action: Vybrat uzel
-        gesture: klikněte nebo klepněte na něj
-      - action: Vybrat více uzlů
-        gesture: Shift+klik
-      - action: Změna pořadí uzlů
-        gesture: přetáhněte uzel mezi svými sourozenci, horizontálně blízko k místu
-          změny pořadí. Při změně pořadí se zobrazí bod s černou šipkou.
-      - action: Ručně umístit uzel
-        gesture: stačí přetáhnout uzel, dokud šipka pro změnu pořadí nezmizí. Chcete-li
-          vynutit ruční postavení, i když se šipka pro změnu pořadí ukazuje, podržte
-          klávesu Shift při tažení. Upozorňujeme, že děti z kořenového uzlu je možné
-          přetáhnout v libovolném směru, ale uzly nižší úrovně mohou být umístěny
-          pouze ve směru svého rodiče ke kořeni.
-      - action: Přejmenování uzlu
-        gesture: Dvojitý klik nebo dvojité ťuknutí
-      - action: Zobrazit kontextové menu s operacemi
-        gesture: 'Klikněte pravým tlačítkem na uzel (myší) nebo poklepejte na pozadí,
-          nebo dlouze stiskněte uzel: zobrazit (na dotykových zařízeních)'
-      - action: Změna rodičovského uzlu
-        gesture: přetáhněte uzel na jiný uzel (kruhové upuštění není povoleno, takže
-          nelze upustit uzel na jednom ze svých dětí nebo potomků)
-      - action: Otevřít úkol nebo projekt v samostatném okně
-        gesture: Alt+klik
-      title_key_shortcuts: Klávesové operace
-      title_mouse_shortcuts: Operace s myší a dotykem
-      title_shortcuts: Zkratky
-    info_all_saved: Vše úspěšně uloženo
-    info_any_failed: 'Některé z neúspěšných požadavků:'
-    info_no_permission: Nemáte potřebná oprávnění k této akci
-    label_color_by: Barva dle
-    label_go_to: Jít do
-    label_or: nebo
-    last_state_modal:
-      label_differencies: Rozdíly na serveru
-      message_changed: mají rozdílné atributy (browser => server) ({{changes}})
-      message_missing: nemá nadřazený úkol "{{from}}"
-      message_moved: je podúkolem "{{to}}", ne "{{from}}"
-      message_present: je přítomen jako podúkol "{{to}}"
-      text_reload_appeal: Přejete si znovu načíst stav ze serveru?
-      title: Poslední klientský stav WBS je odlišný od stavu serveru
-    reload_modal:
-      label_errors: Chyby
-      text_reload_appeal: Chcete ignorovat neuložené položky a znovu načíst data ze
-        serveru?
-      title: WBS se nepodařilo správně uložit
-    stored_modal:
-      text_load_appeal: Chcete jej načíst místo aktuálního stavu ze serveru?
-      title: Byl zjištěn neuložený stav
-    text_issue_not_saved: Úkol není uložen. Nejdříve jej uložte.
-    warning_delete_node: Opravdu chcete odstranit uzel {{name}} a všechny jeho potomky?
-    warning_not_saved: není správně uloženo
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Úkoly
-  label_filter_group_easy_wbs:
-    easy_issue_query: Úkoly
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/da.yml b/plugins/easy_wbs/config/locales/da.yml
deleted file mode 100644
index d3dcd59..0000000
--- a/plugins/easy_wbs/config/locales/da.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-da: 
diff --git a/plugins/easy_wbs/config/locales/de.yml b/plugins/easy_wbs/config/locales/de.yml
deleted file mode 100644
index c4b6d8b..0000000
--- a/plugins/easy_wbs/config/locales/de.yml
+++ /dev/null
@@ -1,181 +0,0 @@
----
-de:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Andere Aktionen
-    button_add_child: Untergeordneter Aufgabe hinzufügen
-    button_add_parent: Übergeordnete Aufgabe hinzufügen
-    button_add_sibling: Geschwister Aufgabe hinzufügen
-    button_all_icons: Icons
-    button_collapse: Zusammenklappen
-    button_collapse_all: Alle zusammenklappen
-    button_cut: Ausschneiden
-    button_display: Einstellung anzeigen
-    button_edit_data: Daten bearbeiten
-    button_expand: Aufklappen
-    button_expand_all: Alle aufklappen
-    button_expand_collapse: Aufklappen/Zusammenklappen
-    button_legend: Legende
-    button_one_side: Eine Seite
-    button_paste: Einfügen
-    button_project_menu: Easy WBS
-    button_redo: Wiederherstellen
-    button_remove_node: Knotenpunkt entfernen
-    button_show_links: Links anzeigen
-    button_undo: Rückgängig
-    edit_issue: Die Aufgabe bearbeiten
-    error_create: Konnte nicht erstellt werden
-    error_delete: Konnte nicht gelöscht werden
-    error_update: Konnte nicht aktualisiert werden
-    errors:
-      not_subtaskable: Die Aufgabe "%{task_name}" kann wegen der Einstellungen des
-        Trackers nicht die Teilaufgabe sein
-    free:
-      button_upgrade: Die Vollversion erwerben
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Die Knotenpunkte nach Merkmal färben
-      feature_context_menu: Die Eigenschaften der Knotenpunkte verändern
-      feature_filtering: Knotenpunkte nach Merkmal sortieren
-      header_not_available: Verfügbar nur in der Vollversion
-      text_not_available: verfügbar in der Vollversion der Easy WBS.
-    hotkeys:
-      info_mac_metakey: Auf dem Mac OSX, Ctrl and Cmd tasten können für die unten
-        markierten Abkürzungen statt Ctrl benutzt werden- einige Browser verhindern
-        spezifische Tastenkombinationen. Zum beispiel, falls Cmd+Space funktionier
-        nicht in Ihrem Browser, versuchen Sie Ctrl+Space.
-      keyboard:
-      - title: Knotenpunkt manipulation
-        hotkeys:
-        - hotkey: Enter
-          info: Geschwister Aufgabe einfügen
-        - hotkey: Shift+Enter
-          info: Geschwister Aufgabe einfügen über oder Zeilenumbruch (wenn Knotenpunkt
-            umbenennen)
-        - hotkey: Tab oder Einfg
-          info: Untergeordnete Aufgabe einfügen
-        - hotkey: Shift+Tab
-          info: Übergeordnete Aufgabe einfügen
-        - hotkey: Space
-          info: Knotenpunkt umbenennen
-        - hotkey: Shift+Space
-          info: Daten des Knotenpunkts bearbeiten
-        - hotkey: Backspace oder Entfernen
-          info: Knotenpunkt löschen
-        - hotkey: Ctrl+Up/Down
-          info: Den Knotenpunkt nach oben oder unten verschieben
-      - title: Bearbeitung
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Speichern
-        - hotkey: Ctrl+X oder C
-          info: Ausschneiden
-        - hotkey: Ctrl+C oder Y
-          info: Kopieren
-        - hotkey: Ctrl+V or P
-          info: Einfügen
-        - hotkey: U oder Ctrl+Z
-          info: Rückgängig
-        - hotkey: R oder Ctrl+Y oder Ctrl+Shift+Z
-          info: Wiederholen
-      - title: Auswahl
-        hotkeys:
-        - hotkey: Richtungspfeile
-          info: Knotenpunkt auswählen hoch/runter/rechts/links ausgehend vom aktuell
-            aktiven Knotenpunkt
-        - hotkey: Shift + Richtungspfeile
-          info: Knotenpunkt zur Auswahl hinzufügen hoch/runter/rechts/links (hilfreich
-            für die Mehrfachauswahl der Geschwistern Aufgaben)
-        - hotkey: "{"
-          info: Mehrfachauswahl für den aktuellen Knotenpunkt und kompletten untergeordneten
-            Strukturbaum darunter
-        - hotkey: "["
-          info: Mehrfachauswahl nur für den Strukturbaum unter aktuellem Knotenpunkt
-            (nicht für Knotenpunkt selbst)
-        - hotkey: "="
-          info: Mehrfachauswahl für alle Geschwister Aufgaben vom aktuellen Knotenpunkt
-            (Geschwister mit einer gemeinsamen übergeordneten Aufgabe)
-        - hotkey: "."
-          info: Mehrfachauswahl abbrechen und nur wieder aktuellen Knotenpunkt auswählen
-        - hotkey: 1 - 9
-          info: Alle Knotenpunkte eines bestimmten Levels auswählen (z.B. 1 wählt
-            alle Knotenpunkte auf dem ersten Level aus )
-      - title: Navigation and Bildschirm
-        hotkeys:
-        - hotkey: "/ oder F"
-          info: Knotenpunkt aufklappen oder zusammenklappen (falten oder entfalten
-            untergeordneter Aufgaben)
-        - hotkey: Ctrl + oder Z
-          info: Einzoomen
-        - hotkey: Ctrl - oder Shift Z
-          info: Auszoomen
-        - hotkey: Esc, 0, Ctrl+0
-          info: Die Ansicht der Karte zurücksetzen- Hauptknotenpunkt auswählen und
-            diesen zur Mitte des Bildschirms bringen
-      mouse:
-      - action: Karte verschieben
-        gesture: den Hauptknotenpunkt anklicken und ziehen , Hintergrund anklicken
-          und ziehen oder scrollen mit dem Trackpad/Touchpad.
-      - action: Knotenpunkt auswählen
-        gesture: tippen oder darauf klicken
-      - action: Mehrer Knotenpunkte auswählen
-        gesture: Shift+klick
-      - action: Knotenpunkte neu sortieren
-        gesture: Knotenpunkt zwischen deren Geschwistern ziehen, horizontal nah zu
-          der gewünschten Position. Beim Neusortierung wird der Zeigepunkt zu dem
-          Schwarzen Pfeil.
-      - action: Manuell Knotenpunkt positionieren
-        gesture: Knotenpunkt so lange ziehen bis der Pfeilpunkt für die Neusortierung
-          erscheint. Um manuelle Positionierung zu erzwingen auch mit dem Pfeilpunkt
-          angezeigt wir, Shift halten während ziehen . Bitte bemerken,dass die untergeordnete
-          Aufgaben des Hauptknotenpunkts können in jeder Richtung gezogen werden,
-          aber Knotenpunkte mit niedrigerem Level können nur in die Richtung der Übergeordnete
-          Aufgabe relativ zum Hauptknotenpunkt positioniert werden.
-      - action: Knotenpunkt umbenennen
-        gesture: Doppel-klick oder 2 mal darauf tippen
-      - action: Das Kontextmenü mit den Operationen anzeigen
-        gesture: 'Rechts-klick auf einen Knotenpunkt mit der Maus oder 2 mal auf das
-          Hintergrund tippen, oder lange auf den Knotenpunkt drücken: Anzeigen (Auf
-          Touch-Geräten)'
-      - action: Übergeordnete Aufgabe des Knotenpunkts ändern
-        gesture: Den Knotenpunkt ziehen und auf den anderen Knotenpunkt loslassen
-          (Zyklische Drops (einfügen) sind nicht erlaubt, sprich Sie können nicht
-          einen Knotenpunkt auf die untergeordnete Aufgabe oder auf die Nachfahren
-          ziehen)
-      - action: Aufgabe oder Projekt in separatem Fenster öffnen
-        gesture: Alt+klick
-      title_key_shortcuts: Tastatur-Befehle
-      title_mouse_shortcuts: Maus- und Berührungs- aufgaben
-      title_shortcuts: Abkürzungen
-    info_all_saved: Alles wurde erfolgreich gespeichert
-    info_any_failed: Einige der Anfragen sind fehlgeschlagen
-    info_no_permission: Sie haben nicht die benötigten Berechtigungen um dies durchzuführen
-    label_color_by: Färben nach
-    label_go_to: Springen zu
-    label_or: oder
-    last_state_modal:
-      label_differencies: Unterschiede auf dem Server
-      message_changed: haben unterschiedliche Attribute (Browser => Server) ({{changes}})
-      message_missing: fehlt von der übergeordnete Aufgabe "{{von}}"
-      message_moved: ist untergeordneter von "{{zu}}", nicht"{{von}}"
-      message_present: enthält als untergeordnete Aufgabe von "{{zu}}"
-      text_reload_appeal: Möchten Sie den Status erneut vom Server laden?
-      title: Letzter Client Status von WBS ist unterschiedlich zum Server Status
-    reload_modal:
-      label_errors: Die Fehler
-      text_reload_appeal: Möchten Sie die nicht gespeicherte Elemente ignorieren und
-        die Daten erneut vom Server laden?
-      title: WBS ordnungsgemäßer Speichervorgang ist fehlgeschlagen
-    stored_modal:
-      text_load_appeal: Möchten Sie Laden? Statt des neustens Status vom Server?
-      title: Nicht abgespeicherte Status wurde gefunden
-    warning_delete_node: Möchten Sie wirklich die Node {{name}} und all ihre Nachfahren
-      löschen?
-    warning_not_saved: Es ist nicht ordnungsgemäß abgespeichert
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Die Aufgaben
-  label_filter_group_easy_wbs:
-    easy_issue_query: Die Aufgaben
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/en-AU.yml b/plugins/easy_wbs/config/locales/en-AU.yml
deleted file mode 100644
index 56b80b3..0000000
--- a/plugins/easy_wbs/config/locales/en-AU.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-en-AU: 
diff --git a/plugins/easy_wbs/config/locales/en-GB.yml b/plugins/easy_wbs/config/locales/en-GB.yml
deleted file mode 100644
index a32c228..0000000
--- a/plugins/easy_wbs/config/locales/en-GB.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-en-GB: 
diff --git a/plugins/easy_wbs/config/locales/en-US.yml b/plugins/easy_wbs/config/locales/en-US.yml
deleted file mode 100644
index 54b3be8..0000000
--- a/plugins/easy_wbs/config/locales/en-US.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-en-US: 
diff --git a/plugins/easy_wbs/config/locales/en.yml b/plugins/easy_wbs/config/locales/en.yml
deleted file mode 100644
index 33cc489..0000000
--- a/plugins/easy_wbs/config/locales/en.yml
+++ /dev/null
@@ -1,169 +0,0 @@
----
-en:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Other actions
-    button_add_comment: Add comment
-    button_add_child: Add child
-    button_add_parent: Add parent
-    button_add_sibling: Add sibling
-    button_all_icons: Icons
-    button_collapse: Collapse
-    button_collapse_all: Collapse all
-    button_cut: Cut
-    button_display: Display settings
-    button_edit_data: Edit data
-    button_expand: Expand
-    button_expand_all: Expand all
-    button_expand_collapse: Expand/Collapse
-    button_legend: Legend
-    button_one_side: One side
-    button_paste: Paste
-    button_project_menu: Easy WBS
-    button_redo: Redo
-    button_remove_comment: Remove comment
-    button_remove_node: Remove node
-    button_show_links: Show links
-    button_undo: Undo
-    edit_issue: Edit task
-    name_an_entity_first: Name an entity first
-    error_create: could not be created
-    error_delete: could not be deleted
-    error_update: could not be updated
-    errors:
-      not_subtaskable: Task "%{task_name}" cannot be subtask because of the setting
-        of its tracker
-    free:
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      text_not_available: is available only in Full version of Easy WBS.
-    hotkeys:
-      info_mac_metakey: On Mac OSX, Ctrl and Cmd keys can be used for shortcuts marked
-        Ctrl below - some browsers prevent certain key bindings. So, for example,
-        if Cmd+Space does not work in your browser, try Ctrl+Space.
-      keyboard:
-      - title: Node manipulation
-        hotkeys:
-        - hotkey: Enter
-          info: Add Sibling
-        - hotkey: Shift+Enter
-          info: Add Sibling above or line break (when renaming node)
-        - hotkey: Tab or Insert
-          info: Add child
-        - hotkey: Shift+Tab
-          info: Insert parent
-        - hotkey: Space
-          info: Rename node
-        - hotkey: Shift+Space
-          info: Edit node data
-        - hotkey: Backspace or Delete
-          info: Remove node
-        - hotkey: Ctrl+Up/Down
-          info: Move node up/down
-      - title: Editing
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Save
-        - hotkey: Ctrl+X or C
-          info: Cut
-        - hotkey: Ctrl+C or Y
-          info: Copy
-        - hotkey: Ctrl+V or P
-          info: Paste
-        - hotkey: U or Ctrl+Z
-          info: Undo
-        - hotkey: R or Ctrl+Y or Ctrl+Shift+Z
-          info: Redo
-      - title: Selection
-        hotkeys:
-        - hotkey: Arrow Keys
-          info: Select the node up/down/left/right of the currently selected one
-        - hotkey: Shift + Arrow keys
-          info: Add node up/down/left/right to selection (useful to multi-select siblings)
-        - hotkey: "{"
-          info: Multi-select the current node and the entire subtree under it
-        - hotkey: "["
-          info: Multi-select only the subtree under the current node (not the node
-            itself)
-        - hotkey: "="
-          info: Multi-select all the siblings of the current node (that have the same
-            parent)
-        - hotkey: "."
-          info: Cancel multi-selection and select only the current node again
-        - hotkey: 1 - 9
-          info: Select all nodes of a particular level (eg 1 selects all first level
-            nodes)
-      - title: Navigation and screen
-        hotkeys:
-        - hotkey: "/ or F"
-          info: Expand or collapse node (fold or unfold children)
-        - hotkey: Ctrl + or Z
-          info: Zoom in
-        - hotkey: Ctrl - or Shift Z
-          info: Zoom out
-        - hotkey: Esc, 0, Ctrl+0
-          info: Reset map view - select root node and bring it to the center of the
-            screen
-      mouse:
-      - action: Move the map
-        gesture: Click and drag the center node, click and drag the background or
-          scroll with trackpad/touchpad.
-      - action: Select a node
-        gesture: Tap or click on it
-      - action: Select multiple nodes
-        gesture: Shift+click
-      - action: Reorder nodes
-        gesture: Drag a node between its siblings, horizontally close to the position
-          of reordering. A black arrow point will show when reordering.
-      - action: Manually position a node
-        gesture: Just drag a node until the arrow point for reordering isn't showing.
-          To force manual position even when the reorder arrow point is showing, hold
-          Shift while dragging. Please note that children of the root node can be
-          pulled in any direction, but lower level nodes can only be positioned in
-          the direction of its parent relative to the root.
-      - action: Rename a node
-        gesture: Double-click or double-tap it
-      - action: Show context menu with operations
-        gesture: 'Right click on a node (by mouse) or double-tap the background, or
-          long press a node: show (on touch devices)'
-      - action: Change node parent
-        gesture: Drag and drop a node on another node (circular drops are not allowed,
-          so you can't drop a node on one of it's children or descendants)
-      - action: Open task or project in separate window
-        gesture: Alt+click
-      title_key_shortcuts: Keyboard operations
-      title_mouse_shortcuts: Mouse and touch operations
-      title_shortcuts: Shortcuts
-    label_additional_data: Additional data
-    label_all: All
-    label_basic_data: Basic data
-    label_color_by: Color by
-    label_go_to: Go to
-    label_or: or
-    last_state_modal:
-      label_differencies: Differencies on server
-      message_changed: have different attributes (browser => server) ({{changes}})
-      message_missing: is missing from parent "{{from}}"
-      message_moved: is child of "{{to}}", not "{{from}}"
-      message_present: is present as child of "{{to}}"
-      text_reload_appeal: Do you want reload state from server?
-      title: Last client state of WBS is different from server state
-    name_an_entity_first: Name an entity first
-    reload_modal:
-      label_errors: Errors
-      text_reload_appeal: Do you want to ignore unsaved items and reload data from
-        server?
-      title: WBS failed to save properly
-    stored_modal:
-      text_load_appeal: Do you want to loaded it? Instead of the fresh state from
-        the server?
-      title: Unsaved state have been found
-    text_issue_not_saved: Issue is not saved. Save it first.
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Tasks
-  label_filter_group_easy_wbs:
-    easy_issue_query: Tasks
-  project_default_page:
-    easy_wbs: Easy WBS
-  project_module_easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/es.yml b/plugins/easy_wbs/config/locales/es.yml
deleted file mode 100644
index 5bacf9a..0000000
--- a/plugins/easy_wbs/config/locales/es.yml
+++ /dev/null
@@ -1,177 +0,0 @@
----
-es:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Otras acciones
-    button_add_child: Añadir hijo
-    button_add_parent: Añadir matriz
-    button_add_sibling: Añadir hermano
-    button_all_icons: Iconos
-    button_collapse: Plegar
-    button_collapse_all: Plegar todo
-    button_cut: Cortar
-    button_display: Ajustes de visualización
-    button_edit_data: Editar datos
-    button_expand: Expandir
-    button_expand_all: Expandir todo
-    button_expand_collapse: Expandir/Plegar
-    button_legend: Leyenda
-    button_one_side: Un lado
-    button_paste: Pegar
-    button_project_menu: Easy WBS
-    button_redo: Volver a hacer
-    button_remove_node: Eliminar nodo
-    button_show_links: Mostrar enlaces
-    button_undo: Deshacer
-    edit_issue: Editar tarea
-    error_create: no se ha podido crear
-    error_delete: no se ha podido borrar
-    error_update: no se ha podido actualizar
-    errors:
-      not_subtaskable: La tarea "%{task_name}" no puede ser una subtarea debido a
-        los ajustes de su rastreador
-    free:
-      button_upgrade: Consigue la versión Completa
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Colorear nodos por propiedad
-      feature_context_menu: Cambiar propiedades del nodo
-      feature_filtering: Filtrar nodos por propiedad
-      header_not_available: Disponible sólo en la versión Completa
-      text_not_available: está disponible en la versión Completa de Easy WBS.
-    hotkeys:
-      info_mac_metakey: En Mac OSX, las teclas Ctrl y Cmd pueden emplearse para atajos
-        marcados en Ctrl bajo - algunos navegadores no permiten ciertos atajos de
-        teclado. Así, por ejemplo, si Cmd+Espacio no funciona en tu navegador, prueba
-        con Ctrl+Espacio
-      keyboard:
-      - title: Manipulación del nódulo
-        hotkeys:
-        - hotkey: Enter
-          info: Añadir hermano
-        - hotkey: Shift+Enter
-          info: Añadir hermano encima o salto de línea (al cambiar nombre de nódulo)
-        - hotkey: Tabulador o Insertar
-          info: Añadir hijo
-        - hotkey: Shift+Tab
-          info: Insertar matriz
-        - hotkey: Espacio
-          info: Cambiar nombre a nódulo
-        - hotkey: Shift+Espacio
-          info: Editar datos de nódulo
-        - hotkey: Retroceso o Borrar
-          info: Eliminar nódulo
-        - hotkey: Ctrl+Arriba/Abajo
-          info: Mover nódulo arriba/abajo
-      - title: Editar
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Guardar
-        - hotkey: Ctrl+X o C
-          info: Cortar
-        - hotkey: Ctrl+C o Y
-          info: Copiar
-        - hotkey: Ctrl+V o P
-          info: Pegar
-        - hotkey: U o Ctrl+Z
-          info: Deshacer
-        - hotkey: R o Ctrl+Y o Ctrl+Shift+Z
-          info: Rehacer
-      - title: Selección
-        hotkeys:
-        - hotkey: Cursores
-          info: Selecciona el nódulo arriba/abajo/izquierda/derecha del seleccionado
-            actual
-        - hotkey: Shift + Cursores
-          info: Añade nódulo arriba/abajo/izquierda/derecha de selección (útil para
-            seleccionar varios hermanos)
-        - hotkey: "{"
-          info: Selección múltiple del nódulo actual y el subárbol bajo él
-        - hotkey: "["
-          info: Selección múltiple sólo del subárbol bajo el nódulo actual (pero no
-            el nódulo)
-        - hotkey: "="
-          info: Selección múltiple de todos los hermanos del módulo actual (que tienen
-            la misma matriz)
-        - hotkey: "."
-          info: Cancelar selección múltiple y seleccionar sólo el nódulo actual de
-            nuevo
-        - hotkey: 1 - 9
-          info: 'Selecciona todos los nódulos de un nivel particular (ej: 1 selecciona
-            todos los nódulos de primer nivel)'
-      - title: Navegación y pantalla
-        hotkeys:
-        - hotkey: "/ o F"
-          info: Expandir u ocultar nódulo (desplegar o contraer hijos)
-        - hotkey: Ctrl + o Z
-          info: Acercar
-        - hotkey: Ctrl - o Shift Z
-          info: Alejar
-        - hotkey: Esc, 0, Ctrl+0
-          info: Restablecer vista de mapa - seleccionar nódulo raíz y llevarlo al
-            centro de la pantalla
-      mouse:
-      - action: Mover el mapa
-        gesture: pulsar y arrastrar el nódulo central, pulsar y arrastrar el fondo
-          o desplazar con trackpad/touchpad.
-      - action: Seleccionar un nódulo
-        gesture: pulsar o hacer clic
-      - action: Seleccionar múltiples nódulos
-        gesture: Shift+clic
-      - action: Reordenar nódulos
-        gesture: arrastrar un nódulo entre sus hermanos, horizontalmente cerca de
-          la posición de reordenamiento. Se mostrará una flecha negra cuando se esté
-          reordenando.
-      - action: Posicionar un nódulo manualmente
-        gesture: arrastra un nódulo hasta que la flecha para reordenar desaparezca.
-          Para forzar la posición manual incluso cuando la flecha de reordenamiento
-          se muestre, pulsa Shift mientras arrastres. Ten en cuenta que los hijos
-          del nódulo raíz pueden moverse en cualquier dirección, mientras que los
-          nódulos de niveles inferiores sólo se podrán colocar en la dirección del
-          matriz relativo a la raíz.
-      - action: Renombrar un nódulo
-        gesture: Hacer doble clic o pulsar dos veces
-      - action: Mostrar menú de contexto con operaciones
-        gesture: 'Hacer clic sobre el botón derecho en el nódulo (con ratón) o pulsar
-          dos veces sobre el fondo, o pulsar un momento sobre el nódulo: mostrar (en
-          dispositivos táctiles)'
-      - action: Cambiar matriz del nódulo
-        gesture: arrastrar y soltar un nódulo en otro nódulo (soltar no está permitirdo,
-          de modo que no puede soltar un nódulo en uno de sus hijos o descendientes)
-      - action: Abrir asunto o proyecto en una ventana separada
-        gesture: Alt+clic
-      title_key_shortcuts: Operaciones de teclado
-      title_mouse_shortcuts: Operaciones por ratón y táctiles
-      title_shortcuts: Atajos
-    info_all_saved: Todo se ha guardado correctamente
-    info_any_failed: 'Algunas de las solicitudes no se han podido realizar:'
-    info_no_permission: No tienes el permiso necesario para realizar esa acción
-    label_color_by: Color por
-    label_go_to: Ir a
-    label_or: o
-    last_state_modal:
-      label_differencies: Diferencias en el servidor
-      message_changed: tiene diferentes atributos (navegador => servidor) ({{changes}})
-      message_missing: ha desaparecido de su matriz "{{from}}"
-      message_moved: es hijo de "{{to}}", no de "{{from}}"
-      message_present: aparece como hijo de "{{to}}"
-      text_reload_appeal: "¿Quieres recargar el estado desde el servidor?"
-      title: El último estado del cliente de WBS es diferente al estado del servidor
-    reload_modal:
-      label_errors: Errores
-      text_reload_appeal: "¿Quieres ignorar los objetos sin guardar y recargar los
-        datos desde el servidor?"
-      title: No se ha podido guardar el WBS correctamente
-    stored_modal:
-      text_load_appeal: "¿Deseas cargarlo en lugar del último estado desde el servidor?"
-      title: Se ha encontrado el estado no guardado
-    warning_delete_node: "¿Seguro que quieres eliminar el nodo {{name}} y todos sus
-      descendientes?"
-    warning_not_saved: no se ha guardado correctamente
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Tareas
-  label_filter_group_easy_wbs:
-    easy_issue_query: Tareas
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/fi.yml b/plugins/easy_wbs/config/locales/fi.yml
deleted file mode 100644
index e173d18..0000000
--- a/plugins/easy_wbs/config/locales/fi.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-fi: 
diff --git a/plugins/easy_wbs/config/locales/fr.yml b/plugins/easy_wbs/config/locales/fr.yml
deleted file mode 100644
index 9356e01..0000000
--- a/plugins/easy_wbs/config/locales/fr.yml
+++ /dev/null
@@ -1,182 +0,0 @@
----
-fr:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Autres actions
-    button_add_child: Ajouter enfant
-    button_add_parent: Ajouter parent
-    button_add_sibling: Ajouter frère/soeur
-    button_all_icons: Icônes
-    button_collapse: Réduire
-    button_collapse_all: Réduire tout
-    button_cut: Couper
-    button_display: Paramètres d'affichage
-    button_edit_data: Éditer données
-    button_expand: Développer
-    button_expand_all: Développer tout
-    button_expand_collapse: Développer/réduire
-    button_legend: Légende
-    button_one_side: Un côté
-    button_paste: Coller
-    button_project_menu: Easy WBS
-    button_redo: Refaire
-    button_remove_node: Retirer noeud
-    button_show_links: Afficher les liens
-    button_undo: Défaire
-    edit_issue: Éditer tâche
-    error_create: n'a pas pu être créé
-    error_delete: n'a pas pu être supprimé
-    error_update: n'a pas pu être  mis à jour
-    errors:
-      not_subtaskable: La tâche "%{task_name}" ne peut pas être une sous-tâche en
-        raison du réglage de son tracker
-    free:
-      button_upgrade: Obtenir la Version complète
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Nœuds colorants par propriété
-      feature_context_menu: Modification des propriétés du noeud
-      feature_filtering: Nœuds filtrants par propriété
-      header_not_available: Uniquement disponible en Version complète
-      text_not_available: est disponible en version complète d'Easy WBS.
-    hotkeys:
-      info_mac_metakey: Sur Mac OSX , les touches Ctrl et Cmd peuvent être utilisées
-        pour les raccourcis Ctrl marqués ci-dessous - certains navigateurs empêchent
-        certains raccourcis clavier . Ainsi, par exemple, si Cmd + Espace ne fonctionne
-        pas dans votre navigateur , essayez Ctrl + Espace .
-      keyboard:
-      - title: Manipulation du nœud
-        hotkeys:
-        - hotkey: Entrer
-          info: Ajouter frère
-        - hotkey: Shift+Entrée
-          info: Ajouter parent au-dessus ou saut de ligne (lors du renommage du nœud)
-        - hotkey: Tab ou Insérer
-          info: Ajouter enfant
-        - hotkey: Shift+Tab
-          info: Insérer parent
-        - hotkey: Espace
-          info: Renommage du nœud
-        - hotkey: Shift+Espace
-          info: Editer les données nœud
-        - hotkey: Retour arrière or Effacer
-          info: Enlever nœud
-        - hotkey: Ctrl+Haut/Bas
-          info: Déplacer nœud vers le haut/bas
-      - title: 'Édition '
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Sauvegarder
-        - hotkey: Ctrl+X or C
-          info: Couper
-        - hotkey: Ctrl+C or Y
-          info: Copier
-        - hotkey: Ctrl+V or P
-          info: Coller
-        - hotkey: U ou Ctrl+Z
-          info: Défaire
-        - hotkey: R ou Ctrl+Y ou Ctrl+Shift+Z
-          info: Refaire
-      - title: Sélection
-        hotkeys:
-        - hotkey: touche fléchée
-          info: Sélectionnez le noeud haut/bas/gauche/droite de celui sélectionné
-            actuellement
-        - hotkey: Shift + touche fléchée
-          info: Ajouter le nœud haut/bas/gauche/droite à la sélection (utile pour
-            les frères de multi-sélection )
-        - hotkey: "{"
-          info: Multi-sélectionner le nœud actuel et l'arbre entier
-        - hotkey: "["
-          info: Multi-sélectionner uniquement le sous-arbre sous le nœud actuel (pas
-            le nœud lui-même)
-        - hotkey: "="
-          info: Multi-sélectionnez tous les frères du nœud actuel (qui ont le même
-            parent)
-        - hotkey: "."
-          info: Annuler la multi-sélection et sélectionnez uniquement le nœud actuel
-            à nouveau
-        - hotkey: 1 - 9
-          info: Sélectionnez tous les nœuds d'un niveau particulier (par ex. 1 sélectionne
-            tous les nœuds de premier niveau )
-      - title: Navigation et écran
-        hotkeys:
-        - hotkey: "/ ou F"
-          info: Développer ou réduire le nœud (plier ou déplier enfants)
-        - hotkey: Ctrl + ou Z
-          info: Zoom avant
-        - hotkey: Ctrl - ou  Shift Z
-          info: Zoom arrière
-        - hotkey: Esc, 0, Ctrl+0
-          info: Réinitialiser vue de la carte- sélectionnez le nœud racine et l'amener
-            au centre de l'écran
-      mouse:
-      - action: Déplacer la carte
-        gesture: cliquez et faites glisser le nœud central, cliquez et faites glisser
-          l'arrière-plan ou faites défiler avec le trackpad / touchpad .
-      - action: Sélectionnez un nœud
-        gesture: tapez ou cliquez dessus
-      - action: Sélectionnez des nœuds multiples
-        gesture: Shift+clic
-      - action: Réorganiser les nœuds
-        gesture: faire glisser un nœud entre ses frères et sœurs , à l'horizontale
-          près de la position de réordonnancement . Un point de flèche noire montrera
-          quand à lieu le réordonnancement.
-      - action: positionner manuellement un nœud
-        gesture: il suffit de glisser un nœud jusqu'à ce que le point flèche de réordonnancement
-          ne s'affiche plus . Pour forcer la position manuelle, même lorsque le point
-          flèche de réapprovisionnement est affiché, maintenez la touche Maj tout
-          en faisant glisser. S'il vous plaît noter que les enfants du nœud racine
-          peuvent être tirés dans une direction quelconque, mais des nœuds de niveau
-          inférieur ne peuvent pas être placés dans la direction de leur parent par
-          rapport à la racine.
-      - action: Renommer un nœud
-        gesture: Double-cliquez ou double-taper dessus
-      - action: Afficher le menu contextuel avec des opérations
-        gesture: 'Faites un clic droit sur ​​un nœud ( par la souris ) ou double -taper
-          l''arrière-plan , ou appuyez longuement sur un nœud: afficher (sur les appareils
-          tactiles)'
-      - action: Modifier le parent nœud
-        gesture: glisser-déposer un nœud sur un autre nœud ( les gouttes circulaires
-          ne sont pas autorisés , de sorte que vous ne pouvez pas supprimer un nœud
-          sur l'un de ses enfants ou descendants)
-      - action: question ouverte ou projet dans une fenêtre séparée
-        gesture: Alt+clic
-      title_key_shortcuts: Opérations de clavier
-      title_mouse_shortcuts: Souris et opérations tactiles
-      title_shortcuts: Raccourcis
-    info_all_saved: Tout a été sauvegardé avec succès
-    info_any_failed: 'Certaines des demandes  ont échoué:'
-    info_no_permission: Vous ne disposez pas des permissions nécessaires pour agir
-      ainsi
-    label_color_by: Couleur par
-    label_go_to: Aller à
-    label_or: ou
-    last_state_modal:
-      label_differencies: Différences sur le serveur
-      message_changed: dispose de différentes caractéristiques (navigateur =>serveur)
-        ({{changements}})
-      message_missing: est manquant du parent "{{de}}"
-      message_moved: est enfant de "{{à}}", pas"{{de}}"
-      message_present: est présent en tant qu'enfant de "{{à}}"
-      text_reload_appeal: Souhaitez-vous  recharger l'état à partir du serveur?
-      title: Le dernier état du client de WBS est différent  de l'état du serveur
-    reload_modal:
-      label_errors: Erreurs
-      text_reload_appeal: Souhaitez-vous ignorer les éléments non enregistrés et recharger
-        les données à partir du serveur?
-      title: WBS n'a pas pu être sauvegardé correctement
-    stored_modal:
-      text_load_appeal: Voulez-vous le charger? Au lieu du nouvel état à partir du
-        serveur?
-      title: un état non sauvegardé a été trouvé
-    warning_delete_node: Voulez-vous vraiment supprimer le nœud {{nom}} et tous ses
-      descendants?
-    warning_not_saved: n'est pas sauvegardé correctement
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Tâches
-  label_filter_group_easy_wbs:
-    easy_issue_query: Tâches
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/he.yml b/plugins/easy_wbs/config/locales/he.yml
deleted file mode 100644
index de35edf..0000000
--- a/plugins/easy_wbs/config/locales/he.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-he: 
diff --git a/plugins/easy_wbs/config/locales/hr.yml b/plugins/easy_wbs/config/locales/hr.yml
deleted file mode 100644
index 662a199..0000000
--- a/plugins/easy_wbs/config/locales/hr.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-hr: 
diff --git a/plugins/easy_wbs/config/locales/hu.yml b/plugins/easy_wbs/config/locales/hu.yml
deleted file mode 100644
index c5a661d..0000000
--- a/plugins/easy_wbs/config/locales/hu.yml
+++ /dev/null
@@ -1,171 +0,0 @@
----
-hu:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Más tevékenységek
-    button_add_child: Alfeladat hozzáadása
-    button_add_parent: Szülő feladat hozzáadása
-    button_add_sibling: Testvérfeladat hozzáadása
-    button_all_icons: Ikonok
-    button_collapse: Összezár
-    button_collapse_all: Összes összezárása
-    button_cut: Kivágás
-    button_display: Beállítások megjelenítése
-    button_edit_data: Adat szerkesztése
-    button_expand: Kinyit
-    button_expand_all: Összes kinyitása
-    button_expand_collapse: Kinyit / Összezár
-    button_legend: Magyarázat
-    button_one_side: Egy oldal
-    button_paste: Beillesztés
-    button_project_menu: Easy WBS
-    button_redo: Visszaállít
-    button_remove_node: Ág eltávolítása
-    button_show_links: Linkek megjelenítése
-    button_undo: Visszavonás
-    edit_issue: Feladat szerkesztése
-    error_create: nem lehet létrehozni
-    error_delete: nem lehet törölni
-    error_update: Frissítés nem sikerült
-    errors:
-      not_subtaskable: Feladat "%{task_name}" nem lehet alfeladat a beállítás típusa
-        miatt
-    free:
-      button_upgrade: Szerezze be a teljes verziót
-      button_upgrade_href: https://www.easyproject.hu/szoftver
-      feature_coloring: Ágak színezése tulajdonság alapján
-      feature_context_menu: Ág tulajdonságának megváltoztatása
-      feature_filtering: Ágak szűrése tulajdonság alapján
-      header_not_available: Csak teljes verzióban érhető el
-      text_not_available: az Easy WBS teljes verziója elérhető
-    hotkeys:
-      info_mac_metakey: Mac OSX esetén a Ctrl és Cmd billentyűkombináció használható
-        olyan rövidítésekre melyeket Ctrl-er jelölünk- néhány böngésző nem engedélyezi
-        ezeket a kombinációkat. Ezért például, ha a Cmd + Space nem működik a böngészőjében,
-        akkor próbálja meg a Ctrl+ Space kombinációt
-      keyboard:
-      - title: ág manipulálás
-        hotkeys:
-        - hotkey: Enter
-          info: Testvér hozzáadása
-        - hotkey: Shift+Enter
-          info: Testvér hozzáadása fölé  vagy sortöréssel (ág átnevezésekor)
-        - hotkey: Tab vagy Beillesztés
-          info: alfeladat hozzáadása
-        - hotkey: Shift+Tab
-          info: Szülő beillesztése
-        - hotkey: Space
-          info: Ág átnevezése
-        - hotkey: Shift+Space
-          info: Ág adat szerkesztése
-        - hotkey: Backspace vagy Törlés
-          info: Ág eltávolítása
-        - hotkey: Ctrl+Fel/Le
-          info: Ág elmozdítása fel/le
-      - title: Szerkesztés
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Mentés
-        - hotkey: Ctrl+X vagy C
-          info: Kivágás
-        - hotkey: Ctrl+C vagy Y
-          info: Másolás
-        - hotkey: Ctrl+V vagy P
-          info: Beillesztés
-        - hotkey: U vagy Ctrl+Z
-          info: Visszaállít
-        - hotkey: R vagy Ctrl+Y vagy Ctrl+Shift+Z
-          info: Redo
-      - title: Kiválasztás
-        hotkeys:
-        - hotkey: Nyilak
-          info: A jelenleg kiválaszott ágból válassza ki a fel/le/bal/jobb
-        - hotkey: Shift + Nyilak
-          info: Ág hozzáadása fel/le/bel/jobb ( hasznos a testvér többszörös kiválasztása)
-        - hotkey: "{"
-          info: Többszörös kiválasztása a jelenlegi ágnak és a maradé alfának alatta
-        - hotkey: "["
-          info: Többszörös kiválasztása az alfának amelyik a jelenlegi ág alatt van
-            (nem az ágat magát)
-        - hotkey: "="
-          info: A jelenlegi ág testvéreinek többszörös kiválasztása ( amelyek ugyanazza
-            a szülővel rendelkeznek)
-        - hotkey: "."
-          info: Többszörös kiválasztás törélese és válassza ki a jelenlegi ágat ismét
-        - hotkey: 1 - 9
-          info: Egy kiválaszott szinten az összes ág kiválasztása (pl. 1 az összes
-            eslő szintes ágak kiválasztása)
-      - title: Navigáció és  képernyő
-        hotkeys:
-        - hotkey: "/ vagy F"
-          info: Ág kinyitása vagy összezárása (kinyitja vagy bezárja az alfeladatot
-            )
-        - hotkey: Ctrl + vagy Z
-          info: Nagyítás
-        - hotkey: Ctrl - vagy Shift Z
-          info: Kizoomolás
-        - hotkey: Esc, 0, Ctrl+0
-          info: Térkép nézet újraindítása - Gyökérág kiválasztása és a képernyő közepére
-            hozása
-      mouse:
-      - action: Térkép áthelyezése
-        gesture: kattintás és  behúzás a központi ágba, kattintás és behúzás a háttér
-          vagy görgetés a touchpaddel.
-      - action: Ág kiválasztása
-        gesture: érintse meg vagy kattintson rá
-      - action: több ág kiválasztása
-        gesture: Shift+kattintás
-      - action: ágak újrhívása
-        gesture: behúzniaz ágat a két testvér közé, vízszintesen zárja be a feladatot
-          a pozíció újrahívásához.  Egy fekete nyíl fog megjelenni az újrahívásnál.
-      - action: Manuálisan állítsa be az ágat
-        gesture: 'csak húzza be az ágta, a nyílig. A kézi pozícionáls kényszerítése
-          amikor az újrahívott nyíl megjelenik, tartsa a  Shift-et ameddig húzza.
-          Figyeljen , hogy az alág bármilyen irányban húzható, de az alacsonyabb szintű
-          ágak a szülő irányába pozícionálhatók. '
-      - action: Ág átnevezése
-        gesture: Dupla kattintás vagy dupla koppintás
-      - action: Kapcsolatban álló menü megjelenítése műveletekkel
-        gesture: 'Jobb klikk az ágra (egérrel) vagy duppla koppintás a háttéren,  vagy
-          hosszan nyomva tartás az ágon: mutatás (érintős eszközön)'
-      - action: Szülő ág megváltoztatása
-        gesture: az ág egy másik ágra húzása (körkörös húzás nem megengedett, tehát
-          egy ág nem húzható rá a gyerek ágra, vagy az egyik alágára)
-      - action: Nyitott feladatok vagy projekt különböző ablakban
-        gesture: Alt+click
-      title_key_shortcuts: Billentyű műveletek
-      title_mouse_shortcuts: Egér műveltek
-      title_shortcuts: Lerövidítések
-    info_all_saved: Sikeresen mentve
-    info_any_failed: Kérések egy része sikertelen
-    info_no_permission: Nem rendelkezik a szükséges jogosultsággal a művelet végrehajtásához
-    label_color_by: Színezve
-    label_go_to: Megy!
-    label_or: vagy
-    last_state_modal:
-      label_differencies: Különbségek a szerveren
-      message_changed: különböző attribútumokkal rendelkezik (böngésző => server ({{változások}})
-      message_missing: hiányzik a szülő feladatból "{{from}}"
-      message_moved: alfeladata "{{to}}", nem "{{from}}"
-      message_present: alfeladatként kelenik meg a "{{to}}"-nak
-      text_reload_appeal: Szeretné újratölteni az állapotot a szerverről?
-      title: A WBS utolsó kliens állapota különbözik a szerver állapottól
-    reload_modal:
-      label_errors: Hibák
-      text_reload_appeal: Szeretné figyelmen kívül hagyni a nem mentett elemeket és
-        újratölteni a serverről?
-      title: Nem sikerült megfelelően menteni a WBS-t
-    stored_modal:
-      text_load_appeal: Szeretné betölteni? A friss állapot helyett a szerverről?
-      title: Nem mentett állapotot talált
-    warning_delete_node: Biztosan törölni akarja a {{name}}  csomópontot és minden
-      származékát?
-    warning_not_saved: nem megfelelő mentés
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Feladatok
-  label_filter_group_easy_wbs:
-    easy_issue_query: Feladatok
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/it.yml b/plugins/easy_wbs/config/locales/it.yml
deleted file mode 100644
index 6454ea2..0000000
--- a/plugins/easy_wbs/config/locales/it.yml
+++ /dev/null
@@ -1,175 +0,0 @@
----
-it:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Altre azioni
-    button_add_child: Aggiungi attività figlio
-    button_add_parent: Aggiungi attività padre
-    button_add_sibling: Aggiungi attività parallela
-    button_all_icons: Icone
-    button_collapse: Contrai
-    button_collapse_all: Contrai tutto
-    button_cut: Taglia
-    button_display: Mostra impostazioni
-    button_edit_data: Modifica dati
-    button_expand: Espandi
-    button_expand_all: Espandi tutto
-    button_expand_collapse: Espandi/Contrai
-    button_legend: Legenda
-    button_one_side: Da una parte
-    button_paste: Incolla
-    button_project_menu: Easy WBS
-    button_redo: Ripristina
-    button_remove_node: Rimuovi nodo
-    button_show_links: Mostra collegamenti
-    button_undo: Annulla
-    edit_issue: Modifica task
-    error_create: creazione non riuscita
-    error_delete: cancellazione non riuscita
-    error_update: aggiornamento non riuscito
-    errors:
-      not_subtaskable: Il task "%{task_name}" non può avere sottotask a causa delle
-        impostazioni del suo tracker
-    free:
-      button_upgrade: Ottieni la Versione Completa
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Colorazione dei nodi in base alla caratteristica
-      feature_context_menu: Cambiamento delle caratteristiche dei nodi
-      feature_filtering: Filtro dei nodi in base alla caratteristica
-      header_not_available: Disponibile solo nella Versione Completa
-      text_not_available: è disponibile nella Versione Completa di Easy WBS.
-    hotkeys:
-      info_mac_metakey: In caso di sistemi Mac, i tasti Ctrl e Cmd possono essere
-        utilizzati per le scorciatoie in cui si impiega Ctrl. Alcuni browser non permettono
-        alcune combinazioni di tasti. Quindi, se per esempio nel tuo browser Cmd+Spazio
-        non funziona, prova Ctrl+Spazio.
-      keyboard:
-      - title: Node manipulation
-        hotkeys:
-        - hotkey: Enter
-          info: Add Sibling
-        - hotkey: Shift+Enter
-          info: Add Sibling above or line break (when renaming node)
-        - hotkey: Tab or Insert
-          info: Add child
-        - hotkey: Shift+Tab
-          info: Insert parent
-        - hotkey: Space
-          info: Rename node
-        - hotkey: Shift+Space
-          info: Edit node data
-        - hotkey: Backspace or Delete
-          info: Remove node
-        - hotkey: Ctrl+Up/Down
-          info: Move node up/down
-      - title: Editing
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Save
-        - hotkey: Ctrl+X or C
-          info: Cut
-        - hotkey: Ctrl+C or Y
-          info: Copy
-        - hotkey: Ctrl+V or P
-          info: Paste
-        - hotkey: U or Ctrl+Z
-          info: Undo
-        - hotkey: R or Ctrl+Y or Ctrl+Shift+Z
-          info: Redo
-      - title: Selection
-        hotkeys:
-        - hotkey: Arrow Keys
-          info: Select the node up/down/left/right of the currently selected one
-        - hotkey: Shift + Arrow keys
-          info: Add node up/down/left/right to selection (useful to multi-select siblings)
-        - hotkey: "{"
-          info: Multi-select the current node and the entire subtree under it
-        - hotkey: "["
-          info: Multi-select only the subtree under the current node (not the node
-            itself)
-        - hotkey: "="
-          info: Multi-select all the siblings of the current node (that have the same
-            parent)
-        - hotkey: "."
-          info: Cancel multi-selection and select only the current node again
-        - hotkey: 1 - 9
-          info: Select all nodes of a particular level (eg 1 selects all first level
-            nodes)
-      - title: Navigation and screen
-        hotkeys:
-        - hotkey: "/ or F"
-          info: Expand or collapse node (fold or unfold children)
-        - hotkey: Ctrl + or Z
-          info: Zoom in
-        - hotkey: Ctrl - or Shift Z
-          info: Zoom out
-        - hotkey: Esc, 0, Ctrl+0
-          info: Reset map view - select root node and bring it to the center of the
-            screen
-      mouse:
-      - action: Muovi la mappa
-        gesture: clicca e trascina il nodo centrale, clicca e trascina lo sfondo o
-          scorri con la rotella/touchpad.
-      - action: Seleziona un nodo
-        gesture: tocca o cliccaci sopra
-      - action: Seleziona nodi multipli
-        gesture: Shift+click
-      - action: Riordina nodi
-        gesture: trascina un nodo tra i suoi fratelli, orizzontalmente vicino alla
-          posizione di riordino. Un puntatore nero a forma di freccia mostrerà dove
-          riordinare.
-      - action: Posizionare manualmente un nodo
-        gesture: semplicemente trascina un nodo finché la freccia che mostra dove
-          riordinare non appare. Per forzare il posizionamento manuale anche quando
-          viene mostrata la freccia nera, tieni premuto Shift mentre trascini. Considera
-          che i figli del nodo radice possono essere spostati in ogni direzione, ma
-          i nodi di livello inferiore possono essere posizionati solo in direzione
-          del proprio padre relativo alla radice.
-      - action: Rinonima un nodo
-        gesture: Fai doppio clic/tocco
-      - action: Mostra il menu contestuale con le operazioni
-        gesture: 'Clicca col destro su un nodo (col mouse) o fai un doppio tocco sullo
-          sfondo, oppure tieni premuto a lungo sul nodo: mostra (su dispositivi touch)'
-      - action: Cambia nodo padre
-        gesture: trascina e rilascia un nodo su un altro nodo (i rilasci circolari
-          non sono permessi, quindi non puoi rilasciare un nodo su uno dei suoi figli
-          o discendenti)
-      - action: Apri questione o progetto in una finestra separata
-        gesture: Alt+click
-      title_key_shortcuts: Operazioni tramite tastiera
-      title_mouse_shortcuts: Operazioni tramite tastiera e tocco
-      title_shortcuts: Scorciatoie
-    info_all_saved: Tutto è stato salvato con successo
-    info_any_failed: 'Alcune richieste non sono andate a buon fine:'
-    info_no_permission: Non hai i permessi necessari per compiere questa operazione
-    label_color_by: Colore per
-    label_go_to: Vai a
-    label_or: oppure
-    last_state_modal:
-      label_differencies: Differenze sul server
-      message_changed: ha degli attributi differenti (browser => server) ({{changes}})
-      message_missing: manca dal padre "{{from}}"
-      message_moved: è figlio di "{{to}}", non di "{{from}}"
-      message_present: è presente come figlio di "{{to}}"
-      text_reload_appeal: Desideri ricaricare lo stato dal server?
-      title: L'ultimo stato WBS del client è diverso da quello del server
-    reload_modal:
-      label_errors: Errori
-      text_reload_appeal: Vuoi ignorare le voci non salvate e ricaricare i dati dal
-        server?
-      title: WBS non salvato correttamente
-    stored_modal:
-      text_load_appeal: Desideri caricarla? Invece di ottenere lo stato più recente
-        dal server?
-      title: Qualcosa risulta priva di salvataggio
-    warning_delete_node: Desideri davvero cancellare il nodo {{name}} e tutti i suoi
-      discendenti?
-    warning_not_saved: non salvato correttamente
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Task
-  label_filter_group_easy_wbs:
-    easy_issue_query: Task
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/ja.yml b/plugins/easy_wbs/config/locales/ja.yml
deleted file mode 100644
index 55af76a..0000000
--- a/plugins/easy_wbs/config/locales/ja.yml
+++ /dev/null
@@ -1,151 +0,0 @@
----
-ja:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_add_child: 子を追加
-    button_add_parent: 親を追加
-    button_add_sibling: 兄弟を追加
-    button_all_icons: アイコン
-    button_collapse: 折りたたみ
-    button_collapse_all: すべて展開
-    button_cut: 切り取り
-    button_edit_data: ノードの詳細を編集
-    button_expand: 展開
-    button_expand_all: すべて展開
-    button_expand_collapse: 展開/折りたたみ
-    button_legend: 判例
-    button_one_side: 片側
-    button_paste: 貼り付け
-    button_project_menu: WBS
-    button_redo: やり直し
-    button_remove_node: ノードを削除
-    button_show_links: リンクを表示
-    button_undo: 元に戻す
-    edit_issue: チケットを編集
-    error_create: 作成できませんでした
-    error_delete: 削除できませんでした
-    error_update: 更新できませんでした
-    errors:
-      not_subtaskable: "%{task_name} は子チケットにできません"
-    free:
-      button_upgrade: フルバージョンを入手
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: プロパティ毎にノードを塗り分け
-      feature_context_menu: ノードのプロパティを変更
-      feature_filtering: プロパティ毎にノードをフィルタ
-      header_not_available: フルバージョンでのみ入手可能
-      text_not_available: 'WBSプラグインのフルバージョンで入手可能:'
-    hotkeys:
-      info_mac_metakey: Mac OS Xの場合、ControlキーとCommandキーは、以下でCtrlと表示しているショートカットで使用可能です。しかしブラウザによっては、無効なキーの組み合わせがあります。そのため、例えばCommand+Spaceが効かない場合は、Control+Spaceを試してください。
-      keyboard:
-      - title: ノード操作
-        hotkeys:
-        - hotkey: Enter
-          info: 兄弟を追加
-        - hotkey: Shift+Enter
-          info: 1つ上に兄弟を追加、または改行(ノード名を変更中の場合)
-        - hotkey: Tab or Insert
-          info: 子を追加
-        - hotkey: Shift+Tab
-          info: 親を追加
-        - hotkey: Space
-          info: ノード名の変更
-        - hotkey: Shift+Space
-          info: ノードの詳細を編集
-        - hotkey: Backspace または Delete
-          info: ノードの削除
-        - hotkey: Ctrl+Up/Down
-          info: ノードを上/下へ移動
-      - title: 編集
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: 保存
-        - hotkey: Ctrl+X または C
-          info: 切り取り
-        - hotkey: Ctrl+C または Y
-          info: コピー
-        - hotkey: Ctrl+V または P
-          info: 貼り付け
-        - hotkey: U または Ctrl+Z
-          info: 元に戻す
-        - hotkey: R または Ctrl+Y または Ctrl+Shift+Z
-          info: やり直し
-      - title: ノード選択
-        hotkeys:
-        - hotkey: 矢印キー
-          info: ノードの選択を、上下左右に移動
-        - hotkey: Shift+矢印キー
-          info: ノードの選択範囲を、上下左右に拡大(兄弟を複数選択するときに便利です)
-        - hotkey: "{"
-          info: 選択中ノードと、その子すべてを選択
-        - hotkey: "["
-          info: 選択中ノードの、子だけを選択(選択中のノードを含みません)
-        - hotkey: "="
-          info: 選択中ノードの兄弟を、すべて選択(同じ親の下にある兄弟が対象です)
-        - hotkey: "."
-          info: 複数選択を解除し、現在のノードだけを選択
-        - hotkey: 1 - 9
-          info: 指定された階層のノードをすべて選択(1の場合、第一階層のノードがすべて選択されます)
-      - title: 表示
-        hotkeys:
-        - hotkey: "/ または F"
-          info: ノードの展開/折りたたみ
-        - hotkey: Ctrl+(+) または Z
-          info: 拡大
-        - hotkey: Ctrl+(-) または Shift+Z
-          info: 縮小
-        - hotkey: Esc または 0 または Ctrl+0
-          info: マップ表示を元に戻す - ルートノードを画面中央に異動します
-      mouse:
-      - action: マップを移動
-        gesture: ルートノードを選択してドラッグ
-      - action: ノード選択
-        gesture: ノードをクリック
-      - action: ノードの複数選択
-        gesture: Shift+クリック
-      - action: ノードの並べ替え
-        gesture: ノードをもっていきたいところまでドラッグして、黒い矢印が表示されたら離す
-      - action: ノードの位置を手動で調整
-        gesture: ノードをもっていきたいところまでドラッグして離す(黒い矢印が表示されていないことを確認してください)。黒い矢印が表示される場所に移動したい場合は、Shiftを押しながらドラッグしてください。注意:第一階層のノードはどの方向にも自由に配置できますが、それより下位階層のノードは、ルート⇒親の向きにしか配置できません。
-      - action: ノード名の変更
-        gesture: ダブルクリック
-      - action: コンテキストメニューを表示
-        gesture: ノードを右クリック
-      - action: ノードの親を変更
-        gesture: ドラッグ&ドロップ(循環リンクとなる関係にはできません)
-      - action: チケット/プロジェクトを別ウィンドウで表示
-        gesture: Alt+クリック
-      title_key_shortcuts: キーボード操作
-      title_mouse_shortcuts: マウスとタッチ操作
-      title_shortcuts: ショートカット
-    info_all_saved: すべて正しく保存されました
-    info_any_failed: いくつかの要求に失敗しました:
-    info_no_permission: その操作をする権限がありません
-    label_color_by: 色の塗り分け
-    label_go_to: '次へ:'
-    label_or: または
-    last_state_modal:
-      label_differencies: サーバとの差異
-      message_changed: はブラウザ上とサーバ上で属性が異なります ({changes})
-      message_missing: は親ノード {from} に存在しません
-      message_moved: は {from} ではなく {to} の子ノードです
-      message_present: は {to} の子ノードです
-      text_reload_appeal: サーバからステータスを再読込みしますか?
-      title: WBSのクライアントのステータスがサーバのデータと異なります
-    reload_modal:
-      label_errors: エラー
-      text_reload_appeal: 保存されていない変更を破棄して、サーバのデータを再読み込みしますか?
-      title: WBSを正しく保存できませんでした
-    stored_modal:
-      text_load_appeal: サーバから最新のデータを読み込みますか?
-      title: 保存されていないステータスが見つかりました
-    warning_delete_node: 本当に {{name}} とその子孫チケットを削除してもよろしいですか?
-    warning_not_saved: は正しく保存されません
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: タスク
-  label_filter_group_easy_wbs:
-    easy_issue_query: チケット
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/ko.yml b/plugins/easy_wbs/config/locales/ko.yml
deleted file mode 100644
index c748d5f..0000000
--- a/plugins/easy_wbs/config/locales/ko.yml
+++ /dev/null
@@ -1,162 +0,0 @@
----
-ko:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: 쉬운 WBS
-  easy_wbs:
-    button_actions: 다른 실행
-    button_add_child: 자녀 추가
-    button_add_parent: 부모 추가
-    button_add_sibling: 형제/자매 추가
-    button_all_icons: 아이콘
-    button_collapse: 줄이기
-    button_collapse_all: 모두 줄이기
-    button_cut: 잘라내기
-    button_display: 설정 확인
-    button_edit_data: 데이터 수정
-    button_expand: 넓히기
-    button_expand_all: 모두 늘이기
-    button_expand_collapse: 더보기/줄이기
-    button_legend: 전설
-    button_one_side: 한 쪽
-    button_paste: 붙여넣기
-    button_project_menu: Easy WBS
-    button_redo: 다시하기
-    button_remove_node: 연결고리 제거
-    button_show_links: 링크 보여주기
-    button_undo: 실행취소
-    edit_issue: 작업 수정
-    error_create: 생성될 수 없습니다
-    error_delete: 삭제될 수 없습니다
-    error_update: 업데이트 될 수 없습니다
-    errors:
-      not_subtaskable: 추적기 설정으로 인해 작업 "%{task_name}"은  하위 작업이 될 수 없습니다
-    free:
-      button_upgrade: 전체 버전 받기
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: 속성별로 연결 색 칠하기
-      feature_context_menu: 연결값 변경
-      feature_filtering: 속성별로 연결 필터링
-      header_not_available: 전체 버전에서만 사용할 수 있음
-      text_not_available: Easy WBS의 전체 버전에서만 사용할 수 있음
-    hotkeys:
-      info_mac_metakey: Mac OSX에서는 Ctrl 키와 Cmd 키를 Ctrl 아래에 표시된 단축키에 사용할 수 있습니다. 일부
-        브라우저는 특정 키 조합을 사용하지 못하게 합니다. 예를 들어 Cmd + Space가 브라우저에서 작동하지 않는 경우, Ctrl +
-        Space를 사용하여주세요.
-      keyboard:
-      - title: Node manipulation
-        hotkeys:
-        - hotkey: Enter
-          info: Add Sibling
-        - hotkey: Shift+Enter
-          info: Add Sibling above or line break (when renaming node)
-        - hotkey: Tab or Insert
-          info: Add child
-        - hotkey: Shift+Tab
-          info: Insert parent
-        - hotkey: Space
-          info: Rename node
-        - hotkey: Shift+Space
-          info: Edit node data
-        - hotkey: Backspace or Delete
-          info: Remove node
-        - hotkey: Ctrl+Up/Down
-          info: Move node up/down
-      - title: Editing
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Save
-        - hotkey: Ctrl+X or C
-          info: Cut
-        - hotkey: Ctrl+C or Y
-          info: Copy
-        - hotkey: Ctrl+V or P
-          info: Paste
-        - hotkey: U or Ctrl+Z
-          info: Undo
-        - hotkey: R or Ctrl+Y or Ctrl+Shift+Z
-          info: Redo
-      - title: Selection
-        hotkeys:
-        - hotkey: Arrow Keys
-          info: Select the node up/down/left/right of the currently selected one
-        - hotkey: Shift + Arrow keys
-          info: Add node up/down/left/right to selection (useful to multi-select siblings)
-        - hotkey: "{"
-          info: Multi-select the current node and the entire subtree under it
-        - hotkey: "["
-          info: Multi-select only the subtree under the current node (not the node
-            itself)
-        - hotkey: "="
-          info: Multi-select all the siblings of the current node (that have the same
-            parent)
-        - hotkey: "."
-          info: Cancel multi-selection and select only the current node again
-        - hotkey: 1 - 9
-          info: Select all nodes of a particular level (eg 1 selects all first level
-            nodes)
-      - title: Navigation and screen
-        hotkeys:
-        - hotkey: "/ or F"
-          info: Expand or collapse node (fold or unfold children)
-        - hotkey: Ctrl + or Z
-          info: Zoom in
-        - hotkey: Ctrl - or Shift Z
-          info: Zoom out
-        - hotkey: Esc, 0, Ctrl+0
-          info: Reset map view - select root node and bring it to the center of the
-            screen
-      mouse:
-      - action: Move the map
-        gesture: 가운데 노드를 클릭하고 드래그하고 배경을 클릭하여 드래그하거나 트랙 패드 / 터치 패드로 스크롤합니다.
-      - action: 노드 선택
-        gesture: 선택 혹은 클릭하기
-      - action: 다양한 노드 선택
-        gesture: Shift+클릭
-      - action: 노드 재정렬
-        gesture: 형제 파일 간 노드를 드래그하고 재정렬 위치에 가깝게 놓습니다. 재정렬 할 때는 검은 색 화살표 점이 표시됩니다..
-      - action: 직접 노트 위치 수정
-        gesture: 재정렬을 위한 화살표 점이 표시되지 않을 때까지 노드를 드래그하세요. 재정렬 화살표가 표시되어 있지만, 수동으로 위치를
-          지정하려면 Shift 키를 누른 상태에서 드래그하십시오. 루트 노드의 하위 자료는 모든 방향에서 끌어 올 수 있지만, 하위 노드는
-          루트와 관련된 상위 폴더 방향으로 만 이동 할 수 있습니다..
-      - action: 노드 이름 재설정
-        gesture: 더블 클릭 혹은 두번 선택하기
-      - action: 작업이 포함된 메뉴 표시
-        gesture: 노드를 마우스 오른쪽 버튼으로 클릭하거나 배경을 두 번 탭하거나 노드를 길게 누르기 (터치 장치)
-      - action: 노드 상위파일 변경
-        gesture: 다른 노드에 노드를 드래그 앤 드롭하기 (순환 삭제는 허용되지 않으므로 하위 노드 또는 하위 노드 중 한개의 노드를
-          삭제할 수 없습니다.)
-      - action: 작업 실행 혹은 다른 창에서 프로젝트 열기
-        gesture: Alt+클릭
-      title_key_shortcuts: 키보드 활용
-      title_mouse_shortcuts: 마우스 및 터치 활용
-      title_shortcuts: 단축키
-    info_all_saved: 모든 것이 성공적으로 저장되었습니다
-    info_any_failed: '몇몇 요청이 이행되지 않았습니다:'
-    info_no_permission: 이를 실행할 수 있는 허가가 없습니다
-    label_color_by: 으로 칠해진
-    label_go_to: 이동하기
-    label_or: 혹은
-    last_state_modal:
-      label_differencies: 서버의 차이점
-      message_changed: 다른 속성을 가지고 있습니다 (브라우저 => 서버) ({{changes}})
-      message_missing: '"{{from}}" 상위자료로 부터 없어짐'
-      message_moved: '"{{from}}" 가 아닌 "{{to}}" 의 하부내역입니다'
-      message_present: '"{{to}}" 의 하위자료로 있습니다'
-      text_reload_appeal: 서버에서 재로딩을 하시겠습니까?
-      title: WBS의 마지막 고객의 위치는 서버 위치와 다릅니다
-    reload_modal:
-      label_errors: 오류
-      text_reload_appeal: 저장되지 않은 항목들을 무시하고 서버로부터 데이터를 재로딩할까요?
-      title: WBS가 올바르게 저장되지 못했습니다
-    stored_modal:
-      text_load_appeal: 로딩하시겠습니까? 대신에 서버에서 새로운 상태를 로딩하시겠습니까?
-      title: 저장되지 않은 상태를 찾았습니다
-    warning_delete_node: 연결 {{name}}과 모든 하위 자료를 삭제하시겠습니까?
-    warning_not_saved: 올바르게 저장되지 않았습니다
-  heading_easy_wbs_issues: 쉬운 WBS
-  label_filter_group_easy_wbs_easy_issue_query: 작업
-  label_filter_group_easy_wbs:
-    easy_issue_query: 작업
-  project_default_page:
-    easy_wbs: 쉬운 WBS
diff --git a/plugins/easy_wbs/config/locales/mk.yml b/plugins/easy_wbs/config/locales/mk.yml
deleted file mode 100644
index 0ae1092..0000000
--- a/plugins/easy_wbs/config/locales/mk.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-mk: 
diff --git a/plugins/easy_wbs/config/locales/nl.yml b/plugins/easy_wbs/config/locales/nl.yml
deleted file mode 100644
index 5d3da2c..0000000
--- a/plugins/easy_wbs/config/locales/nl.yml
+++ /dev/null
@@ -1,173 +0,0 @@
----
-nl:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Andere acties
-    button_add_child: Voeg kind toe
-    button_add_parent: Voeg ouder toe
-    button_add_sibling: Voeg broer/zus toe
-    button_all_icons: Iconen
-    button_collapse: Inklappen
-    button_collapse_all: Alle inklappen
-    button_cut: Knippen
-    button_display: Weergave instellingen
-    button_edit_data: Bewerk gegevens
-    button_expand: Uitvouwen
-    button_expand_all: Allen uitklappen
-    button_expand_collapse: Uitklappen/Inklappen
-    button_legend: Legenda
-    button_one_side: Een zijde
-    button_paste: Plakken
-    button_project_menu: Easy WBS
-    button_redo: Opnieuw
-    button_remove_node: Verwijder knooppunt
-    button_show_links: Toon links
-    button_undo: Ongedaan maken
-    edit_issue: Bewerk taak
-    error_create: kon niet aangemaakt worden
-    error_delete: kon niet verwijderd worden
-    error_update: kon niet bijgewerkt worden
-    errors:
-      not_subtaskable: Taak "%{task_name}" kan geen subtaak zijn door de instelling
-        van zijn tracker
-    free:
-      button_upgrade: Koop Volledige versie
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Kleur knooppunten op eigenschap
-      feature_context_menu: Wijzig eigenschappen knooppunt
-      feature_filtering: Filter knooppunten op eigenschap
-      header_not_available: Alleen beschikbaar in Volledige versie
-      text_not_available: is beschikbaar in de Volledige versie van Easy WBS.
-    hotkeys:
-      info_mac_metakey: Op Mac OSX kunnen Ctrl en Cmd gebruikt worden voor snelkoppelingen
-        met Ctrl hieronder - sommige browsers blokkeren bepaalde toetscombinaties.
-        Dus, bijvoorbeeld, als Cmd+Spatie niet werkt in uw browser, probeer dan Ctrl+Spatie.
-      keyboard:
-      - title: Knooppunt manipulatie
-        hotkeys:
-        - hotkey: Enter
-          info: Kind Toevoegen
-        - hotkey: Shift+Enter
-          info: Kind Toevoegen boven of breuklijn (bij hernoemen knooppunt)
-        - hotkey: Tab of Insert
-          info: Add child
-        - hotkey: Shift+Tab
-          info: Ouder Invoegen
-        - hotkey: Spatie
-          info: Kind Toevoegen
-        - hotkey: Shift+Spatie
-          info: Knooppunt data bewerken
-        - hotkey: Backspace of Delete
-          info: Verwijder Knooppunt
-        - hotkey: Ctrl+Up/Down
-          info: Verplaats knooppunt omhoog/omlaag
-      - title: Bewerken
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Opslaan
-        - hotkey: Ctrl+X of C
-          info: Knippen
-        - hotkey: Ctrl+C of Y
-          info: Kopieren
-        - hotkey: Ctrl+V of P
-          info: PLakken
-        - hotkey: U of Ctrl+Z
-          info: Ongedaan maken
-        - hotkey: R of Ctrl+Y of Ctrl+Shift+Z
-          info: Redo
-      - title: Selectie
-        hotkeys:
-        - hotkey: Pijltjestoetsen
-          info: Selecteer het knooppunt omhoog/omlaag/links/rechts van de huidige
-            geselecteerde
-        - hotkey: Shift + Pijltjestoetsen
-          info: Voeg knooppunt toe omhoog/omlaag/links/rechts van de selectie (handing
-            voor het selecteren van meerdere siblings)
-        - hotkey: "{"
-          info: Multi-select het huidige knooppunt en de volledige sub-boom eronder
-        - hotkey: "["
-          info: Multi-select alleen de sub-boom onder het huidige knooppunt (niet
-            het knooppunt zelf)
-        - hotkey: "="
-          info: Multi-select alle siblings van het huidige knooppunt (met dezelfde
-            ouder)
-        - hotkey: "."
-          info: Cancel multi-selection and select only the current node again
-        - hotkey: 1 - 9
-          info: Selecteer alle knooppunten op een bepaald niveau (dwz 1 selecteert
-            alle knooppunten van het eerste niveau)
-      - title: Navigatie en scherm
-        hotkeys:
-        - hotkey: "/ of F"
-          info: Knooppunt inklappen of uitklappen (vouw kinderen in of uit)
-        - hotkey: Ctrl + of Z
-          info: Zoom in
-        - hotkey: Ctrl - of Shift Z
-          info: Zoom uit
-        - hotkey: Esc, 0, Ctrl+0
-          info: Reset map weergave - selecteer basis knooppunt en breng het naar het
-            centrum van het scherm
-      mouse:
-      - action: Verplaats de kaart
-        gesture: klik en versleep het centrale knooppunt, klik en versleep de achtergrond
-          of scroll met trackpad/touchpad.
-      - action: Selecteer een knooppunt
-        gesture: tap of click erop
-      - action: Selecteer meerdere knooppunten
-        gesture: Shift+click
-      - action: Herschik knooppunten
-        gesture: versleep een knooppunt tussen zijn siblings, horizontaal dichtbij
-          de positie om te herschikken. Een zwarte pijl is zichtbaar bij het herschikken.
-      - action: Handmatig een knooppunt plaatsen
-        gesture: sleep een knooppunt tot de pijl voor het herschikken niet meer zichtbaar
-          is. Om handmatig te plaatsen  als de pijl zichtbaar is hou Shift ingedrukt
-          bij het slepen. Let op, kinderen van het basisknooppunt kunnen in elke richting
-          getrokken worden, maar knooppunten van een lagen niveau kunnen alleen geplaatst
-          worden in de richting van de ouders relatief aan de basis.
-      - action: Hernoem een knooppunt
-        gesture: Dubbelklik of dubbeltap erop
-      - action: Toon context menu met handelingen
-        gesture: 'Rechtsklikken op knooppunt (met muis) of dubbel-tap de achtergrand,
-          of hou het knooppunt lang ingedrukt: toon (op touch apparaten)'
-      - action: Wijzig knooppunt ouder
-        gesture: sleep en drop een knooppunt op een ander knooppunt (circelvormige
-          drops zijn niet toegestaan, dus een knooppunt kan niet op zijn kinderen
-          of afstammelingen geplaatst worden)
-      - action: Open kwestie of project in apart venster
-        gesture: Alt+click
-      title_key_shortcuts: Toetsenbord bediening
-      title_mouse_shortcuts: Muis en touch bedieningen
-      title_shortcuts: Snelkoppelingen
-    info_all_saved: Alles succesvol opgeslagen
-    info_any_failed: 'Sommige aanvragen zijn mislukt:'
-    info_no_permission: U heeft niet de benodigde toestemming om dit te doen
-    label_color_by: Kleur op
-    label_go_to: Ga naar
-    label_or: of
-    last_state_modal:
-      label_differencies: Verschillen op server
-      message_changed: heeft verschillende attributen (browser => server) ({{changes}})
-      message_missing: mist van ouder "{{from}}"
-      message_moved: is kind van "{{to}}", niet "{{from}}"
-      message_present: is present als kind van "{{to}}"
-      text_reload_appeal: Wilt u de staat opnieuw laden van de server
-      title: Laatste client status van WBS is anders dan de server status
-    reload_modal:
-      label_errors: Fouten
-      text_reload_appeal: Wilt u de niet opgeslagen items negeren en de data van de
-        server opnieuw laden?
-      title: WBS niet correct opgeslagen
-    stored_modal:
-      text_load_appeal: Wilt u het opnieuw laden? In plaats van de verse status van
-        de server?
-      title: Niet opgeslagen staat gevonden
-    warning_delete_node: Wilt u echt{{name}} en al zijn afhankelijkheden verwijderen?
-    warning_not_saved: is niet correct opgeslagen
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Taken
-  label_filter_group_easy_wbs:
-    easy_issue_query: Taken
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/no.yml b/plugins/easy_wbs/config/locales/no.yml
deleted file mode 100644
index 38901c6..0000000
--- a/plugins/easy_wbs/config/locales/no.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-'no': 
diff --git a/plugins/easy_wbs/config/locales/pl.yml b/plugins/easy_wbs/config/locales/pl.yml
deleted file mode 100644
index 35d8983..0000000
--- a/plugins/easy_wbs/config/locales/pl.yml
+++ /dev/null
@@ -1,174 +0,0 @@
----
-pl:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Inne działania
-    button_add_child: Dodaj dziecko
-    button_add_parent: Dodaj rodzica
-    button_add_sibling: Dodaj rodzeństwo
-    button_all_icons: Ikony
-    button_collapse: Zwiń
-    button_collapse_all: Zwiń wszystko
-    button_cut: Przytnij
-    button_display: Wyświetl ustawienia
-    button_edit_data: Edytuj dane
-    button_expand: Rozwiń
-    button_expand_all: Rozwiń wszystko
-    button_expand_collapse: Rozwiń/Zwiń
-    button_legend: Legenda
-    button_one_side: Jedna strona
-    button_paste: Wklej
-    button_project_menu: Easy WBS
-    button_redo: Popraw
-    button_remove_node: Usuń węzeł
-    button_show_links: Pokaż linki
-    button_undo: Cofnij
-    edit_issue: Edytuj zadanie
-    error_create: nie mógł zostać utworzony
-    error_delete: nie mógł zostać usunięty
-    error_update: nie mógł zostać zaktualizowany
-    errors:
-      not_subtaskable: Zadanie "%{task_name}" nie może być podzadaniem ustawienia
-        swojego narzędzia śledzenia
-    free:
-      button_upgrade: Zdobądź pełną wersję
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Koloruj węzły wg właściwości
-      feature_context_menu: Zmienianie właściwości węzłów
-      feature_filtering: Filtruj węzły wg właściwości
-      header_not_available: Dostępny jedynie w pełnej wersji
-      text_not_available: jest dostępny jedynie w pełnej wersji Easy WBS.
-    hotkeys:
-      info_mac_metakey: Na Mac OSX, klucze Ctrl i Cmd mogą być użyte dla skrótów oznaczonych
-        poniżej Ctrl - niektóre przeglądarki zapobiegają łączeniu niektórych klawiszy.
-        Przykładowo, w ten sposób, jeśli Cmd+Space nie działa na twojej przeglądarce,
-        wypróbuj Ctrl+Space.
-      keyboard:
-      - title: Manipulacja węzłem
-        hotkeys:
-        - hotkey: Enter
-          info: Dodaj rodzeństwo
-        - hotkey: Shift+Enter
-          info: Dodaj rodzeństwo powyżej lub przy końcu linii (podczas zmiany nazwy
-            węzła)
-        - hotkey: Zakładka lub Wstaw
-          info: Dodaj rodzeństwo
-        - hotkey: Shift+Tab
-          info: Wstaw rodzica
-        - hotkey: Spacja
-          info: Zmień nazwę węzła
-        - hotkey: Shift+Space
-          info: Edytuj dane węzła
-        - hotkey: Backspace lub Delete
-          info: Usuń węzeł
-        - hotkey: Ctrl+Up/Down
-          info: Przesuń węzeł w górę/dół
-      - title: Edytowanie
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Zapisz
-        - hotkey: Ctrl+X lub C
-          info: Przytnij
-        - hotkey: Ctrl+C lub Y
-          info: Kopiuj
-        - hotkey: Ctrl+V lub P
-          info: Wklej
-        - hotkey: U lub Ctrl+Z
-          info: Cofnij
-        - hotkey: R lub Ctrl+Y lub Ctrl+Shift+Z
-          info: Napraw
-      - title: Wybór
-        hotkeys:
-        - hotkey: Klawisze strzałek
-          info: Wybierz węzeł w górę/dół/lewo/prawo obecnie wybranego
-        - hotkey: Shift + Klawisze strzałek
-          info: Dodaj węzeł w górę/dół/lewo/prawo do wyboru (użyteczne przy rodzeństwie
-            wielokrotnego wyboru)
-        - hotkey: "{"
-          info: Wielokrotny wybór obecnego węzła i całe pod drzewo pod nim
-        - hotkey: "["
-          info: Wielokrotny wybór jedynie drzewa pod obecnym węzłem (nie samym węzłem)
-        - hotkey: "="
-          info: Wielokrotny wybór całego rodzeństwa obecnego węzła (które posiada
-            tego samego rodzica)
-        - hotkey: "."
-          info: Anuluj wielokrotny wybór i wybierz ponownie jedynie obecny węzeł
-        - hotkey: 1 - 9
-          info: Wybierz wszystkie węzły konkretnego poziomu (np. 1 wybiera wszystkie
-            węzły pierwszego poziomu)
-      - title: Nawigacja i ekran
-        hotkeys:
-        - hotkey: "/ lub F"
-          info: Rozwiń lub zwiń węzeł (złóż lub rozłóż dzieci)
-        - hotkey: Ctrl + lub Z
-          info: Powiększ w
-        - hotkey: Ctrl - lub Shift Z
-          info: Pomniejsz
-        - hotkey: Esc, 0, Ctrl+0
-          info: Resetuj widok mapy – wybierz węzeł główny i przynieś go na środek
-            ekranu
-      mouse:
-      - action: Przesuń mapę
-        gesture: kliknij i przeciągnij środek węzła, kliknij i przeciągnij tło lub
-          przewiń trackpadem/touchpadem.
-      - action: Wybierz węzeł
-        gesture: stuknij lub kliknij go
-      - action: Wybierz wiele węzłów
-        gesture: Shift+click
-      - action: Zmień kolejność węzłów
-        gesture: przeciągnij węzeł pomiędzy jego rodzeństwem, zamknij poziomo do pozycji
-          ponownej zmiany kolejności. Podczas zmieniania kolejności pojawi się czarna
-          strzałka.
-      - action: Ręcznie ustaw pozycję węzła
-        gesture: przeciągnij węzeł dopóki nie pokazuje się punkt strzałki do zmiany
-          kolejności. Aby wymusić ręczną pozycję nawet gdy pokazuje się punkt zmiany
-          kolejności strzałki, przytrzymaj Shift podczas przeciągania. Zauważ, że
-          dzieci głównego węzła mogą zostać przeciągnięte w dowolnym kierunku, jednak
-          węzły niższego poziomu mogą zostać wypozycjonowane w kierunku swojego rodzica
-          do węzła.
-      - action: Zmień nazwę węzła
-        gesture: Dwa razy kliknij lub stuknij to
-      - action: Pokaż menu kontekstowe z operacjami
-        gesture: 'Kliknij prawym przyciskiem myszy na węzeł lub podwójnie stuknij
-          tło, bądź przyciśnij dłużej węzeł: pokaż (na urządzeniach dotykowych)'
-      - action: Zmień rodzica węzła
-        gesture: przeciągnij i opuść węzeł na inny węzeł (okrągłe krople nie są dozwolone,
-          więc nie możesz opuścić kropli na węzeł jednego z jego dzieci lub potomków)
-      - action: Otwórz problem lub projekt w oddzielnym oknie
-        gesture: Alt+click
-      title_key_shortcuts: Operacje klawiatury
-      title_mouse_shortcuts: Operacje myszki i touch pada
-      title_shortcuts: Skróty
-    info_all_saved: Wszystko pomyślnie zapisano
-    info_any_failed: 'Niektóre żądania nie powiodły się:'
-    info_no_permission: Nie masz wymaganych pozwoleń, aby to zrobić
-    label_color_by: Kolor wg
-    label_go_to: Idź do
-    label_or: lub
-    last_state_modal:
-      label_differencies: Różnice na serwerze
-      message_changed: posiada różne atrybuty (przeglądarka => serwer) ({{changes}})
-      message_missing: brakuje rodzica "{{from}}"
-      message_moved: jest dzieckiem "{{to}}", nie "{{from}}"
-      message_present: jest obecnie jako dziecko "{{to}}"
-      text_reload_appeal: Czy chcesz ponownie załadować stan z serwera?
-      title: Ostatni stan klienta WBS jest różny od stanu serwera
-    reload_modal:
-      label_errors: Błędy
-      text_reload_appeal: Czy chcesz zignorować niezapisane pozycje i ponownie załadować
-        dane z serwera?
-      title: Poprawne zapisanie WBS nie powiodło się
-    stored_modal:
-      text_load_appeal: Czy chcesz załadować to zamiast odświeżać stanu z serwera?
-      title: Znaleziono niezapisany stan
-    warning_delete_node: Czy na pewno chcesz usunąć węzeł {{name}} i wszystkich jego
-      potomków?
-    warning_not_saved: nie jest poprawnie zapisany
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Zadania
-  label_filter_group_easy_wbs:
-    easy_issue_query: Zadania
-  project_default_page:
-    easy_wbs: ''
diff --git a/plugins/easy_wbs/config/locales/pt-BR.yml b/plugins/easy_wbs/config/locales/pt-BR.yml
deleted file mode 100644
index 48634c3..0000000
--- a/plugins/easy_wbs/config/locales/pt-BR.yml
+++ /dev/null
@@ -1,174 +0,0 @@
----
-pt-BR:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: WBS Easy
-  easy_wbs:
-    button_actions: Outras ações
-    button_add_child: Adicionar criança
-    button_add_parent: Adicionar pai
-    button_add_sibling: Adicionar irmão
-    button_all_icons: Ícones
-    button_collapse: Colapsar
-    button_collapse_all: Colapsar tudo
-    button_cut: Cortar
-    button_display: Configurações de visualização
-    button_edit_data: Editar dados
-    button_expand: Expandir
-    button_expand_all: Expandir tudo
-    button_expand_collapse: Expandir/Colapso
-    button_legend: Legenda
-    button_one_side: Um lado
-    button_paste: Colar
-    button_project_menu: Easy WBS
-    button_redo: Refazer
-    button_remove_node: Remover nódulo
-    button_show_links: Mostrar links
-    button_undo: Desfazer
-    edit_issue: Editar tarefa
-    error_create: não pode ser criado
-    error_delete: não pode ser apagado
-    error_update: não pode ser atualizado
-    errors:
-      not_subtaskable: Tarefa "%{task_name}" não pode ser sub tarefa, devido à configuração
-        do seu rastreador
-    free:
-      button_upgrade: Obter versão completa
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Colorir nódulos por propriedade
-      feature_context_menu: Mudar propriedades de nódulo
-      feature_filtering: Filtrar nódulos por propriedades
-      header_not_available: Disponível apenas na versão completa
-      text_not_available: está disponível na versão completa de Easy WBS.
-    hotkeys:
-      info_mac_metakey: Em Mac OSX, teclas Ctrl e Cmd pode ser usado para atalhos
-        marcados Ctrl em baixo - alguns browsers evitar certas combinações de teclas.
-        Então, por exemplo, se Cmd+Space não funcionar no browser, tente Ctrl+Space.
-      keyboard:
-      - title: Manipulação de nódulos
-        hotkeys:
-        - hotkey: Enter
-          info: Adicionar irmão
-        - hotkey: Shift+Enter
-          info: Adicionar irmão ou mudança de linha (quando renomear nódulo)
-        - hotkey: Guia ou Inserir
-          info: Adicionar criança
-        - hotkey: Shift+Guia
-          info: Inserir pai
-        - hotkey: Espaço
-          info: Renomear nódulo
-        - hotkey: Shift+Espaço
-          info: Editar informação de nódulos
-        - hotkey: Espaço ou Apagar
-          info: Retirar nódulo
-        - hotkey: Ctrl+Seta para Cima/Baixo
-          info: Deslocar nódulo para Cima/Baixo
-      - title: Editando
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Salvar
-        - hotkey: Ctrl+X ou C
-          info: Cortar
-        - hotkey: Ctrl+C ou Y
-          info: Copiar
-        - hotkey: Ctrl+V ou P
-          info: Colar
-        - hotkey: U ou Ctrl+Z
-          info: Desfazer
-        - hotkey: R ou Ctrl+Y ou Ctrl+Shift+Z
-          info: Refazer
-      - title: Seleção
-        hotkeys:
-        - hotkey: Teclas Seta
-          info: Selecionar o nódulo cima/baixo/esquerda/direita do que está atualmente
-            selecionado
-        - hotkey: Shift + Teclas Seta
-          info: Adicionar nódulo cima/baixo/esquerda/direita para seleção (útil para
-            irmãos multi-selecionados)
-        - hotkey: "{"
-          info: 'Multi-selecione o nódulo atual e toda subárvore sob ele '
-        - hotkey: "["
-          info: Multi-selecione somente a  subárvore sob o nódulo atual (e não o próprio
-            nódulo)
-        - hotkey: "="
-          info: Multi-selecione todos os irmãos do nódulo atual (que tem o mesmo pai)
-        - hotkey: "."
-          info: Cancelar multi-seleção e selecionar somente o nódulo atual novamente
-        - hotkey: 1 - 9
-          info: 'Selecionar todos os nódulos de um nível específico (por exemplo:
-            1 seleciona todos os nódulos do primeiro nível)'
-      - title: Navegação e tela
-        hotkeys:
-        - hotkey: "/ ou F"
-          info: Expandir ou contrair nódulo (dobrar ou desdobrar crianças)
-        - hotkey: Ctrl + ou Z
-          info: Fazer zoom
-        - hotkey: Ctrl - ou Shift Z
-          info: Diminuir
-        - hotkey: Esc, 0, Ctrl+0
-          info: Redefinir vista de mapa - selecionar nódulo raíz e trazê-lo para o
-            centro da tela
-      mouse:
-      - action: Deslocar o mapa
-        gesture: clique e arraste o nódulo central, clique e arraste o fundo ou desloque
-          com touchpad/teclado tátil.
-      - action: Selecionar um nódulo
-        gesture: toque ou clique sobre ele
-      - action: Selecionar nódulos múltiplos
-        gesture: Shift+clique
-      - action: Reordenar nódulos
-        gesture: arraste um nódulo entre os da mesma família, na horizontal perto
-          da posição da reordenação. Uma seta preta vai mostrar quando reordenar.
-      - action: Posicione manualmente um nódulo
-        gesture: apenas arraste o nódulo até a ponta da flecha para a reordenação
-          não estiver a mostra. Para forçar manualmente a posição, mesmo quando a
-          ponta da flecha de reordenação esteja a mostra, segure a tecla Shift ao
-          arrastar. Por favor note que filhos do nódulo raiz podem ser arrastados
-          em qualquer direção, mas nódulos de nível inferior só podem ser posicionados
-          na direção do seu pai em relação à raiz.
-      - action: Renomear um nódulo
-        gesture: Clique ou toque duas vezes
-      - action: Mostrar menu de contexto com operações
-        gesture: 'Clique com o botão direito em um nódulo (com o mouse) ou toque duas
-          vezes no fundo, ou pressione por muito tempo um nódulo: mostra (em dispositivos
-          sensíveis ao toque)'
-      - action: Mudar nódulo pai
-        gesture: arraste e solte um nodulo em outro nódulo (movimentos circulares
-          não são permitidos, para que você não possa deixar cair um nódulo em um
-          de seus filhos ou descendentes)
-      - action: Questão em aberto ou projeto em janela separada
-        gesture: Alt+clique
-      title_key_shortcuts: Operações de teclado
-      title_mouse_shortcuts: Operações de mouse e toque
-      title_shortcuts: Atalhos
-    info_all_saved: Tudo foi salvo com êxito
-    info_any_failed: 'Algumas das solicitações falharam:'
-    info_no_permission: Você não tem as permissões necessárias para fazer isso
-    label_color_by: Colorir por
-    label_go_to: Ir a
-    label_or: ou
-    last_state_modal:
-      label_differencies: Diferenças no servidor
-      message_changed: têm diferentes atributos (browser => servidor) ({{changes}})
-      message_missing: está ausente do pai "{{from}}"
-      message_moved: é criança de "{{to}}", não "{{from}}"
-      message_present: no momento é criança de "{{to}}"
-      text_reload_appeal: Você quer recarregar estado desdo servidor?
-      title: Último cliente de WBS é diferente do estado do servidor
-    reload_modal:
-      label_errors: Erros
-      text_reload_appeal: Você quer ignorar itens que não foram salvos e recarregar
-        os dados do servidor?
-      title: WBS não foi salvo corretamente
-    stored_modal:
-      text_load_appeal: Você quer carregá-lo? Em vez do estado recente a partir do
-        servidor?
-      title: Estado  não salvos foram encontrados
-    warning_delete_node: Deseja mesmo apagar o nó {{name}} e todos os seus descendentes?
-    warning_not_saved: não foi salvado corretamente
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Tarefas
-  label_filter_group_easy_wbs:
-    easy_issue_query: Tarefas
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/pt.yml b/plugins/easy_wbs/config/locales/pt.yml
deleted file mode 100644
index e40c485..0000000
--- a/plugins/easy_wbs/config/locales/pt.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-pt: 
diff --git a/plugins/easy_wbs/config/locales/ro.yml b/plugins/easy_wbs/config/locales/ro.yml
deleted file mode 100644
index 0df6ab3..0000000
--- a/plugins/easy_wbs/config/locales/ro.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-ro: 
diff --git a/plugins/easy_wbs/config/locales/ru.yml b/plugins/easy_wbs/config/locales/ru.yml
deleted file mode 100644
index 00e24ca..0000000
--- a/plugins/easy_wbs/config/locales/ru.yml
+++ /dev/null
@@ -1,172 +0,0 @@
----
-ru:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: Другие действия
-    button_add_child: Добавить дочерний элемент
-    button_add_parent: добавить родительский элемент
-    button_add_sibling: Добавить одноуровневый элемент
-    button_all_icons: Icons
-    button_collapse: Свернуть
-    button_collapse_all: Свернуть все
-    button_cut: Вырезать
-    button_display: Настройки
-    button_edit_data: Редактировать данные
-    button_expand: Развернуть
-    button_expand_all: Развернуть все
-    button_expand_collapse: Развернуть/Свернуть
-    button_legend: Легенда
-    button_one_side: одна сторона
-    button_paste: Вставить
-    button_project_menu: Easy WBS
-    button_redo: Переделать
-    button_remove_node: Удалить узел
-    button_show_links: Показать ссылки
-    button_undo: Отмена
-    edit_issue: Редактировать задачу
-    error_create: не может быть создан
-    error_delete: не может быть удален
-    error_update: не может быть обновлен
-    errors:
-      not_subtaskable: Задача "%{task_name}" не может быть подзадачей из-за настройки
-        трекера
-    free:
-      button_upgrade: Получить Полную версию
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: Цвет узла
-      feature_context_menu: Изменение свойств узла
-      feature_filtering: Фильтрация узлов
-      header_not_available: Доступно только в Полной версии
-      text_not_available: доступна в полной версии Easy WBS
-    hotkeys:
-      info_mac_metakey: На Mac OSX, Ctrl и клавиши Cmd могут быть использованы для
-        ярлыков отмеченные Ctrl - иногда браузеры блокируют некоторые комбинации клавиш.
-        Так, например, если Cmd + Space не работает в вашем браузере, попробуйте Ctrl
-        + Space.
-      keyboard:
-      - title: Манипуляция c узлом
-        hotkeys:
-        - hotkey: Enter
-          info: Добавить одноуровневый элемент
-        - hotkey: Shift+Enter
-          info: Добавить одноуровневый элемент выше или разрыв (при переименовании
-            узла)
-        - hotkey: Tab or Insert
-          info: Добавить дочерний элемент
-        - hotkey: Shift+Tab
-          info: Вставить родителя
-        - hotkey: Space
-          info: Переименовать узел
-        - hotkey: Shift+Space
-          info: Редактирование данных узла
-        - hotkey: Backspace or Delete
-          info: Удалить узел
-        - hotkey: Ctrl+Up/Down
-          info: Переместить узел вверх/вниз
-      - title: Редактирование
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: Сохранить
-        - hotkey: Ctrl+X or C
-          info: Вырезать
-        - hotkey: Ctrl+C or Y
-          info: Копировать
-        - hotkey: Ctrl+V or P
-          info: Вставить
-        - hotkey: U or Ctrl+Z
-          info: Отменить
-        - hotkey: R or Ctrl+Y or Ctrl+Shift+Z
-          info: Восстановить
-      - title: Выбор
-        hotkeys:
-        - hotkey: Arrow Keys
-          info: 'Выберете узел вверх/вниз/влево/вправо для выбора нужного '
-        - hotkey: Shift + Arrow keys
-          info: 'Добавление узла выше/ниже/слева/справа от выбранного (удобно при
-            выборе нескольких одноуровневых элементов) '
-        - hotkey: "{"
-          info: Выбор текущего узла и всего его поддерева
-        - hotkey: "["
-          info: Мульти-выбор только поддерева текущего узла (не самого узла)
-        - hotkey: "="
-          info: Выбор нескольких или всех одноуровневых элементов текущего узла (у
-            которых один и тот же родитель)
-        - hotkey: "."
-          info: Отмена мульти-выбора и выбор снова текущего узла
-        - hotkey: 1 - 9
-          info: Выбрать все узлы определенного уровня (например, 1, выбор всех узлов
-            первого уровня)
-      - title: 'Навигация и масштабирование '
-        hotkeys:
-        - hotkey: "/ or F"
-          info: Развернуть или свернуть узел (свернуть или развернуть дочерние элементы)
-        - hotkey: Ctrl + or Z
-          info: 'Увеличить масштаб '
-        - hotkey: Ctrl - or Shift Z
-          info: Уменьшить масштаб
-        - hotkey: Esc, 0, Ctrl+0
-          info: 'Сброс настроек карты – выбор корневого узла и перемещение его в центр
-            экрана '
-      mouse:
-      - action: Переместить карту
-        gesture: 'кликните на центральный узел и перетащите его, кликните на фон и
-          переместите его при помощи мышки или на тачпаде. '
-      - action: Выберете узел
-        gesture: коснитесь или кликните по нему
-      - action: 'Выбор нескольких узлов '
-        gesture: Shift+click
-      - action: Перемещение узлов
-        gesture: выберете узел и перемещайте его между одноуровневыми элементами,
-          переместите его ближе к нужной позиции. Черная стрелка поможет вам при смене
-          положения узла.
-      - action: Перемещение узла в ручную
-        gesture: Просто перетаскиваете узел пока не появиться черная стрелка. Для
-          принудительной смены позиции, даже когда появляется черная стрелка нажмите
-          Shift. Обратите внимание, что дочерние элементы основного узла можно перемещать
-          в любом направлении, а более низкого узлы располагаются только в одном направлении
-          относительно своего родителя.
-      - action: 'Переименование узла '
-        gesture: дважды кликните на узел
-      - action: Показать контекстное меню с операциями
-        gesture: Кликните Правой кнопкой мыши по узлу или двойное кликание по фону
-          узла, или долгое нажатие (на сенсорных устройствах)
-      - action: Изменение родителя у узла
-        gesture: притащите узел на другой узел (circular drops are not allowed, so
-          you can't drop a node on one of it's children or descendants)
-      - action: 'Открытие задачи в отдельном окне '
-        gesture: Alt+click
-      title_key_shortcuts: Работа с  клавиатурой
-      title_mouse_shortcuts: Мышь и операции с тачскрином
-      title_shortcuts: Клавиши быстрого доступа
-    info_all_saved: Все успешно сохранено
-    info_any_failed: Некоторые запросы отменены
-    info_no_permission: У вас нет необходимых прав делать это
-    label_color_by: 'Цвет по:'
-    label_go_to: Переход к
-    label_or: или
-    last_state_modal:
-      label_differencies: Различия на сервере
-      message_changed: имеют разные атрибуты (браузер => сервер) ({{changes}}
-      message_missing: отсутствует от родительского "{{from}}"
-      message_moved: является дочерним к "{{to}}", а не "{{from}}"
-      message_present: присутствует как дочерний к "{{to}}"
-      text_reload_appeal: Вы хотите перезагрузить состояние с сервера?
-      title: Последнее состояние клиента  WBS отличается от состояния сервера
-    reload_modal:
-      label_errors: Ошибки
-      text_reload_appeal: Вы хотите игнорировать несохраненные элементы и загрузить
-        данные с сервера?
-      title: WBS не удалось сохранить должным образом
-    stored_modal:
-      text_load_appeal: Хотите загрузить это? Вместо новой версии с сервера?
-      title: Было найдено несохраненное состояние
-    warning_delete_node: Вы действительно хотите удалить узел {{name}} и все его связи?
-    warning_not_saved: не сохранен должным образом
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: Задачи
-  label_filter_group_easy_wbs:
-    easy_issue_query: Задачи
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/locales/sk.yml b/plugins/easy_wbs/config/locales/sk.yml
deleted file mode 100644
index 354e579..0000000
--- a/plugins/easy_wbs/config/locales/sk.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-sk: 
diff --git a/plugins/easy_wbs/config/locales/sl.yml b/plugins/easy_wbs/config/locales/sl.yml
deleted file mode 100644
index 31bb26c..0000000
--- a/plugins/easy_wbs/config/locales/sl.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-sl: 
diff --git a/plugins/easy_wbs/config/locales/sq.yml b/plugins/easy_wbs/config/locales/sq.yml
deleted file mode 100644
index 9c092f0..0000000
--- a/plugins/easy_wbs/config/locales/sq.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-sq: 
diff --git a/plugins/easy_wbs/config/locales/sr-YU.yml b/plugins/easy_wbs/config/locales/sr-YU.yml
deleted file mode 100644
index 24e1796..0000000
--- a/plugins/easy_wbs/config/locales/sr-YU.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-sr-YU: 
diff --git a/plugins/easy_wbs/config/locales/sr.yml b/plugins/easy_wbs/config/locales/sr.yml
deleted file mode 100644
index 43a1014..0000000
--- a/plugins/easy_wbs/config/locales/sr.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-sr: 
diff --git a/plugins/easy_wbs/config/locales/sv.yml b/plugins/easy_wbs/config/locales/sv.yml
deleted file mode 100644
index ed425ea..0000000
--- a/plugins/easy_wbs/config/locales/sv.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-sv: 
diff --git a/plugins/easy_wbs/config/locales/th.yml b/plugins/easy_wbs/config/locales/th.yml
deleted file mode 100644
index 3596914..0000000
--- a/plugins/easy_wbs/config/locales/th.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-th: 
diff --git a/plugins/easy_wbs/config/locales/tr.yml b/plugins/easy_wbs/config/locales/tr.yml
deleted file mode 100644
index 3be79e7..0000000
--- a/plugins/easy_wbs/config/locales/tr.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-tr: 
diff --git a/plugins/easy_wbs/config/locales/zh-TW.yml b/plugins/easy_wbs/config/locales/zh-TW.yml
deleted file mode 100644
index 44cf0f8..0000000
--- a/plugins/easy_wbs/config/locales/zh-TW.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-zh-TW: 
diff --git a/plugins/easy_wbs/config/locales/zh.yml b/plugins/easy_wbs/config/locales/zh.yml
deleted file mode 100644
index 2622411..0000000
--- a/plugins/easy_wbs/config/locales/zh.yml
+++ /dev/null
@@ -1,155 +0,0 @@
----
-zh:
-  easy_query:
-    name:
-      easy_wbs_easy_issue_query: Easy WBS
-  easy_wbs:
-    button_actions: 其它操作
-    button_add_child: 新增子项
-    button_add_parent: 新增父项
-    button_add_sibling: 新建同级项(同一父项)
-    button_all_icons: 图标
-    button_collapse: 折叠
-    button_collapse_all: 全部折叠
-    button_cut: 剪切
-    button_display: 显示设置
-    button_edit_data: 修改资料
-    button_expand: 展开
-    button_expand_all: 全部展开
-    button_expand_collapse: 展开/ 折叠
-    button_legend: 图例
-    button_one_side: 一侧
-    button_paste: 粘贴
-    button_project_menu: Easy WBS
-    button_redo: 重做
-    button_remove_node: 删除节点
-    button_show_links: 显示连接关系
-    button_undo: 撤消
-    edit_issue: 编辑任务
-    error_create: 无法创建
-    error_delete: 无法删除
-    error_update: 无法更新
-    errors:
-      not_subtaskable: 由于跟踪器的设置, 任务"%{task_name}" 无法为其创建子任务.
-    free:
-      button_upgrade: 获取完全版
-      button_upgrade_href: https://www.easyredmine.com/redmine-wbs-plugin
-      feature_coloring: 按性质着色节点
-      feature_context_menu: 变更节点性质
-      feature_filtering: 按性质分类的过滤器节点
-      header_not_available: 仅在完全版中可用
-      text_not_available: 在Easy WBS完全版中可用
-    hotkeys:
-      info_mac_metakey: 在 Mac OSX系统, Ctrl 和 Cmd 键可以用于被浏览器屏蔽的一些CTRL键组合,  如, 在 Cmd+Space
-        被浏览器禁止时, 使用 Ctrl+Space.
-      keyboard:
-      - title: 结点操作
-        hotkeys:
-        - hotkey: Enter
-          info: 添加同级成员
-        - hotkey: Shift+Enter
-          info: 添加成员或换行(当重命名结点时)
-        - hotkey: Tab or Insert
-          info: 添加子项
-        - hotkey: Shift+Tab
-          info: 插入父项
-        - hotkey: Space
-          info: 重命名结点
-        - hotkey: Shift+Space
-          info: 编辑结点资料
-        - hotkey: Backspace or Delete
-          info: 移除结点
-        - hotkey: Ctrl+Up/Down
-          info: 上下移动结点
-      - title: 编辑
-        hotkeys:
-        - hotkey: Ctrl+S
-          info: 保存
-        - hotkey: Ctrl+X or C
-          info: 剪切
-        - hotkey: Ctrl+C or Y
-          info: 复制
-        - hotkey: Ctrl+V or P
-          info: 粘贴
-        - hotkey: U or Ctrl+Z
-          info: 撤消
-        - hotkey: R or Ctrl+Y or Ctrl+Shift+Z
-          info: 恢复
-      - title: 选择
-        hotkeys:
-        - hotkey: Arrow Keys
-          info: 上下左右移动当前选定的结点
-        - hotkey: Shift + Arrow keys
-          info: 在选定结点的上/下/左/右方添加一个新的结点(选定多个兄弟结点时特别有用)
-        - hotkey: "{"
-          info: 多选 -选定当前结点和其下方整个子树形上的成员
-        - hotkey: "["
-          info: 多选 -选定当前结点下方整个子树形上的成员 (不包括自身)
-        - hotkey: "="
-          info: 多选 -选定当前结点同一父项下所有同级成员
-        - hotkey: "."
-          info: 取消多选, 只选择当前结点自身
-        - hotkey: 1 - 9
-          info: 选择一个特别层级的所有结点(如1 表示选定所有1级的结点)
-      - title: 导航与视图
-        hotkeys:
-        - hotkey: "/ or F"
-          info: 展开或折叠结点(收起或打开其子项)
-        - hotkey: Ctrl + or Z
-          info: 放大
-        - hotkey: Ctrl - or Shift Z
-          info: 缩小
-        - hotkey: Esc, 0, Ctrl+0
-          info: 重置节点地图设置- 选定根结点并让其处于屏幕中心
-      mouse:
-      - action: 移动树形图
-        gesture: " 点并拖动中心结点, 点击并拖动背景或滚动方向条/触摸板."
-      - action: 选择结点
-        gesture: 点击此处
-      - action: 选择多个结点
-        gesture: Shift+click
-      - action: 重排结点
-        gesture: 拖动结点, 将其放在水平方向其重排后的大致位置. 重排时将会出现一个黑色的箭头.
-      - action: 手动放置结点
-        gesture: 拖动结点直到重排时的箭头消失. 如要在箭头未消失时强行放置结点, 须在拖动的同时 按住 Shift. 注意根结点下一级子结点可以在拖向任何方向,
-          但低级的子结点只能在其上级所关联的范围内拖动.
-      - action: 重命名结点
-        gesture: 双击结点
-      - action: 显示带操作的菜单环境
-        gesture: '右击结点 (用鼠标) 或双击背景, 或长按结点: 显示 (在触摸设备上)'
-      - action: 变更父结点
-        gesture: 将结点拖放到另一个结点 (不允许出偱环, 所以不允许将其放到其子结点或继承者上)
-      - action: 在另外的窗口打开项目或问题
-        gesture: Alt+左击
-      title_key_shortcuts: 键盘操作
-      title_mouse_shortcuts: 鼠标操作
-      title_shortcuts: 快捷键及操作一览表
-    info_all_saved: 已全部保存成功
-    info_any_failed: '其中一些请求失败:'
-    info_no_permission: 你没有足够的权限进行此操作
-    label_color_by: 按颜色
-    label_go_to: 转到
-    label_or: 或
-    last_state_modal:
-      label_differencies: 服务器上的差异
-      message_changed: 有不同的属性 (browser => server) ({{changes}})
-      message_missing: 从父项 "{{from}}"中丢失
-      message_moved: 是"{{to}}"的子项, 而不是"{{from}}"
-      message_present: 代表 "{{to}}"的子项
-      text_reload_appeal: 重新从服务器下载国别(状态)?
-      title: WBS中最新的客户国别(状态)与服务器中的不同
-    reload_modal:
-      label_errors: 错误
-      text_reload_appeal: 忽略未保存项目并从服务器重新下载数据?
-      title: WBS 没能完全保存
-    stored_modal:
-      text_load_appeal: 重新下载, 而不是从服务器刷新国别(状态)?
-      title: 不能找到未保存国别(状态)
-    warning_delete_node: 你真的想要删除节点 {{name}} 和这个节点下 全部子项?
-    warning_not_saved: 没有完全保存
-  heading_easy_wbs_issues: Easy WBS
-  label_filter_group_easy_wbs_easy_issue_query: 任务
-  label_filter_group_easy_wbs:
-    easy_issue_query: 任务
-  project_default_page:
-    easy_wbs: Easy WBS
diff --git a/plugins/easy_wbs/config/routes.rb b/plugins/easy_wbs/config/routes.rb
deleted file mode 100644
index e35baee..0000000
--- a/plugins/easy_wbs/config/routes.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-# Because of plugin deactivations
-if Redmine::Plugin.installed?(:easy_wbs)
-  resources :projects do
-    get 'easy_wbs', to: 'easy_wbs#index', as: 'easy_wbs_index'
-  end
-end
diff --git a/plugins/easy_wbs/init.rb b/plugins/easy_wbs/init.rb
deleted file mode 100644
index 2f8159a..0000000
--- a/plugins/easy_wbs/init.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-Redmine::Plugin.register :easy_wbs do
-  name 'Easy WBS plugin'
-  author 'Easy Software Ltd'
-  description 'new WBS tree hierarchy generator'
-  version '1.5'
-  url 'www.easyredmine.com'
-  author_url 'www.easysoftware.cz'
-
-  requires_redmine_plugin :easy_mindmup, version_or_higher: '1.0'
-
-  if Redmine::Plugin.installed?(:easy_extensions)
-    depends_on [:easy_mindmup]
-  end
-
-end
-
-unless Redmine::Plugin.installed?(:easy_extensions)
-  require_relative 'after_init'
-end
diff --git a/plugins/easy_wbs/lib/easy_wbs/easy_wbs.rb b/plugins/easy_wbs/lib/easy_wbs/easy_wbs.rb
deleted file mode 100644
index 7acb657..0000000
--- a/plugins/easy_wbs/lib/easy_wbs/easy_wbs.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-module EasyWbs
-
-  def self.easy_extensions?
-    Redmine::Plugin.installed?(:easy_extensions)
-  end
-
-end
diff --git a/plugins/easy_wbs/lib/easy_wbs/hooks.rb b/plugins/easy_wbs/lib/easy_wbs/hooks.rb
deleted file mode 100644
index 4265885..0000000
--- a/plugins/easy_wbs/lib/easy_wbs/hooks.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-module EasyWbs
-  class Hooks < Redmine::Hook::ViewListener
-
-    def helper_options_for_default_project_page(context={})
-      context[:default_pages] << 'easy_wbs' if context[:enabled_modules].include?('easy_wbs')
-    end
-
-  end
-end
diff --git a/plugins/easy_wbs/lib/easy_wbs/redmine_patch/controllers/queries_controller_patch.rb b/plugins/easy_wbs/lib/easy_wbs/redmine_patch/controllers/queries_controller_patch.rb
deleted file mode 100644
index ca8efa8..0000000
--- a/plugins/easy_wbs/lib/easy_wbs/redmine_patch/controllers/queries_controller_patch.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-module EasyWbs
-  module QueriesControllerPatch
-
-    def self.included(base)
-      base.prepend(InstanceMethods)
-    end
-
-    module InstanceMethods
-
-      # Redmine return only direct sublasses but
-      # Wbs query inherit from IssueQuery
-      def query_class
-        case params[:type]
-        when 'EasyWbs::IssueQuery'
-          EasyWbs::IssueQuery
-        else
-          super
-        end
-      end
-
-    end
-
-  end
-end
-
-RedmineExtensions::PatchManager.register_controller_patch 'QueriesController', 'EasyWbs::QueriesControllerPatch'
diff --git a/plugins/easy_wbs/lib/easy_wbs/redmine_patch/helpers/application_helper_patch.rb b/plugins/easy_wbs/lib/easy_wbs/redmine_patch/helpers/application_helper_patch.rb
deleted file mode 100644
index 6eb1ada..0000000
--- a/plugins/easy_wbs/lib/easy_wbs/redmine_patch/helpers/application_helper_patch.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-module EasyWbs
-  module ApplicationHelperPatch
-
-    def self.included(base)
-      base.class_eval do
-
-        def link_to_project_with_easy_wbs(project, options = {})
-          { controller: 'easy_wbs', action: 'index', project_id: project }
-        end
-
-      end
-    end
-
-  end
-end
-
-RedmineExtensions::PatchManager.register_helper_patch 'ApplicationHelper', 'EasyWbs::ApplicationHelperPatch'
diff --git a/plugins/easy_wbs/lib/easy_wbs/redmine_patch/models/project_patch.rb b/plugins/easy_wbs/lib/easy_wbs/redmine_patch/models/project_patch.rb
deleted file mode 100644
index 67467aa..0000000
--- a/plugins/easy_wbs/lib/easy_wbs/redmine_patch/models/project_patch.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-module EasyWbs
-  module ProjectPatch
-
-    def self.included(base)
-      base.send(:include, InstanceMethods) unless base.respond_to?(:assignable_users_including_all_subprojects)
-    end
-
-    module InstanceMethods
-
-      def assignable_users_including_all_subprojects
-        if Setting.display_subprojects_issues?
-          types = ['User']
-          types << 'Group' if Setting.issue_group_assignment?
-
-          @assignable_users_including_all_subprojects ||= Principal.
-            active.
-            joins(:members => :roles).
-            where(:type => types, :roles => {:assignable => true}).
-            where(:members => {:project_id => Project.where("lft >= ? AND rgt <= ?", lft, rgt)}).distinct.sorted
-        else
-          assignable_users
-        end
-      end
-
-    end
-
-  end
-end
-
-RedmineExtensions::PatchManager.register_model_patch 'Project', 'EasyWbs::ProjectPatch'
diff --git a/plugins/easy_wbs/spec/controllers/easy_wbs_controller_spec.rb b/plugins/easy_wbs/spec/controllers/easy_wbs_controller_spec.rb
deleted file mode 100644
index 1188d7f..0000000
--- a/plugins/easy_wbs/spec/controllers/easy_wbs_controller_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-RSpec.describe EasyWbsController, logged: :admin do
-
-  around(:each) do |example|
-    with_settings(rest_api_enabled: 1) { example.run }
-  end
-
-  context 'rest api' do
-    let(:project) { FactoryGirl.create(:project, add_modules: ['easy_wbs']) }
-
-    it 'enabled' do
-      get :index, project_id: project
-      expect(response).to be_success
-    end
-  end
-
-end
-
diff --git a/plugins/easy_wbs/spec/features/jasmine_spec.rb b/plugins/easy_wbs/spec/features/jasmine_spec.rb
deleted file mode 100644
index 6f26ae3..0000000
--- a/plugins/easy_wbs/spec/features/jasmine_spec.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-#
-# RSpec.feature 'Jasmine', logged: :admin, js: true, js_wait: true do
-#
-#   let(:superproject) {
-#     FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 3)
-#   }
-#
-#   around(:each) do |example|
-#     with_settings(rest_api_enabled: 1) { example.run }
-#   end
-#
-#   describe 'WBS' do
-#     it 'should not fail' do
-#       visit project_easy_wbs_index_path(superproject, run_jasmine_tests: true)
-#       wait_for_ajax
-#       expect(page).to have_css('.jasmine-bar')
-#       result = page.evaluate_script('ysy.pro.test.parseResult();')
-#       expect(result).to eq('success')
-#     end
-#   end
-# end
diff --git a/plugins/easy_wbs/spec/features/wbs_legend_spec.rb b/plugins/easy_wbs/spec/features/wbs_legend_spec.rb
deleted file mode 100644
index 0479c49..0000000
--- a/plugins/easy_wbs/spec/features/wbs_legend_spec.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-RSpec.feature 'legend', logged: :admin, js: true do
-
-  let(:project_1) {
-    FactoryGirl.create(:project, add_modules: ['easy_wbs'])
-  }
-  let(:priority_A) {
-    FactoryGirl.create(:issue_priority, name: 'Priority A')
-  }
-  let(:priority_B) {
-    FactoryGirl.create(:issue_priority, name: 'Priority B')
-  }
-  let(:priority_C) {
-    FactoryGirl.create(:issue_priority, name: 'Priority C')
-  }
-  let(:priority_D) {
-    FactoryGirl.create(:issue_priority, name: 'Priority D')
-  }
-  let(:issue_1) {
-    FactoryGirl.create(:issue, project_id: project_1.id, priority_id: priority_A.id)
-  }
-  let(:issue_2) {
-    FactoryGirl.create(:issue, project_id: project_1.id, priority_id: priority_B.id)
-  }
-  let(:issue_3) {
-    FactoryGirl.create(:issue, project_id: project_1.id, priority_id: priority_C.id)
-  }
-
-  around(:each) do |example|
-    with_settings(rest_api_enabled: 1) {
-      with_easy_settings(easy_wbs_no_sidebar: 1) { example.run }
-    }
-  end
-
-  it 'should show legend filled with priorities' do
-    issue_1
-    issue_2
-    issue_3
-    priority_D
-    visit project_easy_wbs_index_path(project_1)
-    wait_for_ajax
-    expect(page).to have_text(project_1.name)
-    page.find('.mindmup-color-select').first(:option, I18n.t(:field_priority)).select_option
-    legend = page.find('.mindmup-legend')
-    expect(legend).to have_text('Priority A')
-    expect(legend).to have_text('Priority B')
-    expect(legend).to have_text('Priority C')
-
-    # TODO: All priorities all visible
-    #
-    # expect(legend).not_to have_text('Priority D')
-    # within(legend) do
-    #   click_link(I18n.t(:label_more))
-    # end
-
-    expect(legend).to have_text('Priority D')
-  end
-end
diff --git a/plugins/easy_wbs/spec/features/wbs_no_sidebar_spec.rb b/plugins/easy_wbs/spec/features/wbs_no_sidebar_spec.rb
deleted file mode 100644
index e834ada..0000000
--- a/plugins/easy_wbs/spec/features/wbs_no_sidebar_spec.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-RSpec.feature 'sidebar', logged: :admin, js: true do
-  let(:superproject) {
-    FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 3)
-  }
-
-  around(:each) do |example|
-    with_settings(rest_api_enabled: 1) {
-      with_easy_settings(easy_wbs_no_sidebar: 1) { example.run }
-    }
-  end
-
-  it 'should be missing' do
-    visit project_easy_wbs_index_path(superproject)
-    wait_for_ajax
-    within('#container') do
-      expect(page).to have_text(superproject.name)
-    end
-    expect(page).not_to have_css('.mindmup-sidebar__container')
-  end
-end
diff --git a/plugins/easy_wbs/spec/features/wbs_sidebar_spec.rb b/plugins/easy_wbs/spec/features/wbs_sidebar_spec.rb
deleted file mode 100644
index 35eedd3..0000000
--- a/plugins/easy_wbs/spec/features/wbs_sidebar_spec.rb
+++ /dev/null
@@ -1,84 +0,0 @@
-require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-RSpec.feature 'sidebar', logged: :admin, js: true do
-  let(:priority_A) {
-    FactoryGirl.create(:issue_priority, name: 'Priority A')
-  }
-  let(:superproject) {
-    FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 0)
-  }
-  let(:superproject_issue) {
-    FactoryGirl.create(:issue, :project_id => superproject.id, priority_id: priority_A.id)
-  }
-  let(:sub_issue) {
-    FactoryGirl.create(:issue, :parent_issue_id => superproject_issue.id, :project_id => superproject.id,
-      description: "sub_issue of #{superproject_issue.subject} in project #{superproject.name}")
-  }
-
-  around(:each) do |example|
-    with_settings(rest_api_enabled: 1) { example.run }
-  end
-
-  it 'should show sidebar data for superproject_issue' do
-    expect(superproject_issue.priority_id).to eq(priority_A.id)
-    visit project_easy_wbs_index_path(superproject)
-    wait_for_ajax
-
-    menu=page.find('#wbs_menu')
-    sidebar_toggler=page.find('.mindmup-sidebar__toggler')
-    sidebar_toggler.click
-    scale_down=menu.find('.scaleDown')
-    scale_down.click
-    scale_down.click
-    container=page.find('#container')
-    sidebar_toggler.click
-
-    container.find('span', text: superproject_issue.subject).click
-
-    wait_for_ajax
-    within('.mindmup-sidebar__input__name') do
-      expect(find('input').value).to eq(superproject_issue.subject)
-    end
-    within('.mindmup-sidebar__attribute-group') do
-      priority_attribute = page.find('.mindmup-sidebar__attribute-label', text: I18n.t(:field_priority)).first(:xpath, './/..')
-      priority_select = priority_attribute.find('.mindmup-sidebar__attribute-form-field')
-      # priority_option_selector = "option[value='#{priority_select.value}']"
-      # binding.pry
-      expect(priority_select.find("option[value='#{priority_select.value}']")).to have_text(priority_A.name)
-    end
-
-  end
-  it 'should show sidebar data for sub_issue' do
-    sub_issue
-    visit project_easy_wbs_index_path(superproject)
-    wait_for_ajax
-
-    menu=page.find('#wbs_menu')
-    sidebar_toggler=page.find('.mindmup-sidebar__toggler')
-    sidebar_toggler.click
-    scale_down=menu.find('.scaleDown')
-    scale_down.click
-    scale_down.click
-    container=page.find('#container')
-    sidebar_toggler.click
-
-    within('#wbs_menu') do
-      page.find('a', text: I18n.t(:button_display, :scope => [:easy_wbs])).hover
-      click_link(I18n.t(:button_collapse_all, :scope => [:easy_wbs]))
-      click_link(I18n.t(:button_expand_all, :scope => [:easy_wbs]))
-    end
-
-    expect(container).to have_text(sub_issue.subject)
-    container.find('span', text: sub_issue.subject).click
-
-    wait_for_ajax
-
-    within('.mindmup-sidebar__input__name') do
-      expect(find('input').value).to eq(sub_issue.subject)
-    end
-    within('.mindmup-sidebar__attribute-group') do
-      expect(page).to have_text(sub_issue.description)
-    end
-
-  end
-end
diff --git a/plugins/easy_wbs/spec/features/wbs_tree_spec.rb b/plugins/easy_wbs/spec/features/wbs_tree_spec.rb
deleted file mode 100644
index 27baa2c..0000000
--- a/plugins/easy_wbs/spec/features/wbs_tree_spec.rb
+++ /dev/null
@@ -1,90 +0,0 @@
-require File.expand_path('../../../../easyproject/easy_plugins/easy_extensions/test/spec/spec_helper', __FILE__)
-
-RSpec.feature 'tree', logged: :admin, js: true do
-  let(:superproject) {
-    FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 0)
-  }
-  let(:subproject) {
-    FactoryGirl.create(:project, add_modules: ['easy_wbs'], number_of_issues: 0, parent_id: superproject.id)
-  }
-  let(:project_issues) {
-    FactoryGirl.create_list(:issue, 3, :project_id => superproject.id)
-  }
-  let(:subproject_issues) {
-    FactoryGirl.create_list(:issue, 3, :project_id => subproject.id)
-  }
-  let(:sub_issues) {
-    FactoryGirl.create_list(:issue, 3, :parent_issue_id => subproject_issues[0].id, :project_id => subproject.id)
-  }
-  let(:sub_sub_issues) {
-    FactoryGirl.create_list(:issue, 3, :parent_issue_id => sub_issues[0].id, :project_id => subproject.id)
-  }
-
-  around(:each) do |example|
-    with_settings(rest_api_enabled: 1) {
-      with_easy_settings(easy_wbs_no_sidebar: 1) { example.run }
-    }
-  end
-  it 'should show project items in correct tree' do
-    superproject
-    project_issues
-    subproject_issues
-    sub_issues
-    sub_sub_issues
-    visit project_easy_wbs_index_path(superproject)
-    wait_for_ajax
-
-    def sidebar_toggler
-      page.find('.mindmup-sidebar__toggler')
-    rescue
-      return nil
-    end
-
-    expect(page).to have_css('#container')
-    unless sidebar_toggler.nil?
-      sidebar_toggler.click
-    end
-    menu=page.find('#wbs_menu')
-    scale_down=menu.find('.scaleDown')
-    scale_down.click
-    scale_down.click
-    scale_down.click
-    container=page.find('#container')
-    #puts evaluate_script('ysy.loader.sourceData;').to_json
-    expect(container).to have_text(superproject.name)
-    project_issues.each do |issue|
-      expect(container).to have_text(issue.subject)
-    end
-    expect(container).to have_text(subproject.name)
-    subproject_issues.each do |issue|
-      expect(container).not_to have_text(issue.subject)
-    end
-
-    node = container.find('span', text: subproject.name).find(:xpath, '..')
-    node.find('.mapjs-collapsor').click
-    subproject_issues.each do |issue|
-      expect(container).to have_text(issue.subject)
-    end
-    sub_issues.each do |issue|
-      expect(container).not_to have_text(issue.subject)
-    end
-
-    sleep(0.5)
-    node = container.find('span', text: subproject_issues[0].subject).find(:xpath, '..')
-    node.find('.mapjs-collapsor').click
-    sub_issues.each do |issue|
-      expect(container).to have_text(issue.subject)
-    end
-    sub_sub_issues.each do |issue|
-      expect(container).not_to have_text(issue.subject)
-    end
-
-    sleep(0.5)
-    node = container.find('span', text: sub_issues[0].subject).find(:xpath, '..')
-    execute_script("easyMindMupClasses.MindMup.allMindMups[\"WBS classic\"].mapModel.selectNode(#{node[:id].split('_')[1]})")
-    node.find('.mapjs-collapsor').click
-    sub_sub_issues.each do |issue|
-      expect(container).to have_text(issue.subject)
-    end
-  end
-end
diff --git a/plugins/redmine_agile/Gemfile b/plugins/redmine_agile/Gemfile
deleted file mode 100644
index 58237bb..0000000
--- a/plugins/redmine_agile/Gemfile
+++ /dev/null
@@ -1 +0,0 @@
-gem "redmine_crm"
diff --git a/plugins/redmine_agile/README.rdoc b/plugins/redmine_agile/README.rdoc
deleted file mode 100644
index 320c8ea..0000000
--- a/plugins/redmine_agile/README.rdoc
+++ /dev/null
@@ -1,19 +0,0 @@
-= Agile plugin
-
-== Install
-
-* Copy redmine_agile plugin to {RAILS_APP}/plugins on your redmine path
-* Run bundle install --without development test RAILS_ENV=production
-* Run bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production
-
-== Uninstall
-
-<pre>
-bundle exec rake redmine:plugins NAME=redmine_agile VERSION=0 RAILS_ENV=production
-rm -r plugins/redmine_agile
-</pre>
-
-== Test
-
-bundle exec rake db:drop db:create db:migrate redmine:plugins RAILS_ENV=test
-bundle exec rake test TEST="plugins/redmine_agile/test/**/*_test.rb" RAILS_ENV=test
\ No newline at end of file
diff --git a/plugins/redmine_agile/app/controllers/agile_boards_controller.rb b/plugins/redmine_agile/app/controllers/agile_boards_controller.rb
deleted file mode 100644
index 2f04dd2..0000000
--- a/plugins/redmine_agile/app/controllers/agile_boards_controller.rb
+++ /dev/null
@@ -1,158 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileBoardsController < ApplicationController
-  unloadable
-
-  menu_item :agile
-
-  before_action :find_issue, only: [:update, :issue_tooltip, :inline_comment, :edit_issue, :update_issue, :agile_data]
-  before_action :find_optional_project, only: [
-                                               :index,
-                                               :create_issue,
-                                              ]
-  before_action :authorize, except: [:index, :edit_issue, :update_issue]
-
-  accept_api_auth :agile_data
-
-  helper :issues
-  helper :journals
-  helper :projects
-  include ProjectsHelper
-  helper :custom_fields
-  include CustomFieldsHelper
-  helper :issue_relations
-  include IssueRelationsHelper
-  helper :watchers
-  include WatchersHelper
-  helper :attachments
-  include AttachmentsHelper
-  helper :queries
-  include QueriesHelper
-  helper :repositories
-  include RepositoriesHelper
-  helper :sort
-  include SortHelper
-  include IssuesHelper
-  helper :timelog
-  include RedmineAgile::AgileHelper
-  helper :checklists if RedmineAgile.use_checklist?
-
-  def index
-    retrieve_agile_query
-    if @query.valid?
-      @issues = @query.issues
-      @issue_board = @query.issue_board
-      @board_columns = @query.board_statuses
-      @allowed_statuses = statuses_allowed_for_create
-
-      respond_to do |format|
-        format.html { render :template => 'agile_boards/index', :layout => !request.xhr? }
-        format.js
-      end
-    else
-      respond_to do |format|
-        format.html { render(:template => 'agile_boards/index', :layout => !request.xhr?) }
-        format.js
-      end
-    end
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-
-  def update
-    (render_403; return false) unless @issue.editable?
-    retrieve_agile_query_from_session
-    old_status = @issue.status
-    @issue.init_journal(User.current)
-    @issue.safe_attributes = auto_assign_on_move? ? params[:issue].merge(:assigned_to_id => User.current.id) : params[:issue]
-    checking_params = params.respond_to?(:to_unsafe_hash) ? params.to_unsafe_hash : params
-
-    saved = checking_params['issue'] && checking_params['issue'].inject(true) do |total, attribute|
-      if @issue.attributes.include?(attribute.first)
-        total &&= @issue.attributes[attribute.first].to_i == attribute.last.to_i
-      else
-        total &&= true
-      end
-    end
-    call_hook(:controller_agile_boards_update_before_save, { params: params, issue: @issue})
-    @update = true
-    if saved && @issue.save
-      call_hook(:controller_agile_boards_update_after_save, { :params => params, :issue => @issue})
-      AgileData.transaction do
-        Issue.eager_load(:agile_data).find(params[:positions].keys).each do |issue|
-          issue.agile_data.position = params[:positions][issue.id.to_s]['position']
-          issue.agile_data.save
-        end
-      end if params[:positions]
-
-      @inline_adding = params[:issue][:notes] || nil
-
-      respond_to do |format|
-        format.html { render(:partial => 'issue_card', :locals => {:issue => @issue}, :status => :ok, :layout => nil) }
-      end
-    else
-      respond_to do |format|
-        messages = @issue.errors.full_messages
-        messages = [l(:text_agile_move_not_possible)] if messages.empty?
-        format.html {
-          render json: messages, status: :unprocessable_entity, layout: nil
-        }
-      end
-    end
-  end
-
-  def issue_tooltip
-    render :partial => 'issue_tooltip'
-  end
-
-  def inline_comment
-    render 'inline_comment', :layout => nil
-  end
-
-  def agile_data
-    @agile_data = @issue.agile_data
-    return render_404 unless @agile_data
-
-    respond_to do |format|
-      format.any { head :ok }
-      format.api { }
-    end
-  end
-
-  private
-
-  def auto_assign_on_move?
-    RedmineAgile.auto_assign_on_move? && @issue.assigned_to.nil? &&
-      !params[:issue].keys.include?('assigned_to_id') &&
-      @issue.status_id != params[:issue]['status_id'].to_i
-  end
-
-  def statuses_allowed_for_create
-    issue = Issue.new(project: @project)
-    issue.tracker = issue_tracker(issue)
-    issue.new_statuses_allowed_to
-  end
-
-  def issue_tracker(issue)
-    return issue.allowed_target_trackers.first if issue.respond_to?(:allowed_target_trackers)
-    return @project.trackers.first if @project
-    nil
-  end
-end
diff --git a/plugins/redmine_agile/app/controllers/agile_charts_controller.rb b/plugins/redmine_agile/app/controllers/agile_charts_controller.rb
deleted file mode 100644
index 5fd0ebe..0000000
--- a/plugins/redmine_agile/app/controllers/agile_charts_controller.rb
+++ /dev/null
@@ -1,140 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileChartsController < ApplicationController
-  unloadable
-
-  menu_item :agile
-
-  before_action :find_optional_project, :only => [:show, :render_chart]
-  before_action :find_optional_version, :only => [:render_chart, :select_version_chart]
-
-  helper :issues
-  helper :journals
-  helper :projects
-  include ProjectsHelper
-  helper :custom_fields
-  include CustomFieldsHelper
-  helper :issue_relations
-  include IssueRelationsHelper
-  helper :watchers
-  include WatchersHelper
-  helper :attachments
-  include AttachmentsHelper
-  helper :queries
-  include QueriesHelper
-  helper :repositories
-  include RepositoriesHelper
-  helper :sort
-  include SortHelper
-  include IssuesHelper
-  helper :timelog
-  include RedmineAgile::AgileHelper
-
-  def show
-    retrieve_charts_query
-    @query.date_to ||= Date.today
-    @issues = @query.issues
-    respond_to do |format|
-      format.html
-    end
-  end
-
-  def render_chart
-    if @version
-      @issues = @version.fixed_issues
-      options = { date_from: @version.start_date,
-                  date_to: [@version.due_date,
-                            @issues.maximum(:due_date),
-                            @issues.maximum(:updated_on)].compact.max,
-                  due_date: @version.due_date || @issues.maximum(:due_date) || @issues.maximum(:updated_on),
-                  chart_unit: params[:chart_unit] }
-      @chart = params[:chart]
-    else
-      retrieve_charts_query
-      @issues = Issue.visible
-      @issues = @issues.joins(:fixed_version) if @query.filters.keys.include?('version_status')
-      @issues = @issues.where(@query.statement)
-      options = { date_from: @query.date_from,
-                  date_to: @query.date_to,
-                  interval_size: @query.interval_size,
-                  chart_unit: @query.chart_unit }
-    end
-    render_data(options)
-  end
-
-  def select_version_chart
-  end
-
-  private
-
-  def render_data(options = {})
-    agile_chart = RedmineAgile::Charts::AGILE_CHARTS[@chart]
-    data = agile_chart[:class].data(@issues, options) if agile_chart
-
-    if data
-      data[:chart] = @chart
-      data[:chart_unit] = options[:chart_unit]
-      return render json: data
-    end
-
-    raise ActiveRecord::RecordNotFound
-  end
-
-  def find_optional_version
-    @version = Version.find(params[:version_id]) if params[:version_id]
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-
-  def retrieve_charts_query
-    if params[:query_id].present?
-      @query = AgileChartsQuery.find(params[:query_id])
-      raise ::Unauthorized unless @query.visible?
-      @query.project = @project
-    elsif params[:set_filter] || session[:agile_charts_query].nil? || session[:agile_charts_query][:project_id] != (@project ? @project.id : nil)
-      # Give it a name, required to be valid
-      @query = AgileChartsQuery.new(:name => '_')
-      @query.project = @project
-      @query.build_from_params(params)
-      session[:agile_charts_query] = { project_id: @query.project_id,
-                                       filters: @query.filters,
-                                       group_by: @query.group_by,
-                                       column_names: @query.column_names,
-                                       date_from: @query.date_from,
-                                       date_to: @query.date_to,
-                                       interval_size: @query.interval_size,
-                                       chart: @query.chart,
-                                       chart_unit: @query.chart_unit }
-    else
-      # retrieve from session
-      @query = AgileChartsQuery.new(name: '_',
-                                    filters: session[:agile_charts_query][:filters] || session[:agile_query][:filters],
-                                    group_by: session[:agile_charts_query][:group_by],
-                                    column_names: session[:agile_charts_query][:column_names],
-                                    date_from: session[:agile_charts_query][:date_from],
-                                    date_to: session[:agile_charts_query][:date_to],
-                                    interval_size: session[:agile_charts_query][:interval_size],
-                                    chart: session[:agile_charts_query][:chart],
-                                    chart_unit: session[:agile_charts_query][:chart_unit])
-      @query.project = @project
-    end
-    @chart = params[:chart] || @query.chart
-  end
-end
diff --git a/plugins/redmine_agile/app/controllers/agile_charts_queries_controller.rb b/plugins/redmine_agile/app/controllers/agile_charts_queries_controller.rb
deleted file mode 100644
index 6dc6fa0..0000000
--- a/plugins/redmine_agile/app/controllers/agile_charts_queries_controller.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileChartsQueriesController < ApplicationController
-end
diff --git a/plugins/redmine_agile/app/controllers/agile_journal_details_controller.rb b/plugins/redmine_agile/app/controllers/agile_journal_details_controller.rb
deleted file mode 100644
index 3d2c6c0..0000000
--- a/plugins/redmine_agile/app/controllers/agile_journal_details_controller.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileJournalDetailsController < ApplicationController
-  unloadable
-
-  before_action :find_issue
-
-  helper :issues
-  helper :agile_support
-  include AgileSupportHelper
-
-  def done_ratio
-    @done_ratios = @issue.journals.map(&:details).flatten.select {|detail| 'done_ratio' == detail.prop_key }.sort_by {|a| a.journal.created_on }
-    @done_ratios.unshift(JournalDetail.new(:property => 'attr', :prop_key => 'done_ratio', :value => history_initial_value(@done_ratios) || @issue.done_ratio,
-                                           :journal => Journal.new(:user => @issue.author, :created_on => @issue.created_on)))
-  end
-
-  def status
-    @statuses_collector = AgileStatusesCollector.new(@issue)
-    @group = params[:group_by] if params[:group_by].present?
-
-    respond_to do |format|
-      format.html
-      format.csv  { send_data(issue_statuses_to_csv(@statuses_collector), type: 'text/csv; header=present', filename: "issue_#{@issue.id}_statuses.csv") }
-    end
-  end
-
-  def assignee
-    @assignees = @issue.journals.map(&:details).flatten.select {|detail| 'assigned_to_id' == detail.prop_key }.sort_by {|a| a.journal.created_on }
-    @assignees.unshift(JournalDetail.new(:property => 'attr', :prop_key => 'assigned_to_id', :value => history_initial_value(@assignees) || @issue.assigned_to_id,
-                                         :journal => Journal.new(:user => @issue.author, :created_on => @issue.created_on)))
-  end
-
-  def edit
-  end
-
-  def new
-  end
-
-  private
-
-  def find_issue
-    @issue = Issue.eager_load(:journals => :details).find(params[:issue_id])
-    raise Unauthorized unless @issue.visible?
-    @project = @issue.project
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-
-  def history_initial_value(journals)
-    return nil unless journals.present?
-    journals.first.old_value
-  end
-end
diff --git a/plugins/redmine_agile/app/helpers/agile_boards_helper.rb b/plugins/redmine_agile/app/helpers/agile_boards_helper.rb
deleted file mode 100644
index 5a11b6f..0000000
--- a/plugins/redmine_agile/app/helpers/agile_boards_helper.rb
+++ /dev/null
@@ -1,159 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module AgileBoardsHelper
-  def agile_color_class(issue, options={})
-    ''
-      end
-
-  def agile_user_color(user, options={})
-  end
-
-  def header_th(name, rowspan = 1, colspan = 1, leaf = nil)
-    th_attributes = {}
-    if leaf
-      # th_attributes[:style] = ""
-      th_attributes[:"data-column-id"] = leaf.id
-      issue_count = leaf.instance_variable_get("@issue_count") || 0
-      count_tag = " (#{content_tag(:span, issue_count.to_i, :class => 'count')})".html_safe
-      
-
-      # estimated hours total
-      story_points_count = leaf.instance_variable_get("@story_points") || 0
-      hours_count = leaf.instance_variable_get("@estimated_hours_sum") || 0
-      values = []
-      values << '%.2fh' % hours_count.to_f if hours_count > 0
-      values << "#{story_points_count}sp" if story_points_count > 0
-      if values.present?
-        hours_tag = content_tag(:span, values.join('/').html_safe, class: 'hours', title: l(:field_estimated_hours))
-      end
-    end
-    content_tag :th, h(name) + count_tag + hours_tag, th_attributes
-  end
-
-  def render_board_headers(columns)
-    "<tr>#{columns.map{|column| header_th(column.name, 1, 1, column)}.join}</tr>".html_safe
-      end
-
-  def color_by_name(name)
-    "##{"%06x" % (name.unpack('H*').first.hex % 0xffffff)}"
-  end
-
-  def render_board_fields_selection(query)
-    query.available_inline_columns.reject(&:frozen?).reject{ |c| c.name == :story_points && !RedmineAgile.use_story_points? }.map do |column|
-      label_tag('', check_box_tag('c[]', column.name, query.columns.include?(column)) + column.caption, :class => "floating" )
-    end.join(" ").html_safe
-  end
-
-  def render_board_fields_status(query)
-    available_statuses = Redmine::VERSION.to_s >= '3.4' && @project ? @project.rolled_up_statuses : IssueStatus.sorted
-    current_statuses = query.options[:f_status] || IssueStatus.where(:is_closed => false).pluck(:id).map(&:to_s)
-    wp = query.options[:wp] || {}
-    status_tags = available_statuses.map do |status|
-      label_tag('', check_box_tag('f_status[]', status.id, current_statuses.include?(status.id.to_s)
-      ) + status.to_s, :class => 'floating')
-    end.join(' ').html_safe
-    hidden_field_tag('f[]', 'status_id').html_safe +
-      hidden_field_tag('op[status_id]', "=").html_safe +
-      status_tags
-  end
-
-  def render_issue_card_hours(query, issue)
-    hours = []
-    hours << "%.2f" % issue.total_spent_hours.to_f if query.has_column_name?(:spent_hours) && issue.total_spent_hours > 0
-    hours << "%.2f" % issue.estimated_hours.to_f if query.has_column_name?(:estimated_hours) && issue.estimated_hours
-    hours = [hours.join('/') + "h"] unless hours.blank?
-    hours << "#{issue.story_points}sp" if RedmineAgile.use_story_points? && query.has_column_name?(:story_points) && issue.story_points
-
-    content_tag(:span, "(#{hours.join('/')})", :class => 'hours') unless hours.blank?
-  end
-
-  def agile_progress_bar(pcts, options={})
-    pcts = [pcts, pcts] unless pcts.is_a?(Array)
-    pcts = pcts.collect(&:round)
-    pcts[1] = pcts[1] - pcts[0]
-    pcts << (100 - pcts[1] - pcts[0])
-    width = options[:width] || '100px;'
-    legend = options[:legend] || ''
-    content_tag('table',
-      content_tag('tr',
-        (pcts[0] > 0 ? content_tag('td', '', :style => "width: #{pcts[0]}%;", :class => 'closed') : ''.html_safe) +
-        (pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'done') : ''.html_safe) +
-        (pcts[2] > 0 ? content_tag('td', '', :style => "width: #{pcts[2]}%;", :class => 'todo') : ''.html_safe) +
-        (legend ? content_tag('td', content_tag('p', legend, :class => 'percent'), :class => 'legend') : ''.html_safe)
-      ), :class => "progress progress-#{pcts[0]}", :style => "width: #{width};").html_safe
-  end
-
-  def issue_children(issue)
-    return unless issue.children.any?
-    content_tag :ul do
-      issue.children.select{ |x| x.visible? }.each do |child|
-        id = if @query.has_column_name?(:tracker) || @query.has_column_name?(:id) then "##{child.id}:&nbsp;" else '' end
-        concat "<li class='#{'task-closed' if child.closed?}'><a href='#{issue_path(child)}'>#{id}#{child.subject}</a></li>#{issue_children(child)}".html_safe
-      end
-    end
-  end
-
-  def time_in_state(distance=nil)
-    return "" if !distance || !(distance.is_a? Time)
-    distance = Time.now - distance
-    hours = distance/(3600)
-    return "#{I18n.t('datetime.distance_in_words.x_hours', :count => hours.to_i)}" if hours < 24
-    "#{I18n.t('datetime.distance_in_words.x_days', :count => (hours/24).to_i)}"
-  end
-
-  def class_for_closed_issue(issue, is_version_board)
-    return '' if !RedmineAgile.hide_closed_issues_data? && !is_version_board
-    return 'closed-issue' if issue.closed?
-    ''
-  end
-
-  def init_agile_tooltip_info(options={})
-    js_code = "function callGetToolTipInfo()
-      {
-        var url = '#{issue_tooltip_url}';
-        agileBoard.getToolTipInfo(this, url);
-      }
-      $('.tooltip').mouseenter(callGetToolTipInfo);
-    "
-    return js_code.html_safe if options[:only_code]
-    javascript_tag(js_code)
-  end
-
-  def estimated_value(issue)
-    return (issue.story_points || 0) if RedmineAgile.use_story_points?
-    issue.estimated_hours.to_f || 0
-  end
-
-  def estimated_time_value(query, issue)
-    issue.estimated_hours.to_f if query.has_column_name?(:estimated_hours)
-  end
-
-  def story_points_value(query, issue)
-    issue.story_points.to_f if query.has_column_name?(:story_points) && RedmineAgile.use_story_points?
-  end
-
-  def show_checklist?(issue)
-    RedmineAgile.use_checklist? && issue.checklists.any? && User.current.allowed_to?(:view_checklists, issue.project)
-  rescue
-    false
-  end
-end
diff --git a/plugins/redmine_agile/app/helpers/agile_charts_helper.rb b/plugins/redmine_agile/app/helpers/agile_charts_helper.rb
deleted file mode 100644
index 679997a..0000000
--- a/plugins/redmine_agile/app/helpers/agile_charts_helper.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module AgileChartsHelper
-  def render_agile_charts_breadcrumb
-    links = []
-    links << link_to(l(:label_project_all), project_id: nil, issue_id: nil)
-    links << link_to(h(@project), project_id: @project, issue_id: nil) if @project
-    if @version
-      links << @version.visible? ? link_to(@version.name, version_path(@version)) : @version.name
-    end
-    breadcrumb links
-  end
-end
diff --git a/plugins/redmine_agile/app/helpers/agile_support_helper.rb b/plugins/redmine_agile/app/helpers/agile_support_helper.rb
deleted file mode 100644
index aba1c22..0000000
--- a/plugins/redmine_agile/app/helpers/agile_support_helper.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module AgileSupportHelper
-  include ActionView::Helpers::DateHelper
-
-  # Returns a h2 tag and sets the html title with the given arguments
-  def title(*args)
-    strings = args.map do |arg|
-      if arg.is_a?(Array) && arg.size >= 2
-        link_to(*arg)
-      else
-        h(arg.to_s)
-      end
-    end
-    html_title args.reverse.map {|s| (s.is_a?(Array) ? s.first : s).to_s}
-    content_tag('h2', strings.join(' &#187; ').html_safe)
-  end
-
-  def event_duration(event, next_event)
-    end_time = next_event ? next_event.journal.created_on : Time.now
-    distance_of_time_in_words(end_time, event.journal.created_on).html_safe
-  end
-
-  def issue_statuses_to_csv(collector)
-    decimal_separator = l(:general_csv_decimal_separator)
-    encoding = 'utf-8'
-    export = FCSV.generate(:col_sep => l(:general_csv_separator)) do |csv|
-      headers = [ "#",
-                  l(:field_created_on, locale: :en),
-                  l(:field_status, locale: :en),
-                  l(:field_duration, locale: :en),
-                  l(:field_author, locale: :en),
-                  l(:field_assigned_to, locale: :en)
-                  ]
-      csv << headers.collect {|c| Redmine::CodesetUtil.from_utf8(c.to_s, encoding) }
-
-      collector.data.each_with_index do |data, index|
-        issue_status = IssueStatus.where(id: data.status_id).first
-        fields = [index + 1,
-                  format_time(data.journal.created_on),
-                  issue_status.name,
-                  distance_of_time_in_words(data.end_time, data.start_time),
-                  data.journal.user.name,
-                  Principal.where(id: data.assigned_to_id).first.try(:name)
-                  ]
-        csv << fields.collect { |c| Redmine::CodesetUtil.from_utf8(c.to_s, encoding) }
-      end
-    end
-    export
-  end
-end
diff --git a/plugins/redmine_agile/app/models/agile_charts_query.rb b/plugins/redmine_agile/app/models/agile_charts_query.rb
deleted file mode 100644
index c38ffff..0000000
--- a/plugins/redmine_agile/app/models/agile_charts_query.rb
+++ /dev/null
@@ -1,167 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileChartsQuery < AgileQuery
-  unloadable
-
-  validate :validate_query_dates
-
-  attr_writer :date_from, :date_to
-
-  def initialize(attributes = nil, *args)
-    super attributes
-    self.filters.delete('status_id')
-    self.filters['chart_period'] = { operator: 'm', values: [''] } unless has_filter?('chart_period')
-  end
-
-  self.operators_by_filter_type[:chart_period] = ['><', 'w', 'lw', 'l2w', 'm', 'lm', 'y']
-
-  def initialize_available_filters
-    super
-
-    add_available_filter 'chart_period', type: :date_past, name: l(:label_date)
-  end
-
-  def sprint_values
-    return [] unless project
-
-    project.shared_agile_sprints.available.map { |s| [s.to_s, s.id.to_s] }
-  end
-
-  def default_columns_names
-    @default_columns_names = [:id, :subject, :estimated_hours, :spent_hours, :done_ratio, :assigned_to]
-  end
-
-  def sql_for_chart_period_field(_field, _operator, _value)
-    '1=1'
-  end
-
-  def chart
-    @chart ||= RedmineAgile::Charts.valid_chart_name_by(options[:chart])
-  end
-
-  def chart=(arg)
-    options[:chart] = arg
-  end
-
-  def date_from
-    @date_from ||= chart_period[:from]
-  end
-
-  def date_to
-    @date_to ||= chart_period[:to]
-  end
-
-  def interval_size
-    if RedmineAgile::AgileChart::TIME_INTERVALS.include?(options[:interval_size])
-      options[:interval_size]
-    else
-      RedmineAgile::AgileChart::DAY_INTERVAL
-    end
-  end
-
-  def interval_size=(value)
-    options[:interval_size] = value
-  end
-
-  def build_from_params(params)
-    if params[:fields] || params[:f]
-      self.filters = {}.merge(chart_period_filter(params))
-      add_filters(params[:fields] || params[:f], params[:operators] || params[:op], params[:values] || params[:v])
-    else
-      available_filters.keys.each do |field|
-        add_short_filter(field, params[field]) if params[field]
-      end
-    end
-    self.group_by = params[:group_by] || (params[:query] && params[:query][:group_by])
-    self.column_names = params[:c] || (params[:query] && params[:query][:column_names])
-    self.date_from = params[:date_from] || (params[:query] && params[:query][:date_from])
-    self.date_to = params[:date_to] || (params[:query] && params[:query][:date_to])
-    self.chart = params[:chart] || (params[:query] && params[:query][:chart]) || params[:default_chart] || RedmineAgile.default_chart
-    self.interval_size = params[:interval_size] || (params[:query] && params[:query][:interval_size]) || RedmineAgile::AgileChart::DAY_INTERVAL
-    self.chart_unit = params[:chart_unit] || (params[:query] && params[:query][:chart_unit]) || RedmineAgile::Charts::UNIT_ISSUES
-
-    self
-  end
-
-  def condition_for_status
-    '1=1'
-  end
-
-  private
-
-  def chart_period_filter(params)
-    return {} if (params[:fields] || params[:f]).include?('chart_period')
-    { 'chart_period' => { operator: 'm', values: [''] } }
-  end
-
-  def validate_query_dates
-    if (self.date_from && self.date_to && self.date_from >= self.date_to)
-      errors.add(:base, l(:label_agile_chart_dates) + ' ' + l(:invalid, scope: 'activerecord.errors.messages'))
-    end
-  end
-
-  def db_timestamp_regex
-    /(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:.\d*))/
-  end
-
-  def chart_period
-    @chart_period ||= {
-      from: chart_period_statement.match("chart_period > '#{db_timestamp_regex}") { |m| Time.zone.parse(m[1]) },
-      to: chart_period_statement.match("chart_period <= '#{db_timestamp_regex}") { |m| Time.zone.parse(m[1]) }
-    }
-  end
-
-  def chart_period_statement
-    @chart_period_statement ||= build_chart_period_statement
-  end
-
-  def build_chart_period_statement
-    field = 'chart_period'
-    operator = filters[field][:operator]
-    values = filters[field][:values]
-    date = User.current.today
-
-    case operator
-    when 'w'
-      first_day_of_week = (Setting.start_of_week || l(:general_first_day_of_week)).to_i
-      day_of_week = date.cwday
-      days_ago = (day_of_week >= first_day_of_week ? day_of_week - first_day_of_week : day_of_week + 7 - first_day_of_week)
-      sql_for_field(field, '><t-', [days_ago], Issue.table_name, field)
-    when 'm'
-      days_ago = date - date.beginning_of_month
-      sql_for_field(field, '><t-', [days_ago], Issue.table_name, field)
-    when 'y'
-      days_ago = date - date.beginning_of_year
-      sql_for_field(field, '><t-', [days_ago], Issue.table_name, field)
-    when '><'
-      sql_for_field(field, '><', adjusted_values(values), Issue.table_name, field)
-    else
-      sql_for_field(field, operator, values, Issue.table_name, field)
-    end
-  end
-
-  def adjusted_values(values)
-    return values unless values.is_a?(Array)
-
-    from = values[0].present? ? Date.parse(values[0]) : Date.today
-    to = values[1].present? ? Date.parse(values[1]) : Date.today
-    [from.to_s, (to < from ? from : to).to_s]
-  end
-end
diff --git a/plugins/redmine_agile/app/models/agile_data.rb b/plugins/redmine_agile/app/models/agile_data.rb
deleted file mode 100644
index 87db483..0000000
--- a/plugins/redmine_agile/app/models/agile_data.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileData < ActiveRecord::Base
-  unloadable
-  belongs_to :issue
-
-  validates :story_points, :numericality => {:only_integer => true, :greater_than_or_equal_to => 0, :allow_nil => true, :message => :invalid}
-end
diff --git a/plugins/redmine_agile/app/models/agile_query.rb b/plugins/redmine_agile/app/models/agile_query.rb
deleted file mode 100644
index 1cb03d1..0000000
--- a/plugins/redmine_agile/app/models/agile_query.rb
+++ /dev/null
@@ -1,679 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileQuery < Query
-  include Redmine::SafeAttributes
-
-  attr_reader :truncated
-
-  self.queried_class = Issue
-  self.view_permission = :view_issues if Redmine::VERSION.to_s >= '3.4'
-
-  self.available_columns = [
-    QueryColumn.new(:id, sortable: "#{Issue.table_name}.id", default_order: 'desc', caption: :label_agile_issue_id),
-    QueryColumn.new(:project, groupable: "#{Issue.table_name}.project_id", sortable: "#{Project.table_name}.id"),
-    QueryColumn.new(:tracker, sortable: "#{Tracker.table_name}.position", groupable: true),
-    QueryColumn.new(:estimated_hours, sortable: "#{Issue.table_name}.estimated_hours"),
-    QueryColumn.new(:done_ratio, sortable: "#{Issue.table_name}.done_ratio"),
-    QueryColumn.new(:day_in_state, caption: :label_agile_day_in_state),
-    QueryColumn.new(:parent, groupable: "#{Issue.table_name}.parent_id", sortable: "#{AgileData.table_name}.position", caption: :field_parent_issue),
-    QueryColumn.new(:assigned_to, sortable: lambda { User.fields_for_order_statement }, groupable: "#{Issue.table_name}.assigned_to_id"),
-    QueryColumn.new(:relations, caption: :label_related_issues),
-    QueryColumn.new(:last_comment, caption: :label_agile_last_comment),
-    QueryColumn.new(:story_points, caption: :label_agile_story_points)
-  ]
-
-  self.available_columns << QueryColumn.new(:checklists, caption: :label_checklist_plural) if RedmineAgile.use_checklist?
-
-  def self.build_from_params(params, attributes = {})
-    new(attributes).build_from_params(params)
-  end
-
-  scope :visible, lambda { |*args|
-    user = args.shift || User.current
-    base = Project.allowed_to_condition(user, :view_issues, *args)
-    scope = eager_load(:project).where("#{table_name}.project_id IS NULL OR (#{base})")
-
-    if user.admin?
-      scope.where("#{table_name}.visibility <> ? OR #{table_name}.user_id = ?", VISIBILITY_PRIVATE, user.id)
-    elsif user.memberships.any?
-      scope.where("#{table_name}.visibility = ?" +
-        " OR (#{table_name}.visibility = ? AND #{table_name}.id IN (" +
-          "SELECT DISTINCT q.id FROM #{table_name} q" +
-          " INNER JOIN #{table_name_prefix}queries_roles#{table_name_suffix} qr on qr.query_id = q.id" +
-          " INNER JOIN #{MemberRole.table_name} mr ON mr.role_id = qr.role_id" +
-          " INNER JOIN #{Member.table_name} m ON m.id = mr.member_id AND m.user_id = ?" +
-          " WHERE q.project_id IS NULL OR q.project_id = m.project_id))" +
-        " OR #{table_name}.user_id = ?",
-        VISIBILITY_PUBLIC, VISIBILITY_ROLES, user.id, user.id)
-    elsif user.logged?
-      scope.where("#{table_name}.visibility = ? OR #{table_name}.user_id = ?", VISIBILITY_PUBLIC, user.id)
-    else
-      scope.where("#{table_name}.visibility = ?", VISIBILITY_PUBLIC)
-    end
-  }
-
-  def initialize(attributes = nil, *args)
-    super attributes
-    unless Redmine::VERSION.to_s > '2.4'
-      self.filters ||= { 'status_id' => { operator: '*', values: [''] } }
-    end
-    self.filters ||= {}
-    @truncated = false
-  end
-
-  def card_columns
-    self.inline_columns.select { |c| !%w(day_in_state tracker thumbnails description assigned_to done_ratio spent_hours estimated_hours project id sub_issues checklists last_comment story_points).include?(c.name.to_s) }
-  end
-
-  def visible?(user=User.current)
-    return true if user.admin?
-    return false unless project.nil? || user.allowed_to?(:view_issues, project)
-    case visibility
-    when VISIBILITY_PUBLIC
-      true
-    when VISIBILITY_ROLES
-      if project
-        (user.roles_for_project(project) & roles).any?
-      else
-        Member.where(user_id: user.id).joins(:roles).where(member_roles: {role_id: roles.map(&:id)}).any?
-      end
-    else
-      user == self.user
-    end
-  end
-
-  def is_private?
-    visibility == VISIBILITY_PRIVATE
-  end
-
-  def is_public?
-    !is_private?
-  end
-
-  def color_base
-  end
-
-  def color_base=(value)
-  end
-
-  def default_chart
-  end
-
-  def default_chart=(value)
-  end
-
-  def chart_unit
-    @chart_unit ||= RedmineAgile::Charts.valid_chart_unit_by(options[:chart], options[:chart_unit])
-  end
-
-  def chart_unit=(value)
-    options[:chart_unit] = value
-  end
-
-  def draw_relations
-    r = options[:draw_relations]
-    r.nil? || r == '1'
-  end
-
-  def draw_relations=(arg)
-    options[:draw_relations] = (arg == '0' ? '0' : nil)
-  end
-
-  def with_totals?
-  end
-
-  def build_from_params(params)
-    if params[:fields] || params[:f]
-      self.filters = {}
-      add_filters(params[:fields] || params[:f], params[:operators] || params[:op], params[:values] || params[:v])
-    else
-      available_filters.keys.each do |field|
-        add_short_filter(field, params[field]) if params[field]
-      end
-    end
-    self.group_by = params[:group_by] || (params[:query] && params[:query][:group_by])
-    self.column_names = params[:c] || (params[:query] && params[:query][:column_names])
-    self.color_base = params[:color_base] || (params[:query] && params[:query][:color_base])
-    self.draw_relations = params[:draw_relations] || (params[:query] && params[:query][:draw_relations])
-    if params[:f_status] || params[:wp]
-      self.options = options.merge({ :f_status => params[:f_status], :wp => params[:wp] })
-    end
-    self
-  end
-
-  def initialize_available_filters
-    principals = []
-    subprojects = []
-    versions = []
-    categories = []
-    issue_custom_fields = []
-
-    if project
-      principals += project.principals.sort
-      unless project.leaf?
-        subprojects = project.descendants.visible.all
-        principals += Principal.member_of(subprojects)
-      end
-      versions = project.shared_versions.all
-      categories = project.issue_categories.all
-      issue_custom_fields = project.all_issue_custom_fields
-    else
-      if all_projects.any?
-        principals += Principal.member_of(all_projects)
-      end
-      versions = Version.visible.where(sharing: 'system').all
-      issue_custom_fields = IssueCustomField.where(is_for_all: true)
-    end
-    principals.uniq!
-    principals.sort!
-    users = principals.select { |p| p.is_a?(User) }
-
-    unless Redmine::VERSION.to_s > '2.4'
-      add_available_filter 'status_id',
-        type: :list_status, values: IssueStatus.sorted.collect{|s| [s.name, s.id.to_s] }
-    end
-
-    if project.nil?
-      project_values = []
-      if User.current.logged? && User.current.memberships.any?
-        project_values << ["<< #{l(:label_my_projects).downcase} >>", "mine"]
-      end
-      project_values += all_projects_values
-      add_available_filter("project_id",
-        type: :list, values: project_values
-      ) unless project_values.empty?
-    end
-
-    add_available_filter "tracker_id",
-      type: :list, values: trackers.collect{|s| [s.name, s.id.to_s] }
-    add_available_filter "priority_id",
-      type: :list, values: IssuePriority.all.collect{|s| [s.name, s.id.to_s] }
-
-    author_values = []
-    author_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged?
-    author_values += users.collect{|s| [s.name, s.id.to_s] }
-    add_available_filter("author_id",
-      type: :list, values: author_values
-    ) unless author_values.empty?
-
-    assigned_to_values = []
-    assigned_to_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged?
-    assigned_to_values += (Setting.issue_group_assignment? ?
-                              principals : users).collect{|s| [s.name, s.id.to_s] }
-    add_available_filter("assigned_to_id",
-      type: :list_optional, values: assigned_to_values
-    ) unless assigned_to_values.empty?
-
-    group_values = Group.visible.all.collect {|g| [g.name, g.id.to_s] }
-    add_available_filter("member_of_group",
-      type: :list_optional, values: group_values
-    ) unless group_values.empty?
-
-    role_values = Role.givable.collect {|r| [r.name, r.id.to_s] }
-    add_available_filter("assigned_to_role",
-      type: :list_optional, values: role_values
-    ) unless role_values.empty?
-
-    if versions.any?
-      fixed_versions = []
-      fixed_versions << ["<< #{l(:label_current_version)} >>", 'current_version']
-      versions.sort.each{ |s| fixed_versions << ["#{s.project.name} - #{s.name}", s.id.to_s] }
-      add_available_filter "fixed_version_id",
-        type: :list_optional,
-        values: fixed_versions
-    end
-
-    if categories.any?
-      add_available_filter "category_id",
-        type: :list_optional,
-        values: categories.collect{|s| [s.name, s.id.to_s] }
-    end
-
-    add_available_filter "subject", type: :text
-    add_available_filter "created_on", type: :date_past
-    add_available_filter "updated_on", type: :date_past
-    add_available_filter "closed_on", type: :date_past
-    add_available_filter "start_date", type: :date
-    add_available_filter "due_date", type: :date
-    add_available_filter "estimated_hours", type: :float
-    add_available_filter "done_ratio", type: :integer
-    add_available_filter "parent_issue_id", type: :relation, values: all_projects_values
-    add_available_filter "has_sub_issues", type: :list,
-      values: [l(:general_text_yes), l(:general_text_no)],
-      label: :label_agile_has_sub_issues
-    add_available_filter "version_status", type: :list,
-      name: l("label_attribute_of_fixed_version", name: 'status'),
-      values: Version::VERSION_STATUSES.collect {|s| [l("version_status_#{s}"), s]}
-    add_available_filter "parent_issue_tracker_id", type: :list,
-      label: :label_agile_parent_issue_tracker_id,
-      values: Tracker.pluck(:name)
-
-    if subprojects.any?
-      add_available_filter "subproject_id",
-        type: :list_subprojects,
-        values: subprojects.collect{|s| [s.name, s.id.to_s] }
-    end
-
-
-    add_custom_fields_filters(issue_custom_fields)
-
-    add_associations_custom_fields_filters :project, :author, :assigned_to, :fixed_version
-
-    IssueRelation::TYPES.each do |relation_type, options|
-      add_available_filter relation_type, type: :relation, label: options[:name], values: all_projects_values
-    end
-
-    Tracker.disabled_core_fields(trackers).each { |field|
-      delete_available_filter field
-    }
-
-    add_available_filter "issue_id", type: :integer, label: :label_issue
-
-    if User.current.allowed_to?(:set_issues_private, nil, global: true) ||
-      User.current.allowed_to?(:set_own_issues_private, nil, global: true)
-      add_available_filter 'is_private', type: :list,
-                           values: [[l(:general_text_yes), '1'], [l(:general_text_no), '0']]
-    end
-
-    if User.current.logged?
-      add_available_filter 'watcher_id', type: :list, values: author_values
-    end
-  end
-
-  def available_columns
-    return @available_columns if @available_columns
-    @available_columns = self.class.available_columns.dup
-    @available_columns += (project ? project.all_issue_custom_fields : IssueCustomField).visible.collect { |cf| QueryCustomFieldColumn.new(cf) }
-
-    if User.current.allowed_to?(:view_time_entries, project, global: true)
-      index = nil
-      @available_columns.each_with_index { |column, i| index = i if column.name == :estimated_hours}
-      index = (index ? index + 1 : -1)
-      # insert the column after estimated_hours or at the end
-      @available_columns.insert index, QueryColumn.new(:spent_hours,
-        sortable: "COALESCE((SELECT SUM(hours) FROM #{TimeEntry.table_name} WHERE #{TimeEntry.table_name}.issue_id = #{Issue.table_name}.id), 0)",
-        default_order: 'desc',
-        caption: :label_spent_time
-      )
-    end
-
-    if User.current.allowed_to?(:set_issues_private, nil, global: true) ||
-      User.current.allowed_to?(:set_own_issues_private, nil, global: true)
-      @available_columns << QueryColumn.new(:is_private, sortable: "#{Issue.table_name}.is_private")
-    end
-
-    disabled_fields = Tracker.disabled_core_fields(trackers).map { |field| field.sub(/_id$/, '')}
-    @available_columns.reject! { |column|
-      disabled_fields.include?(column.name.to_s)
-    }
-
-    @available_columns.reject! { |column| column.name == :done_ratio} unless Issue.use_field_for_done_ratio?
-
-    @available_columns
-  end
-
-  def editable_by?(user)
-    return false unless user
-    # Admin can edit them all and regular users can edit their private queries
-    return true if user.admin? || (is_private? && user_id == user.id)
-    # Members can not edit public queries that are for all project (only admin is allowed to)
-    is_public? && !@is_for_all && user.allowed_to?(:manage_public_agile_queries, project, global: true)
-  end
-
-  def default_columns_names
-    @default_columns_names = RedmineAgile.default_columns.map(&:to_sym)
-  end
-
-  def has_column_name?(name)
-    columns.detect { |c| c.name == name}
-  end
-
-  def groupable_columns
-    groupable_method = Redmine::VERSION.to_s > '4.2' ? :groupable? : :groupable
-    available_columns.select { |c| c.public_send(groupable_method) && !c.is_a?(QueryCustomFieldColumn) }
-  end
-
-  def sql_for_issue_id_field(field, operator, value)
-    if operator == "="
-      # accepts a comma separated list of ids
-      ids = value.first.to_s.scan(/\d+/).map(&:to_i)
-      if ids.present?
-        "#{Issue.table_name}.id IN (#{ids.join(",")})"
-      else
-        "1=0"
-      end
-    else
-      sql_for_field("id", operator, value, Issue.table_name, "id")
-    end
-  end
-
-  def sql_for_watcher_id_field(field, operator, value)
-    db_table = Watcher.table_name
-    "#{Issue.table_name}.id #{ operator == '=' ? 'IN' : 'NOT IN' } (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND " +
-      sql_for_field(field, '=', value, db_table, 'user_id') + ')'
-  end
-
-  def sql_for_version_status_field(field, operator, value)
-    sql_for_field(field, operator, value, Version.table_name, "status")
-  end
-
-  def sql_for_has_sub_issues_field(field, operator, value)
-    cond = ''
-    cond = 'NOT' if operator == '=' && value.include?(I18n.t(:general_text_no))
-    cond = 'NOT' if operator == '!' && value.include?(I18n.t(:general_text_yes))
-    "( #{cond} EXISTS ( SELECT * FROM #{Issue.table_name} AS subissues WHERE subissues.parent_id = issues.id ) )"
-  end
-
-  def sql_for_parent_issue_id_field(field, operator, value, options={})
-    value = value.first.split(',') if value.is_a? Array
-    value = value.split(',') if value.is_a? String
-    sql = case operator
-          when '*', '!*', '=', '!'
-            sql_for_field(field, operator, value, queried_table_name, 'parent_id')
-          when '=p', '=!p', '!p'
-            op = (operator == '!p' ? 'NOT IN' : 'IN')
-            comp = (operator == '=!p' ? '<>' : '=')
-            "#{Issue.table_name}.parent_id #{op} (SELECT DISTINCT #{Issue.table_name}.id FROM #{Issue.table_name} WHERE #{Issue.table_name}.project_id #{comp} #{value.first.to_i})"
-          when '*o', '!o'
-            op = (operator == '!o' ? 'NOT IN' : 'IN')
-            "#{Issue.table_name}.parent_id #{op} (SELECT DISTINCT #{Issue.table_name}.id FROM #{Issue.table_name} WHERE #{Issue.table_name}.status_id IN (SELECT DISTINCT #{IssueStatus.table_name}.id FROM #{IssueStatus.table_name} WHERE is_closed=#{self.class.connection.quoted_false}))"
-          end
-    "(#{sql})"
-  end
-
-  def sql_for_parent_issue_tracker_id_field(field, operator, value)
-    cond = if operator == '=' then '' else 'NOT' end
-    selected_trackers_ids = Tracker.where(name: value).pluck(:id).join(',')
-    "( EXISTS (SELECT * FROM #{Issue.table_name} AS parents WHERE parents.tracker_id #{cond} IN (#{selected_trackers_ids}) AND parents.id = issues.parent_id ) )"
-  end
-
-  def sql_for_member_of_group_field(field, operator, value)
-    if operator == '*' # Any group
-      groups = Group.all
-      operator = '=' # Override the operator since we want to find by assigned_to
-    elsif operator == "!*"
-      groups = Group.all
-      operator = '!' # Override the operator since we want to find by assigned_to
-    else
-      groups = Group.where(:id => value).all
-    end
-    groups ||= []
-
-    members_of_groups = groups.inject([]) {|user_ids, group|
-      user_ids + group.user_ids + [group.id]
-    }.uniq.compact.sort.collect(&:to_s)
-
-    '(' + sql_for_field("assigned_to_id", operator, members_of_groups, Issue.table_name, "assigned_to_id", false) + ')'
-  end
-
-  def sql_for_assigned_to_role_field(field, operator, value)
-    case operator
-    when "*", "!*" # Member / Not member
-      sw = operator == "!*" ? 'NOT' : ''
-      nl = operator == "!*" ? "#{Issue.table_name}.assigned_to_id IS NULL OR" : ''
-      "(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (SELECT DISTINCT #{Member.table_name}.user_id FROM #{Member.table_name}" +
-        " WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id))"
-    when "=", "!"
-      role_cond = value.any? ?
-        "#{MemberRole.table_name}.role_id IN (" + value.collect{|val| "'#{self.class.connection.quote_string(val)}'"}.join(",") + ")" :
-        "1=0"
-
-      sw = operator == "!" ? 'NOT' : ''
-      nl = operator == "!" ? "#{Issue.table_name}.assigned_to_id IS NULL OR" : ''
-      "(#{nl} #{Issue.table_name}.assigned_to_id #{sw} IN (SELECT DISTINCT #{Member.table_name}.user_id FROM #{Member.table_name}, #{MemberRole.table_name}" +
-        " WHERE #{Member.table_name}.project_id = #{Issue.table_name}.project_id AND #{Member.table_name}.id = #{MemberRole.table_name}.member_id AND #{role_cond}))"
-    end
-  end
-
-  def sql_for_relations(field, operator, value, options={})
-    relation_options = IssueRelation::TYPES[field]
-    return relation_options unless relation_options
-
-    relation_type = field
-    join_column, target_join_column = "issue_from_id", "issue_to_id"
-    if relation_options[:reverse] || options[:reverse]
-      relation_type = relation_options[:reverse] || relation_type
-      join_column, target_join_column = target_join_column, join_column
-    end
-
-    sql = case operator
-      when "*", "!*"
-        op = (operator == "*" ? 'IN' : 'NOT IN')
-        "#{Issue.table_name}.id #{op} (SELECT DISTINCT #{IssueRelation.table_name}.#{join_column} FROM #{IssueRelation.table_name} WHERE #{IssueRelation.table_name}.relation_type = '#{self.class.connection.quote_string(relation_type)}')"
-      when "=", "!"
-        op = (operator == "=" ? 'IN' : 'NOT IN')
-        "#{Issue.table_name}.id #{op} (SELECT DISTINCT #{IssueRelation.table_name}.#{join_column} FROM #{IssueRelation.table_name} WHERE #{IssueRelation.table_name}.relation_type = '#{self.class.connection.quote_string(relation_type)}' AND #{IssueRelation.table_name}.#{target_join_column} = #{value.first.to_i})"
-      when "=p", "=!p", "!p"
-        op = (operator == "!p" ? 'NOT IN' : 'IN')
-        comp = (operator == "=!p" ? '<>' : '=')
-        "#{Issue.table_name}.id #{op} (SELECT DISTINCT #{IssueRelation.table_name}.#{join_column} FROM #{IssueRelation.table_name}, #{Issue.table_name} relissues WHERE #{IssueRelation.table_name}.relation_type = '#{self.class.connection.quote_string(relation_type)}' AND #{IssueRelation.table_name}.#{target_join_column} = relissues.id AND relissues.project_id #{comp} #{value.first.to_i})"
-      when "*o", "!o"
-        op = (operator == "!o" ? 'NOT IN' : 'IN')
-        "#{Issue.table_name}.id #{op} (SELECT DISTINCT #{IssueRelation.table_name}.#{join_column} FROM #{IssueRelation.table_name}, #{Issue.table_name} relissues WHERE #{IssueRelation.table_name}.relation_type = '#{self.class.connection.quote_string(relation_type)}' AND #{IssueRelation.table_name}.#{target_join_column} = relissues.id AND relissues.status_id IN (SELECT id FROM #{IssueStatus.table_name} WHERE is_closed=#{self.class.connection.quoted_false}))"
-      end
-
-    if relation_options[:sym] == field && !options[:reverse]
-      sqls = [sql, sql_for_relations(field, operator, value, :reverse => true)]
-      sql = sqls.join(["!", "!*", "!p"].include?(operator) ? " AND " : " OR ")
-    end
-    "(#{sql})"
-  end
-
-  IssueRelation::TYPES.keys.each do |relation_type|
-    alias_method "sql_for_#{relation_type}_field".to_sym, :sql_for_relations
-  end
-
-  def condition_for_status
-    if Redmine::VERSION.to_s > '2.4'
-      return { status_id: options[:f_status] || IssueStatus.where(is_closed: false) }
-    end
-    '1=1'
-  end
-
-  def issues(options={})
-    @issues_cache ||= {}
-    return @issues_cache[options.to_s] if @issues_cache.has_key?(options.to_s)
-
-    order_option = [group_by_sort_order, options[:order]].flatten.reject(&:blank?)
-    scope = options[:scope] ? options[:scope] : issue_scope
-    scope = scope.
-      joins(:status).
-      eager_load((options[:include] || []).uniq).
-      where(options[:conditions]).
-      order(order_option).
-      joins(joins_for_order_statement(order_option.join(','))).
-      limit(options[:limit]).
-      offset(options[:offset])
-
-    scope = scope.preload(:custom_values)
-    scope = scope.preload(:author) if has_column?(:author)
-
-    if has_column_name?(:checklists)
-      scope = scope.preload(:checklists)
-    end
-
-    if order_option.detect {|x| x.match("agile_data.position")}
-      scope = scope.sorted_by_rank
-    end
-
-    if has_column_name?(:last_comment)
-      journal_comment = Journal.joins(:issue).where("#{Journal.table_name}.notes <> ''").
-        where(:issues => {:id => issues_ids(scope)}).order("#{Journal.table_name}.id ASC")
-      @last_comments = {}
-
-      journal_comment.each do |lc|
-        @last_comments[lc.journalized_id] = lc
-      end
-    end
-
-    if has_column_name?(:day_in_state)
-      @journals_for_state = Journal.joins(:details).where(
-        :journals => {
-          :journalized_id => issues_ids(scope),
-          :journalized_type => "Issue"
-        },
-        :journal_details => {:prop_key => 'status_id'}).order("created_on DESC")
-    end
-
-    @issues_cache[options.to_s] = scope
-    rescue ::ActiveRecord::StatementInvalid => e
-      raise StatementInvalid.new(e.message)
-  end
-
-  def issues_ids(scope)
-    @issues_ids ||= scope.map(&:id)
-  end
-
-  def issues_paginator(issues, page = nil)
-    Redmine::Pagination::Paginator.new(issues.count, 20, page)
-  end
-
-  def journals_for_state
-    @journals_for_state
-  end
-
-  def issue_last_comment(issue, options = {})
-    return unless has_column_name?(:last_comment) || options[:inline_adding]
-    return issue.last_comment unless @last_comments
-    @last_comments[issue.id]
-  end
-
-  def board_statuses
-    if Redmine::VERSION.to_s > '2.4'
-      statuses =
-        if Redmine::VERSION.to_s >= '3.4' && project
-          project.rolled_up_statuses
-        else
-          IssueStatus.where(id: Tracker.eager_load(issues: [:status, :project, :fixed_version]).where(statement).map(&:issue_statuses).flatten.uniq.map(&:id))
-        end
-      status_filter_values = (options[:f_status] if options)
-      if status_filter_values
-        result_statuses = statuses.where(id: status_filter_values)
-      else
-        result_statuses = statuses.where(is_closed: false)
-      end
-      result_statuses.sorted.map do |s|
-        s.instance_variable_set "@issue_count", self.issue_count_by_status[s.id].to_i
-        if has_column_name?(:estimated_hours)
-          s.instance_variable_set "@estimated_hours_sum", self.issue_count_by_estimated_hours[s.id].to_f
-        end
-        if RedmineAgile.use_story_points? && has_column_name?(:story_points)
-          s.instance_variable_set "@story_points", self.issue_count_by_story_points[s.id].to_i
-        end
-        s
-      end
-    else
-      status_filter_operator = filters.fetch("status_id", {}).fetch(:operator, nil)
-      status_filter_values = filters.fetch("status_id", {}).fetch(:values, [])
-      statuses = IssueStatus.where(id: Tracker.eager_load(issues: [:status, :project, :fixed_version]).where(statement).map(&:issue_statuses).flatten.uniq.map(&:id))
-      result_statuses =
-        case status_filter_operator
-        when "o"
-          statuses.where(is_closed: false).sorted
-        when "c"
-          statuses.where(is_closed: true).sorted
-        when "="
-          statuses.where(id: status_filter_values).sorted
-        when "!"
-          statuses.where("#{IssueStatus.table_name}.id NOT IN (" + status_filter_values.map{|val| "'#{self.class.connection.quote_string(val)}'"}.join(",") + ")").sorted
-        else
-          statuses.sorted
-        end
-      result_statuses.map do |s|
-        s.instance_variable_set "@issue_count", self.issue_count_by_status[s.id].to_i
-        if has_column_name?(:estimated_hours)
-          s.instance_variable_set "@estimated_hours_sum", self.issue_count_by_estimated_hours[s.id].to_f
-        end
-        s
-      end
-      s
-    end
-  end
-
-  def issue_count_by_status
-    @issue_count_by_status ||= issue_scope.group("#{Issue.table_name}.status_id").count
-  end
-
-  def issue_count_by_estimated_hours
-    @issue_count_by_estimated_hours ||= issue_scope.group("#{Issue.table_name}.status_id").sum("estimated_hours")
-  end
-
-  def issue_count_by_story_points
-    @issue_count_by_story_points ||= issue_scope.group("#{Issue.table_name}.status_id").sum("#{AgileData.table_name}.story_points")
-  end
-
-  def issue_board
-    @truncated = RedmineAgile.board_items_limit <= issue_scope.count
-    all_issues = self.issues.limit(RedmineAgile.board_items_limit).sorted_by_rank
-    all_issues.group_by{|i| [i.status_id]}
-      end
-
-  def statement
-    if values_for('fixed_version_id') == ['current_version'] && project
-      version = current_version
-      # substitute id for current version
-      version ? filters['fixed_version_id'][:values] = [version.id.to_s] : filters.delete('fixed_version_id')
-    end
-    clauses = super
-    if version
-      # return string for correct value in a select on a form
-      filters['fixed_version_id'][:values] = ['current_version']
-    end
-    clauses
-  end
-
-  private
-
-  def base_agile_query_scope
-    Issue.visible
-         .eager_load(:status, :project, :assigned_to, :tracker, :priority, :category, :fixed_version, :agile_data)
-         .where(agile_projects)
-         .where(statement)
-         .where(condition_for_status)
-  end
-
-  def agile_projects
-    return '1=1' unless project
-
-    p_ids = [project.id]
-    p_ids += project.descendants.select { |sub| sub.module_enabled?('agile') }.map(&:id) if Setting.display_subprojects_issues?
-
-    "#{Project.table_name}.id IN (#{p_ids.join(',')})"
-  end
-
-  def issue_scope
-    return @agile_scope if @agile_scope
-
-    @agile_scope = base_agile_query_scope
-    @agile_scope
-  end
-
-  def project_statement
-      return super
-  end
-
-  def current_version
-    return @current_version if @current_version
-
-    versions = project.shared_versions.open.where("LOWER(#{Version.table_name}.name) NOT LIKE LOWER(?)", 'backlog')
-    versions -= versions.select(&:completed?).reverse
-    @current_version = versions.to_a.uniq.sort.first
-  end
-end
diff --git a/plugins/redmine_agile/app/models/agile_statuses_collector.rb b/plugins/redmine_agile/app/models/agile_statuses_collector.rb
deleted file mode 100644
index b2b0673..0000000
--- a/plugins/redmine_agile/app/models/agile_statuses_collector.rb
+++ /dev/null
@@ -1,104 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AgileStatusesCollector
-  def initialize(issue, options = {})
-    @issue = issue
-    @data = []
-    fill_data
-  end
-
-  def data
-    @data
-  end
-
-  def grouped_by(field)
-    return unless field
-
-    @data.group_by { |detail| detail.status_id } if field == 'status'
-  end
-
-  def object_for(field)
-    return unless field
-    return IssueStatus if field == 'status'
-  end
-
-  def issue_status_for(field, group_id)
-    return IssueStatus.where(id: group_id).first if field == 'status'
-  end
-
-  def group_total_for(field, group_data)
-    return unless field
-    (group_data.map(&:duration).sum / 1.days).to_i if field == 'status'
-  end
-
-  private
-
-  def fill_data
-    assignee_id = initial_assignee_id
-    @data << detail_object(initial_detail, initial_assignee_id, @issue.created_on)
-
-    issue_details.each_with_index do |detail, idx|
-      next if detail.prop_key != 'status_id'
-
-      assignee_id = assignee_for(detail) || assignee_id
-      @data << detail_object(detail, assignee_id, detail.journal.created_on)
-    end
-
-    @data.each_with_index do |detail, idx|
-      detail.end_time = @data[idx + 1] ? @data[idx + 1].journal.created_on : Time.now
-      detail.duration = detail.end_time - detail.start_time
-    end
-  end
-
-  def detail_object(detail, assignee_id, start_time)
-    OpenStruct.new(journal: detail.journal,
-                   status_id: detail.value,
-                   assigned_to_id: assignee_id,
-                   start_time: start_time,
-                   end_time: nil,
-                   duration: nil)
-  end
-
-  def assignee_for(detail)
-    detail.journal.details.detect { |detail| 'assigned_to_id' == detail.prop_key }.try(:value)
-  end
-
-  def issue_details
-    return @issue_details if @issue_details
-
-    @issue_details = @issue.journals.map(&:details).flatten.sort_by { |a| a.journal.created_on }
-    @issue_details.unshift()
-  end
-
-  def first_status_detail
-    issue_details.detect { |d| d.prop_key == 'status_id' }
-  end
-
-  def initial_assignee_id
-    issue_details.detect { |detail| 'assigned_to_id' == detail.prop_key }.try(:old_value) || @issue.assigned_to_id
-  end
-
-  def initial_detail
-    JournalDetail.new(property: 'attr',
-                      prop_key: 'status_id',
-                      value: first_status_detail.try(:old_value) || @issue.status.id,
-                      journal: Journal.new(user: @issue.author, created_on: @issue.created_on))
-  end
-end
diff --git a/plugins/redmine_agile/app/views/agile_boards/_add_issue_card.html.erb b/plugins/redmine_agile/app/views/agile_boards/_add_issue_card.html.erb
deleted file mode 100644
index 8b13789..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_add_issue_card.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/plugins/redmine_agile/app/views/agile_boards/_backlog_column.html.erb b/plugins/redmine_agile/app/views/agile_boards/_backlog_column.html.erb
deleted file mode 100644
index c47610a..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_backlog_column.html.erb
+++ /dev/null
@@ -1,15 +0,0 @@
-<td class="issue-backlog-col" rowspan="<%= rowspan %>">
-  <div class="issue-backlog-search">
-    <%= text_field_tag('search', '', placeholder: l(:label_agile_board_search_backlog_issues)) %>
-    <%= javascript_tag("observeIssueSearchfield('search', '#{backlog_autocomplete_agile_boards_path(project_id: query.project.try(:id))}');") %>
-  </div>
-  <div class="backlog-issues issue-status-col <%= 'empty' if @backlog_issues.empty? %>" data-id="">
-    <% paginator = query.issues_paginator(@backlog_issues, params[:page]) %>
-      <%= render partial: 'issues_list', locals: { column_id: nil,
-                                                  project: query.project,
-                                                  issues: @backlog_issues.offset(paginator.offset).limit(paginator.per_page).all,
-                                                  more_url: paginator.next_page ? backlog_load_more_agile_boards_path(project_id: query.project.try(:id),
-                                                                                                q: params[:q],
-                                                                                                page: paginator.next_page) : nil } %>
-  </div>
-</td>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_board.html.erb b/plugins/redmine_agile/app/views/agile_boards/_board.html.erb
deleted file mode 100644
index c60d1b5..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_board.html.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-
-<%= form_tag({}) do -%>
-  <%= hidden_field_tag 'back_url', url_for(params.respond_to?(:to_unsafe_hash) ? params.to_unsafe_hash : params) %>
-  <%= hidden_field_tag 'project_id', @project.id if @project %>
-  <div class="agile-board autoscroll">
-    <div class="flash error" style="display: none;" id="agile-board-errors">
-    </div>
-    <table class="list issues-board <%= 'status-colors' if RedmineAgile.status_colors? %> <%= 'minimize-closed' if RedmineAgile.minimize_closed? %>">
-    <div class='lock'> </div>
-      <thead>
-      <%= render_board_headers(@board_columns) %>
-      </thead>
-        <tr style="text-align: center;white-space: nowrap;" class="issue <%= cycle('odd', 'even') %>">
-        <% @board_columns.each do |column| %>
-          <% column_issues = @issue_board[[column.id]] || [] %>
-            <td class="issue-status-col <%= 'closed' if column.is_closed? %> <%= 'collapse' if RedmineAgile.hide_closed_issues_data? %> <%= column.wp_class if column.respond_to?(:wp_class) %> <%= 'empty' if column_issues.empty? %>" data-id="<%= column.id %>">
-              <% column_issues.each do |issue| %>
-                <%= render :partial => 'issue_card', :locals => {:issue => issue} %>
-              <% end if @issue_board[[column.id]] %>
-              <%= render(:partial => 'add_issue_card') if @allowed_statuses.include?(column) && !column.is_closed? %>
-            </td>
-          <% end %>
-        </tr>
-    </table>
-</div>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_form.html.erb b/plugins/redmine_agile/app/views/agile_boards/_form.html.erb
deleted file mode 100644
index 8b13789..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_form.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/plugins/redmine_agile/app/views/agile_boards/_index.html.erb b/plugins/redmine_agile/app/views/agile_boards/_index.html.erb
deleted file mode 100644
index 8afe358..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_index.html.erb
+++ /dev/null
@@ -1,98 +0,0 @@
-<div class="contextual">
-  <%= link_to l(:label_agile_charts), @project ? project_agile_charts_path(project_id: @project) : agile_charts_path, class: 'icon icon-stats agile_charts_link', onclick: 'chartLinkGenerator();' %>
-  <% if !@query.new_record? && @query.editable_by?(User.current) %>
-    <%= link_to l(:button_edit), edit_agile_query_path(@query), class: 'icon icon-edit' %>
-    <%= delete_link agile_query_path(@query) %>
-  <% end %>
-</div>
-
-<% html_title(@query.new_record? ? l(:label_agile_board) : @query.name) %>
-<%= form_tag({ controller: 'agile_boards', action: 'index', project_id: @project }, method: :get, id: 'query_form', onsubmit: 'DisableNullFields()') do %>
-  <h2>
-    <%= @query.new_record? ? l(:label_agile_board) : h(@query.name) %>
-      <span class="live_search">
-        <%= text_field_tag(:search, '', :id => 'agile_live_search', :class => 'live_search_field', :placeholder => l(:label_cards_search)) %>
-      </span>
-  </h2>
-
-  <div id="query_form_with_buttons" class="hide-when-print">
-    <%= hidden_field_tag 'set_filter', '1' %>
-    <div id="query_form_content">
-      <fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
-        <legend class="icon icon-<%= @query.new_record? ? 'expended' : 'collapsed' %>" onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
-        <div style="<%= @query.new_record? ? "" : "display: none;" %>">
-          <%= render :partial => 'queries/filters', :locals => {:query => @query} %>
-        </div>
-      </fieldset>
-      <fieldset id="options" class="collapsible collapsed">
-        <legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_options) %></legend>
-        <div style="display: none;">
-          <table class="options agile_options">
-            <tr>
-              <td colspan="2">
-                <fieldset class="card-fields">
-                  <legend><%= l(:label_agile_board_columns) %></legend>
-                  <%= render_board_fields_status(@query) %>
-                </fieldset>
-            </tr>
-            <tr>
-              <td colspan="2">
-                <fieldset class="card-fields">
-                  <legend><%= l(:label_agile_fields) %></legend>
-                  <%= render_board_fields_selection(@query) %>
-                </fieldset>
-              </td>
-            </tr>
-          </table>
-        </div>
-      </fieldset>
-    </div>
-    <p class="buttons">
-    <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
-    <%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload'  %>
-    </p>
-
-  </div>
-<% end %>
-
-<%= error_messages_for 'query' %>
-<% if @query.valid? %>
-  <% empty_data = @issues.empty? || @board_columns.empty? %>
-  <% if empty_data %>
-    <p class="nodata"><%= l(:label_no_data) %></p>
-  <% else %>
-    <% if @query.truncated %>
-      <p class="warning"><%= l(:label_agile_board_truncated, :max => RedmineAgile.board_items_limit) %></p>
-    <% end %>
-    <%= render :partial => 'board' %>
-  <% end %>
-<% end %>
-
-<% content_for :sidebar do %>
- 
-  <%= render :partial => 'upgrade_to_pro' %>
- 
-  <%= render :partial => 'issues_links' %>
-  <% if @project && @project.assignable_users.any? %>
-    <%= render :partial => 'members' %>
-  <% end %>
-  <%= render :partial => 'agile_charts/agile_charts' %>
-<% end %>
-
-<% html_title l(:label_agile_board) %>
-<% content_for :header_tags do %>
-  <%= javascript_include_tag "redmine_agile", plugin: 'redmine_agile' %>
-  <%= javascript_include_tag "jquery.ui.touch-punch.js", plugin: 'redmine_agile' %>
-  <%= stylesheet_link_tag 'context_menu' %>
-  <%= stylesheet_link_tag "redmine_agile.css", plugin: "redmine_agile", media: "print" %>
-<% end %>
-<% if User.current.allowed_to?(:edit_issues, @project, global: true) %>
-  <script type="text/javascript">
-    var agileBoard = new AgileBoard({
-      project_id: '<%= @project && @project.id %>',
-      update_agile_board_path: '<%= escape_javascript update_agile_board_path %>',
-      issues_path: '<%= escape_javascript issues_path %>',
-      create_issue_path: '<%= escape_javascript(agile_create_issue_path(project_id: @project)) if @project %>'
-    });
-  </script>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_issue_card.html.erb b/plugins/redmine_agile/app/views/agile_boards/_issue_card.html.erb
deleted file mode 100644
index 9dc7ec1..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_issue_card.html.erb
+++ /dev/null
@@ -1,149 +0,0 @@
-<div class="issue-card hascontextmenu <%= agile_color_class(issue, :color_base => @query.respond_to?(:color_base) && @query.color_base) %> <%= class_for_closed_issue(issue, @version_board) %>"
-     data-id="<%= issue.id %>"
-     data-estimated-hours="<%= estimated_time_value(@query, issue).to_f %>"
-     data-story-points="<%= story_points_value(@query, issue).to_f %>"
-     style="<%= agile_user_color(issue.assigned_to, :color_base => @query.respond_to?(:color_base) && @query.color_base) if issue.assigned_to %>">
-
-  <% if issue.closed? && RedmineAgile.hide_closed_issues_data? && !@version_board %>
-      <span class="fields">
-         <div class="tooltip">
-           <p class="issue-id <%= 'without-tracker' if @query.has_column_name?(:tracker).blank? %>">
-               <strong><%= link_to "#{'#' + issue.id.to_s}", issue_path(issue) %></strong>
-            </p>
-            <span class="tip">
-            </span>
-          </div>
-      </span>
-    <% else %>
-      <span class="fields">
-          <% if User.current.allowed_to?(:edit_issues, @project, :global => true) && !@version_board %>
-            <div class="quick-edit-card">
-              <%= link_to image_tag("/images/comment.png", alt: 'Comment'), '#', onclick: "showInlineComment(this, '#{j(agile_inline_comment_path(:id => issue))}'); return false;", title: l(:label_comment_add), class: 'add-comment' if RedmineAgile.allow_inline_comments? %>
-            </div>
-          <% end %>
-          <% if @query.has_column_name?(:project) %>
-            <p class="project">
-              <%= issue.project.name %>
-            </p>
-          <% end %>
-          <p class="issue-id <%= 'without-tracker' if @query.has_column_name?(:tracker).blank? %>">
-            <%= check_box_tag("ids[]", issue.id, false, :id => nil, :class => 'checkbox') %>
-            <% if @query.has_column_name?(:tracker) %>
-              <strong><%= issue_heading(issue) %></strong>
-            <% end %>
-            <%= render_issue_card_hours(@query, issue) %>
-          </p>
-          <p class="name" ><%= link_to "#{'#' + issue.id.to_s + ': ' if @query.has_column_name?(:id) && @query.has_column_name?(:tracker).blank?}#{issue.subject.truncate(100)}", issue_path(issue) %></p>
-          <p class="attributes">
-            <% @query.card_columns.select{|c| !c.value(issue).blank? }.each do |column| %>
-              <b><%= column.caption %></b>: <%= column_content(column, issue) %> <br>
-            <% end %>
-          </p>
-
-          <% if @query.has_column_name?(:day_in_state) %>
-            <p class="attributes">
-                <b><%= " #{I18n.t('label_agile_day_in_state')}: " %></b>
-                <% find_change_state = false %>
-                <% if @query.journals_for_state %>
-                  <% @query.journals_for_state.each do |journal| %>
-                    <% if journal.journalized_id == issue.id %>
-                      <%= time_in_state(journal.created_on) %>
-                      <% find_change_state = true %>
-                      <% break %>
-                    <% end %>
-                  <% end %>
-                <% end %>
-
-                <% if !find_change_state %>
-                  <%= time_in_state(issue.day_in_state) %>
-                <% end %>
-            </p>
-          <% end %>
-
-          <% if @query.has_column_name?(:description) && !issue.description.blank? %>
-            <em class="info description">
-              <%= issue.description.truncate(200) %>
-            </em>
-          <% end %>
-          <% if @query.has_column_name?(:sub_issues) && issue.sub_issues.any? %>
-            <div class='sub-issues'>
-              <%= issue_children(issue) %>
-            </div>
-          <% end %>
-          <% if @query.has_column_name?(:thumbnails)  %>
-            <% image = issue.attachments.select(&:thumbnailable?).last %>
-            <% if image %>
-            <div class="thumbnail" style="background-image: url('<%= thumbnail_path(image, :size => 250) %>')">
-            </div>
-            <% end %>
-          <% end %>
-          <!-- Check list -->
-          <% if @query.has_column_name?(:checklists) && show_checklist?(issue) %>
-            <div class="checklist" id="checklist_<%= issue.id %>">
-              <ul id="checklist_items">
-                <% issue.checklists.each do |checklist_item| %>
-                  <%= render :partial => 'checklists/checklist_item', :object => checklist_item %>
-                <% end %>
-              </ul>
-              <script type="text/javascript">
-                $("#checklist_<%= issue.id %>").checklist();
-              </script>
-            </div>
-          <% end %>
-          <% if @query.has_column_name?(:assigned_to) %>
-            <p class="info assigned-user" style="<%= 'display: none;' unless issue.assigned_to %>">
-              <span class="user"><%= avatar(issue.assigned_to, :size => "14").to_s.html_safe + " " + link_to_user(issue.assigned_to) if issue.assigned_to %></span>
-            </p>
-          <% end %>
-
-          <% if @query.has_column_name?(:done_ratio) %>
-            <%= progress_bar(issue.done_ratio, :width => '100%') %>
-          <% end %>
-
-          <% if (last_comment = @query.issue_last_comment(issue, :inline_adding => @inline_adding)) %>
-            <em class="info description last_comment" title='<%= last_comment.user.to_s + " " + format_date(last_comment.created_on) %>'>
-              <span class="icon icon-comment last-comment">
-                <%= last_comment.notes.truncate(100) %>
-              </span>
-            </em>
-          <% end %>
-          <% if User.current.allowed_to?(:edit_issues, @project, :global => true) && RedmineAgile.allow_inline_comments? %>
-            <div class="quick-comment">
-            </div>
-          <% end %>
-      </span>
-    <% end %>
-</div>
-<% if User.current.allowed_to?(:edit_issues, @project, :global => true) && @update %>
-  <script type="text/javascript">
-
-    document.onkeydown = function(evt) {
-        evt = evt || window.event;
-        if (evt.keyCode == 27) {
-            $('html.agile-board-fullscreen').removeClass('agile-board-fullscreen');
-            $(".issue-card").addClass("hascontextmenu");
-            saveFullScreenState();
-        }
-    };
-
-    $("table.issues-board thead").html("<%=escape_javascript render_board_headers(@query.board_statuses) %>");
-  </script>
-
-  <% if @error_msg %>
-    <script type="text/javascript">
-      setErrorMessage("<%= @error_msg%>", 'warning');
-    </script>
-  <% end %>
-
-  <% if @update && !@version_board %>
-    <script type="text/javascript">
-      $("table.issues-board thead").html("<%=escape_javascript render_board_headers(@query.board_statuses) %>");
-    </script>
-    <% if Redmine::VERSION.to_s > '2.4' %>
-      <script type="text/javascript">
-        agileBoard.initDroppable();
-      </script>
-    <% end %>
-  <% end %>
-  <%= init_agile_tooltip_info %>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_issue_tooltip.html.erb b/plugins/redmine_agile/app/views/agile_boards/_issue_tooltip.html.erb
deleted file mode 100644
index 6228bee..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_issue_tooltip.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<%= render_issue_tooltip @issue %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_issues_links.html.erb b/plugins/redmine_agile/app/views/agile_boards/_issues_links.html.erb
deleted file mode 100644
index d25a0ff..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_issues_links.html.erb
+++ /dev/null
@@ -1,17 +0,0 @@
-<h3><%= l(:label_issue_plural) %></h3>
-
-<ul>
-  <li><%= link_to l(:label_issue_view_all), _project_issues_path(@project, :set_filter => 1) %></li>
-  <% if @project %>
-    <li><%= link_to l(:field_summary), project_issues_report_path(@project) %></li>
-  <% end %>
-  <% if User.current.allowed_to?(:view_calendar, @project, :global => true) %>
-    <li><%= link_to l(:label_calendar), _project_calendar_path(@project) %></li>
-  <% end %>
-  <% if User.current.allowed_to?(:view_gantt, @project, :global => true) %>
-    <li><%= link_to l(:label_gantt), _project_gantt_path(@project) %></li>
-  <% end %>
-  <% if User.current.allowed_to?(:view_agile_queries, @project) %>
-    <li><%= link_to l(:label_agile_board), {:controller => "agile_boards", :action => "index", :project_id => @project} %></li>
-  <% end %>
-</ul>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_issues_list.html.erb b/plugins/redmine_agile/app/views/agile_boards/_issues_list.html.erb
deleted file mode 100644
index 998dd1e..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_issues_list.html.erb
+++ /dev/null
@@ -1,15 +0,0 @@
-<% if issues.any? %>
-  <% issues.each do |issue| %>
-    <%= render partial: 'issue_card', locals: { issue: issue } %>
-  <% end %>
-
-  <% if more_url %>
-    <div class="load-more">
-      <div class="pagination-wrapper">
-        <span class="pagination">
-          <%= link_to l(:label_agile_planning_board_more), more_url, remote: true %>
-        </span>
-      </div>
-    </div>
-  <% end %>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_members.html.erb b/plugins/redmine_agile/app/views/agile_boards/_members.html.erb
deleted file mode 100644
index ffd2096..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_members.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<div class="project-members">
-  <h3><%=l(:label_member_plural)%></h3>
-    <% @project.assignable_users.each do |user| %>
-      <span class="assignable-user" data-id="<%= user.id %>"><%= avatar(user.is_a?(User) ? user : '<gravatar>', :size => "14", :style => agile_user_color(user, :color_base => @query.respond_to?(:color_base) && @query.color_base) ).to_s.html_safe + " " + link_to_user(user) %>
-      <br>
-      </span>
-    <% end %>
-</div>
diff --git a/plugins/redmine_agile/app/views/agile_boards/_upgrade_to_pro.html.erb b/plugins/redmine_agile/app/views/agile_boards/_upgrade_to_pro.html.erb
deleted file mode 100644
index 030aab1..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/_upgrade_to_pro.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<h3><%= l(:label_agile_light_free_version) %></h3>
-<ul>
-  <li><%= link_to l(:label_agile_link_to_pro), "https://www.redmineup.com/pages/plugins/agile#pricing?from=light_upgrade" %>
-	</li>
-	<li><%= link_to l(:label_agile_link_to_pro_demo), "http://demo.redmineup.com/projects/agile/agile/board?query_id=4?from=light_live_preview" %>
-	</li>
-	<li><%= link_to l(:label_agile_link_to_more_plugins), "https://www.redmineup.com/pages/plugins?from=light_more_plugins" %>
-	</li>
-</ul>
diff --git a/plugins/redmine_agile/app/views/agile_boards/agile_data.api.rsb b/plugins/redmine_agile/app/views/agile_boards/agile_data.api.rsb
deleted file mode 100644
index 0971d98..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/agile_data.api.rsb
+++ /dev/null
@@ -1,7 +0,0 @@
-api.agile_data do
-  api.id @agile_data.id
-  api.issue_id @agile_data.issue_id
-  api.position @agile_data.position
-  api.story_points @agile_data.story_points
-  api.agile_sprint_id @agile_data.agile_sprint_id
-end
diff --git a/plugins/redmine_agile/app/views/agile_boards/autocomplete.js.erb b/plugins/redmine_agile/app/views/agile_boards/autocomplete.js.erb
deleted file mode 100644
index b59254d..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/autocomplete.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$(".issues-board div[data-id='<%= @column_id %>']").html('<%= escape_javascript(render partial: "issues_list", locals: { project: @project, issues: @issues, more_url: @more_url }) %>')
diff --git a/plugins/redmine_agile/app/views/agile_boards/index.html.erb b/plugins/redmine_agile/app/views/agile_boards/index.html.erb
deleted file mode 100644
index e798b5b..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/index.html.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-<%= render 'index' %>
-<%= init_agile_tooltip_info %>
-<%= call_hook(:view_agile_board_bottom, { :issues => @issues, :project => @project, :query => @query }) %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/index.js.erb b/plugins/redmine_agile/app/views/agile_boards/index.js.erb
deleted file mode 100644
index 1d3ad17..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/index.js.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-$('#content').html('<%= j(render('index')) %>')
-$('table.issues-board').StickyHeader();
-<%= init_agile_tooltip_info(:only_code => true) %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/inline_comment.html.erb b/plugins/redmine_agile/app/views/agile_boards/inline_comment.html.erb
deleted file mode 100644
index a030bdf..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/inline_comment.html.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-<%= text_area_tag "issue[notes]", "", :cols => 60, :rows => 5, :class => 'wiki-edit', :no_label => true %>
-<button type="button" onclick="saveInlineComment(this, '<%= update_agile_board_path(:id => @issue) %>'); return false;">  <%= l(:button_submit) %> </button>
-<%= link_to l(:button_cancel), "#", :onclick => "cancelInlineComment(this);return false;" %>
diff --git a/plugins/redmine_agile/app/views/agile_boards/load_more.js.erb b/plugins/redmine_agile/app/views/agile_boards/load_more.js.erb
deleted file mode 100644
index abec88e..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/load_more.js.erb
+++ /dev/null
@@ -1 +0,0 @@
-$(".issues-board div[data-id='<%= @column_id %>'] .load-more").replaceWith('<%= escape_javascript(render partial: "issues_list", locals: { project: @project, issues: @issues, more_url: @more_url }) %>')
diff --git a/plugins/redmine_agile/app/views/agile_boards/update.js.erb b/plugins/redmine_agile/app/views/agile_boards/update.js.erb
deleted file mode 100644
index 3069414..0000000
--- a/plugins/redmine_agile/app/views/agile_boards/update.js.erb
+++ /dev/null
@@ -1,6 +0,0 @@
-decHtmlNumber('th[data-column-id="<%= params[:old_status_id] %>"] span.count');
-incHtmlNumber('th[data-column-id="<%= params[:new_status_id] %>"] span.count');
-decHtmlNumber('tr.group.swimlane[data-id="<%= params[:old_swimlane_id] %>"] td span.count');
-incHtmlNumber('tr.group.swimlane[data-id="<%= params[:new_swimlane_id] %>"] td span.count');
-
-//$('.issue-card[data-id="<%= @issue.id %>"]').html("<%= render :partial => 'issue_card', :locals => {:issue => @issue} %>");
diff --git a/plugins/redmine_agile/app/views/agile_charts/_agile_charts.html.erb b/plugins/redmine_agile/app/views/agile_charts/_agile_charts.html.erb
deleted file mode 100644
index acbe13e..0000000
--- a/plugins/redmine_agile/app/views/agile_charts/_agile_charts.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<% if User.current.allowed_to?(:view_agile_charts, @project, :global => true) %>
-
-  <ul class=agile-chart-queries>
-  </ul>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_charts/_chart.html.erb b/plugins/redmine_agile/app/views/agile_charts/_chart.html.erb
deleted file mode 100644
index 8fb57da..0000000
--- a/plugins/redmine_agile/app/views/agile_charts/_chart.html.erb
+++ /dev/null
@@ -1,99 +0,0 @@
-<% if issues_scope.empty? %>
-  <p class="nodata"><%= l(:label_no_data) %></p>
-<% elsif %w(work_burndown cumulative_flow hours_velocity).include?(chart) && issues_scope.count > RedmineAgile.time_reports_items_limit %>
-  <p class="nodata"><%= l(:label_agile_too_many_items, :max => RedmineAgile.time_reports_items_limit) %></p>
-<% else %>
-  <div class="agile-chart-container">
-    <canvas id="agile-chart"></canvas>
-    <div style="clear: both;"></div>
-  </div>
-<% end %>
-
-<%= javascript_tag do %>
-  $(document).ready(function(){
-    Chart.plugins.register({
-      beforeDraw: function(chartInstance, easing) {
-        if (chartInstance.config.options.tooltips.onlyShowForDatasetIndex) {
-          var tooltipsToDisplay = chartInstance.config.options.tooltips.onlyShowForDatasetIndex;
-          var active = chartInstance.tooltip._active || [];
-          if (active.length > 0) {
-            if (tooltipsToDisplay.indexOf(active[0]._datasetIndex) === -1) {
-              chartInstance.tooltip._model.opacity = 0;
-            }
-          }
-        }
-      }
-    });
-
-    if (document.getElementById("agile-chart")) {
-      $.getJSON(<%= raw url_for(controller: 'agile_charts', action: 'render_chart', project_id: @project,
-                                chart: chart, version_id: @version, query_id: @query.try(:id), chart_unit: chart_unit).to_json %>, function(data){
-
-        Chart.defaults.global.defaultFontColor = 'black';
-        Chart.defaults.global.defaultFontFamily = '"Arial", sans-serif';
-        Chart.defaults.global.defaultFontStyle = 'normal';
-
-        var chartData = {
-          labels: data['labels'],
-          datasets: data['datasets'],
-          stacked: data['stacked']
-        };
-
-      new Chart(document.getElementById("agile-chart").getContext("2d"), {
-        type: data['type'] || 'bar',
-        data: chartData,
-        options: {
-          tooltips: {
-            onlyShowForDatasetIndex: data['show_tooltips'],
-            callbacks: chartTooltipCallbacks(data['type'])
-          },
-          maintainAspectRatio: false,
-          legend: {
-            position: 'right',
-            labels: {
-              filter: function(legendItem, chartData) {
-                if (legendItem.text) { return true }
-              }
-            }
-          },
-          title: {
-            display: true,
-            fontSize: 16,
-            fontStyle: 'normal',
-            text: data['title']
-          },
-          elements: {
-            line: {
-                tension: 0, // disables bezier curves
-            }
-          },
-          scales: {
-            yAxes: [{
-              stacked: data['stacked'],
-              scaleLabel: {
-                display: true,
-                fontColor: 'rgba(255, 0, 0 ,1)',
-                fontSize: 14,
-                labelString: data['y_title']
-              }
-            }],
-            xAxes: [{
-              ticks: {
-                autoSkip: true,
-                maxRotation: 0,
-                userCallback: function(value, index, values) {
-                  if (data['type'] == 'scatter') {
-                    return data['labels'][value]
-                  } else {
-                    return value
-                  }
-                }
-              }
-            }]
-            },
-          }
-        });
-      });
-    }
-  });
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_charts/_versions_show.html.erb b/plugins/redmine_agile/app/views/agile_charts/_versions_show.html.erb
deleted file mode 100644
index 79c9725..0000000
--- a/plugins/redmine_agile/app/views/agile_charts/_versions_show.html.erb
+++ /dev/null
@@ -1,31 +0,0 @@
-<% if @issues.any? && User.current.allowed_to?(:view_agile_charts, @project) %>
-  <fieldset>
-    <legend>
-      <%= l(:label_agile_chart) %>
-      <%= select_tag('chart', options_charts_for_select(params[:chart] || RedmineAgile.default_chart),
-                     id: 'chart_by_select',
-                     onchange: "toggleChartUnit($(this).val(), 'chart-unit-row'); updateVersionAgileChart('#{agile_charts_select_version_chart_path(version_id: @version)}');") %>
-
-      <span id="chart-unit-row">
-        <label for='chart_unit'><%= l(:label_agile_chart_units) %></label>
-        <%= select_tag 'chart_unit', options_chart_units_for_select,
-                       onchange: "updateVersionAgileChart('#{agile_charts_select_version_chart_path(version_id: @version)}');" %>
-      </span>
-    </legend>
-    <div id='agile_chart'>
-      <%= render_agile_chart(RedmineAgile::Charts.valid_chart_name_by(params[:chart] || RedmineAgile.default_chart), @version.fixed_issues) %>
-    </div>
-  </fieldset>
-<% end %>
-
-<% content_for :header_tags do %>
-  <%= chartjs_assets %>
-  <%= javascript_include_tag 'redmine_agile', plugin: 'redmine_agile' %>
-<% end %>
-
-<%= javascript_tag do %>
-  var chartsWithUnits = <%= raw RedmineAgile::Charts::CHARTS_WITH_UNITS.to_json %>
-  $(document).ready(function() {
-    toggleChartUnit($('#chart_by_select').val(), 'chart-unit-row');
-  });
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_charts/select_version_chart.js.erb b/plugins/redmine_agile/app/views/agile_charts/select_version_chart.js.erb
deleted file mode 100644
index e9d4c38..0000000
--- a/plugins/redmine_agile/app/views/agile_charts/select_version_chart.js.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-$('#agile_chart').html('<%= escape_javascript(render_agile_chart(params[:chart], @version.fixed_issues)) %>');
-
-if ("replaceState" in window.history) {
-  window.history.replaceState(null, document.title, "?chart=<%= params[:chart] %>");
-}
diff --git a/plugins/redmine_agile/app/views/agile_charts/show.html.erb b/plugins/redmine_agile/app/views/agile_charts/show.html.erb
deleted file mode 100644
index a92392f..0000000
--- a/plugins/redmine_agile/app/views/agile_charts/show.html.erb
+++ /dev/null
@@ -1,67 +0,0 @@
-<%= render_agile_charts_breadcrumb %>
-
-<h2><%= @query.new_record? ? l(:label_agile_chart_plural) : h(@query.name) %></h2>
-<% html_title(@query.new_record? ? l(:label_agile_chart_plural) : @query.name) %>
-
-<%= form_tag({ :controller => 'agile_charts', :action => 'show', :project_id => @project },
-            :method => :get, :id => 'query_form') do %>
-  <div id="query_form_with_buttons" class="hide-when-print">
-    <%= hidden_field_tag 'set_filter', '1' %>
-    <div id="query_form_content">
-      <fieldset id="filters" class="collapsible">
-        <legend class="icon icon-expended" onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
-        <div>
-          <%= render :partial => 'queries/filters', :locals => {:query => @query} %>
-        </div>
-      </fieldset>
-      <fieldset class="collapsible">
-        <legend class="icon icon-expended" onclick="toggleFieldset(this);"><%= l(:label_options) %></legend>
-        <div>
-          <table>
-            <tr>
-              <td><label for='chart'><%= l(:label_agile_chart) %></label></td>
-              <td><%= select_tag 'chart', options_charts_for_select(@chart), onchange: "toggleChartUnit($(this).val(), 'chart-unit-row');" %></td>
-              <td id="chart-unit-row">
-                <label for='chart_unit'><%= l(:label_agile_chart_units) %></label>
-                <%= select_tag 'chart_unit', options_chart_units_for_select(@query.chart_unit) %>
-              </td>
-            </tr>
-            <tr id="interval-size">
-              <td><%= l(:label_agile_interval_size) %></td>
-              <td>
-                <%= select_tag 'interval_size', options_for_select(RedmineAgile::AgileChart::TIME_INTERVALS.map { |i| [l(:"label_agile_#{i}"), i] }, @query.interval_size) %>
-              </td>
-            </tr>
-          </table>
-        </div>
-      </fieldset>
-    </div>
-    <p class="buttons">
-      <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
-      <%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload'  %>
-    </p>
-  </div>
-<% end %>
-
-<%= error_messages_for 'query' %>
-
-<%= render_agile_chart(@chart, @issues) if @query.valid? %>
-
-<% content_for :header_tags do %>
-  <%= chartjs_assets %>
-  <%= javascript_include_tag 'redmine_agile', plugin: 'redmine_agile' %>
-<% end %>
-
-<% content_for :sidebar do %>
-  <%= render :partial => 'agile_boards/issues_links' %>
-  <%= render :partial => 'agile_charts/agile_charts' %>
-<% end %>
-
-<%= javascript_tag do %>
-  var chartsWithUnits = <%= raw RedmineAgile::Charts::CHARTS_WITH_UNITS.to_json %>
-  $(document).ready(function() {
-    toggleChartUnit($('#chart').val(), 'chart-unit-row');
-    /* Hide chart_period checkbox so that it couldn't be unchecked */
-    hideChartPeriodCheckbox();
-  });
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_charts_queries/_form.html.erb b/plugins/redmine_agile/app/views/agile_charts_queries/_form.html.erb
deleted file mode 100644
index 8b13789..0000000
--- a/plugins/redmine_agile/app/views/agile_charts_queries/_form.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/plugins/redmine_agile/app/views/agile_charts_queries/edit.html.erb b/plugins/redmine_agile/app/views/agile_charts_queries/edit.html.erb
deleted file mode 100644
index 8b13789..0000000
--- a/plugins/redmine_agile/app/views/agile_charts_queries/edit.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/plugins/redmine_agile/app/views/agile_charts_queries/new.html.erb b/plugins/redmine_agile/app/views/agile_charts_queries/new.html.erb
deleted file mode 100644
index 2fdcc74..0000000
--- a/plugins/redmine_agile/app/views/agile_charts_queries/new.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<!-- </PRO> -->
-<h2><%= l(:label_agile_chart_new) %></h2>
-
-<%= form_tag(@project ? project_agile_charts_queries_path(@project) : agile_charts_queries_path) do %>
-  <%= render partial: 'form', locals: { query: @query } %>
-  <%= submit_tag l(:button_create) %>
-<% end %>
-<!-- </PRO> -->
diff --git a/plugins/redmine_agile/app/views/agile_journal_details/_status_detail.html.erb b/plugins/redmine_agile/app/views/agile_journal_details/_status_detail.html.erb
deleted file mode 100644
index a050f2a..0000000
--- a/plugins/redmine_agile/app/views/agile_journal_details/_status_detail.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<% assignee = Principal.where(:id => data.assigned_to_id).first %>
-<tr class="<%= cycle('odd', 'even') %>">
-  <td class="index"><%= index + 1 %></td>
-  <td class="name"><%= format_time(data.journal.created_on) %></td>
-  <td><%= issue_status.name %></td>
-  <td><%= distance_of_time_in_words(data.end_time, data.start_time).html_safe %></td>
-  <td><%= data.journal.user.name %></td>
-  <td><%= assignee.try(:name) %></td>
-</tr>
diff --git a/plugins/redmine_agile/app/views/agile_journal_details/assignee.html.erb b/plugins/redmine_agile/app/views/agile_journal_details/assignee.html.erb
deleted file mode 100644
index 9b58399..0000000
--- a/plugins/redmine_agile/app/views/agile_journal_details/assignee.html.erb
+++ /dev/null
@@ -1,27 +0,0 @@
-<%= title [issue_heading(@issue) , issue_path(@issue)],  l(:field_assigned_to) %>
-
-<% html_title(l(:field_assigned_to)) %>
-
-<% if @assignees.any? %>
-  <table class="list"><thead>
-  <tr>
-      <th>#</th>
-      <th><%= l(:field_created_on) %></th>
-      <th><%= l(:field_assigned_to) %></th>
-      <th><%= l(:field_duration) %></th>
-      <th><%= l(:field_author) %></th>
-  </tr></thead>
-  <% @assignees.each_with_index do |status, index| %>
-  <% assignee = User.where(:id => status.value).first %>
-  <tr class="<%= cycle('odd', 'even') %>">
-      <td class="index"><%= index + 1 %></td>
-      <td class="name"><%= format_time(status.journal.created_on) %></td>
-      <td class="name"><%= avatar(assignee, :size => "14").to_s.html_safe + " " + link_to_user(assignee) %></td>
-      <td><%= event_duration(status, @assignees[index + 1]) %></td>
-      <td><%= link_to_user status.journal.user %></td>
-  </tr>
-  <% end %>
-  </table>
-<% else %>
-<p class="nodata"><%= l(:label_no_data) %></p>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_journal_details/done_ratio.html.erb b/plugins/redmine_agile/app/views/agile_journal_details/done_ratio.html.erb
deleted file mode 100644
index bcf9e45..0000000
--- a/plugins/redmine_agile/app/views/agile_journal_details/done_ratio.html.erb
+++ /dev/null
@@ -1,28 +0,0 @@
-<%= title [issue_heading(@issue) , issue_path(@issue)],  l(:field_done_ratio) %>
-
-<% html_title(l(:field_done_ratio)) %>
-
-<% if @done_ratios.any? %>
-  <table class="list"><thead>
-  <tr>
-      <th>#</th>
-      <th><%= l(:field_created_on) %></th>
-      <th><%= l(:field_done_ratio) %></th>
-      <th><%= l(:label_agile_charts_number_of_hours) %></th>
-      <th><%= l(:field_duration) %></th>
-      <th><%= l(:field_author) %></th>
-  </tr></thead>
-  <% @done_ratios.each_with_index do |done_ratio, index| %>
-  <tr class="<%= cycle('odd', 'even') %>">
-      <td class="index"><%= index + 1 %></td>
-      <td class="name"><%= format_time(done_ratio.journal.created_on) %></td>
-      <td><%= progress_bar(done_ratio.value.to_f, :width => '80px', :legend => "#{"%.2f" %done_ratio.value.to_f}%") %></td>
-      <td><%= "%.2f" % (@issue.estimated_hours.to_f * (100 - done_ratio.value.to_f) / 100.0) %></td>
-      <td><%= event_duration(done_ratio, @done_ratios[index + 1]) %></td>
-      <td><%= done_ratio.journal.user.name %></td>
-  </tr>
-  <% end %>
-  </table>
-<% else %>
-<p class="nodata"><%= l(:label_no_data) %></p>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/agile_journal_details/edit.html.erb b/plugins/redmine_agile/app/views/agile_journal_details/edit.html.erb
deleted file mode 100644
index d72d1ce..0000000
--- a/plugins/redmine_agile/app/views/agile_journal_details/edit.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<h2>AgileDoneRatioFlowsController#edit</h2>
diff --git a/plugins/redmine_agile/app/views/agile_journal_details/new.html.erb b/plugins/redmine_agile/app/views/agile_journal_details/new.html.erb
deleted file mode 100644
index 00643dd..0000000
--- a/plugins/redmine_agile/app/views/agile_journal_details/new.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<h2>AgileDoneRatioFlowsController#new</h2>
diff --git a/plugins/redmine_agile/app/views/agile_journal_details/status.html.erb b/plugins/redmine_agile/app/views/agile_journal_details/status.html.erb
deleted file mode 100644
index 10dcb43..0000000
--- a/plugins/redmine_agile/app/views/agile_journal_details/status.html.erb
+++ /dev/null
@@ -1,70 +0,0 @@
-<%= title [issue_heading(@issue) , issue_path(@issue)],  l(:label_issue_status) %>
-
-<% html_title(l(:label_issue_status_plural)) %>
-
-<%= form_tag({ controller: 'agile_journal_details', action: 'status' }, method: :get, id: 'query_form') do %>
-  <div id="query_form_with_buttons" class="hide-when-print">
-    <div id="query_form_content">
-      <fieldset id="options" class="collapsible collapsed">
-        <legend onclick="toggleFieldset(this);" class="icon icon-expended"><%= l(:label_options) %></legend>
-        <div style="display: none;">
-          <table>
-            <tr>
-              <td><label for='group_by'><%= l(:field_group_by) %></label></td>
-              <td><%= select_tag('group_by', options_for_select([[]] + [[l(:field_status), 'status']], params[:group_by])) %></td>
-            </tr>
-          </table>
-        </div>
-      </fieldset>
-    </div>
-  </div>
-
-  <p class="buttons hide-when-print">
-    <%= link_to_function l(:button_apply), 'submit_query_form("query_form")', :class => 'icon icon-checked' %>
-    <%= link_to l(:button_clear), { }, :class => 'icon icon-reload'  %>
-  </p>
-<% end %>
-
-<% if @statuses_collector.data.any? %>
-  <table class="list"><thead>
-  <tr>
-      <th>#</th>
-      <th><%= l(:field_created_on) %></th>
-      <th><%= l(:field_status) %></th>
-      <th><%= l(:field_duration) %></th>
-      <th><%= l(:field_author) %></th>
-      <th><%= l(:field_assigned_to) %></th>
-  </tr></thead>
-  <% if @group %>
-    <% @statuses_collector.grouped_by(@group).each do |group_id, group_data| %>
-      <% group_object = @statuses_collector.object_for(@group).where(:id => group_id).first %>
-      <tr class="group open">
-        <td colspan="6">
-          <span class="expander icon icon-expended" onclick="toggleRowGroup(this);">&nbsp;</span>
-          <span class="name"><%= group_object.name %></span>
-          <span class="badge badge-count count"><%= group_data.count %></span>
-          <span class="totals">
-            <%= l('datetime.distance_in_words.x_days', count: @statuses_collector.group_total_for(@group, group_data)) %>
-          </span>
-          <%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
-                               "toggleAllRowGroups(this)", :class => 'toggle-all') %>
-        </td>
-      </tr>
-      <% group_data.each_with_index do |data, index| %>
-        <%= render partial: 'status_detail', locals: { issue_status: @statuses_collector.issue_status_for(@group, group_id), data: data, index: index } %>
-      <% end %>
-    <% end %>
-  <% else %>
-    <% @statuses_collector.data.each_with_index do |data, index| %>
-      <% issue_status = IssueStatus.where(:id => data.status_id).first %>
-      <%= render partial: 'status_detail', locals: { issue_status: issue_status, data: data, index: index } %>
-    <% end %>
-  <% end %>
-  </table>
-<% else %>
-  <p class="nodata"><%= l(:label_no_data) %></p>
-<% end %>
-
-<% other_formats_links do |f| %>
-  <%= f.link_to 'CSV', :url => params.respond_to?(:to_unsafe_hash) ? params.to_unsafe_hash : params %>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/issues/_agile_data_fields.html.erb b/plugins/redmine_agile/app/views/issues/_agile_data_fields.html.erb
deleted file mode 100644
index be8cdbf..0000000
--- a/plugins/redmine_agile/app/views/issues/_agile_data_fields.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class="attributes">
-  <div class="splitcontent">
-    <%= render :partial => 'issue_story_points_form', :locals => { :form => form } %>
-  </div>
-</div>
-
-<% content_for :header_tags do %>
-  <%= javascript_include_tag "redmine_agile", :plugin => 'redmine_agile' %>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/issues/_agile_data_labels.html.erb b/plugins/redmine_agile/app/views/issues/_agile_data_labels.html.erb
deleted file mode 100644
index 552e3dc..0000000
--- a/plugins/redmine_agile/app/views/issues/_agile_data_labels.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<%= render :partial => 'issue_story_points' %>
diff --git a/plugins/redmine_agile/app/views/issues/_issue_spint_form.html.erb b/plugins/redmine_agile/app/views/issues/_issue_spint_form.html.erb
deleted file mode 100644
index 8b13789..0000000
--- a/plugins/redmine_agile/app/views/issues/_issue_spint_form.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/plugins/redmine_agile/app/views/issues/_issue_story_points.html.erb b/plugins/redmine_agile/app/views/issues/_issue_story_points.html.erb
deleted file mode 100644
index bfc90dd..0000000
--- a/plugins/redmine_agile/app/views/issues/_issue_story_points.html.erb
+++ /dev/null
@@ -1,7 +0,0 @@
-<% if @issue.project.module_enabled?('agile') && RedmineAgile.use_story_points? && RedmineAgile.use_story_points_for?(@issue.tracker) %>
-  <%= issue_fields_rows do |rows|
-    rows.left l(:label_agile_story_points), @issue.story_points
-  end if @issue.story_points %>
-<% end %>
-
-<%= javascript_tag "linkableAttributeFields();" %>
diff --git a/plugins/redmine_agile/app/views/issues/_issue_story_points_form.html.erb b/plugins/redmine_agile/app/views/issues/_issue_story_points_form.html.erb
deleted file mode 100644
index 9761dd2..0000000
--- a/plugins/redmine_agile/app/views/issues/_issue_story_points_form.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<% if @issue.project.module_enabled?('agile') && RedmineAgile.use_story_points? && RedmineAgile.use_story_points_for?(@issue.tracker) %>
-  <div class="splitcontentright">
-      <%= form.fields_for :agile_data do |f| %>
-        <p>
-          <%= f.text_field :story_points, :size => 3, :required => @issue.required_attribute?('agile_data_attributes') %>
-        </p>
-      <% end %>
-  </div>
-<% end %>
diff --git a/plugins/redmine_agile/app/views/settings/agile/_general.html.erb b/plugins/redmine_agile/app/views/settings/agile/_general.html.erb
deleted file mode 100644
index f0059ee..0000000
--- a/plugins/redmine_agile/app/views/settings/agile/_general.html.erb
+++ /dev/null
@@ -1,54 +0,0 @@
-
-<p>
-  <label><%= l(:label_agile_board_items_limit) %></label>
-  <%= text_field_tag 'settings[board_items_limit]', RedmineAgile.board_items_limit, :size => 3 %>
-</p>
-
-<p>
-  <label><%= l(:label_agile_board_default_fields) %></label>
-  <%= select_tag 'settings[default_columns]', options_for_select(AgileQuery.new(:column_names => RedmineAgile.default_columns).available_columns.collect{|column| [column.caption, column.name]}, RedmineAgile.default_columns), :multiple => true, :include_blank => true, :size => 10, :style => "width:150px" %>
-</p>
-
-<p>
-  <label><%= l(:label_agile_story_points) %></label>
-  <%= hidden_field_tag 'settings[story_points_on]', 0, id: nil %>
-  <%= check_box_tag 'settings[story_points_on]', 1, RedmineAgile.use_story_points?, onchange: "$('#trackers_for_sp').toggle(this.checked);" %>
-</p>
-
-<div id="trackers_for_sp" style="display:<%= RedmineAgile.use_story_points? ? 'block' : 'none' %>">
-  <p>
-    <label><%= l(:label_agile_trackers_for_sp) %></label>
-    <%= select_tag 'settings[trackers_for_sp]', options_for_select(Tracker.all.map{|tr| [tr.name, tr.id]}, RedmineAgile.trackers_for_sp), :prompt => "All", :style => "width:150px" %>
-  </p>
-</div>
-
-<p>
-  <label><%= l(:label_agile_default_chart) %></label>
-  <%= select_tag 'settings[default_chart]', grouped_options_charts_for_select(RedmineAgile.default_chart) %>
-</p>
-
-<p>
-  <label for="settings_exclude_weekends"><%= l(:label_agile_exclude_weekends) %></label>
-  <%= hidden_field_tag 'settings[exclude_weekends]', 0, :id => nil %>
-  <%= check_box_tag 'settings[exclude_weekends]', 1, RedmineAgile.exclude_weekends? %>
-</p>
-
-<p>
-  <label><%= l(:label_agile_time_reports_items_limit) %></label>
-  <%= text_field_tag 'settings[time_reports_items_limit]', RedmineAgile.time_reports_items_limit, :size => 3 %>
-</p>
-<p>
-  <label for="settings_hide_closed_issues_data"><%= l(:label_agile_hide_closed_issues_data) %></label>
-  <%= check_box_tag 'settings[hide_closed_issues_data]', 1, RedmineAgile.hide_closed_issues_data? %>
-</p>
-<p>
-  <label for="settings_auto_assign_on_move"><%= l(:label_agile_auto_assign_on_move) %></label>
-  <%= hidden_field_tag 'settings[auto_assign_on_move]', 0, :id => nil %>
-  <%= check_box_tag 'settings[auto_assign_on_move]', 1, RedmineAgile.auto_assign_on_move? %>
-</p>
-
-<p>
-  <label for="settings_allow_inline_comments"><%= l(:label_agile_inline_comment) %></label>
-  <%= hidden_field_tag 'settings[allow_inline_comments]', 0, :id => nil %>
-  <%= check_box_tag 'settings[allow_inline_comments]', 1, RedmineAgile.allow_inline_comments? %>
-</p>
diff --git a/plugins/redmine_agile/assets/images/agile.png b/plugins/redmine_agile/assets/images/agile.png
deleted file mode 100644
index e9604d3df4a7db1e14a320dec490d5ec594747ba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 857
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztF#Yy)aSW-rwItZrN7zxMZnJmd_Df8;niqtgT=x)k
z>Atu?VljKOn@h5Zq8tAm(}$0Gn>!ya`MBg`hLg{Q6OO(r8A%<1!ds7J2>fLCj`q4)
z#=SeW?A!Use^(bz-c!5z{oCKqe&3tzx-9e1|1~<VKQ2=L(Xea#th_Iqcs?n%oV)xz
zEo=9hKW`sRPrkBudHYxCU2<1VcuhiE`>(IM#t?FrBPcymS2u6nih_{ed-j~p+<tTI
zpX;)$TZ=jG7zs|Z?&P~`@};JkaWfyo^IJ@gul(m(1Qnfm|Ij<qp=`~I2?wndc;BSz
zt=sZ<#rBEk8>16urT?4Y(7`xK<Iv7)n-X-|4n95AcA=oiNM@Rg_WzxB6XRny9qxas
z^RA>g@bBdC{dud}1Q)G*p~c+FByhFiqbFxqx8;j!GvQe?Vx$gqT}+WkyPV_lrtWWM
zUWA9Ig;-pZmi_yS9G3ev4=y@Yth3|gNzI84&!-+!=#^bmX1RAw;IU`QQzuy4FKh9z
zn#$OJ`I%BzQN?T)<C6CeZ)|($v)+_rp%}wv@zbBQJXH2w3VpV*nfYUx=;K+w4ZHh(
z+otRFzVUHqHTkHxZH;72$Jvw2lOL|Iku&+o{h~*lXB$JxU53bu4MsPz7Om3Q_9SMP
zz{07IVxD`g6X~BF74`Sf1|5SL4*Pmrb<SN&th)6%bs5(qrE>y3$G0C_p)tuo`9j#N
z6&d~OT@Jr;_4*m|^P^1kSxxpuzxkwIugaV8Nk8@JfszVC&+L1-h6*k-<U3E@b1+Sa
zG%TNgSGuE~+x)1VdNsq$vhbzsmC}FeSkreXJ!jzgTcY#I<@J4*1=lAFc-9*Ku?UH}
zdX1sTEs^V0&Ayy{cl<B=ZE{kWtau<ubF;sEz5c|&@-AD6tyvep&0o1_DdW>$-0Po*
zipdp(?O@(!v+fd8z-5cgHnU>{)P)v_MD8%O*W!8Pa%I+;`3%z97q;C$xpQv#+jnom
zjxfxgb!@RyguKwQXY5yxOi9Vp-}J41_SHMPxPNb2nST9jmf7WN*T0_MzMoZs!Mbvu
W?v9BkLKzqs7(8A5T-G@yGywpQq?cI$

diff --git a/plugins/redmine_agile/assets/images/fullscreen.png b/plugins/redmine_agile/assets/images/fullscreen.png
deleted file mode 100644
index 2e9bc42bec16e3077a9680e7af0f90395bfeb60c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 594
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@o_i(`nz>AREj{eu!E
zj?K?6+~>>HC7|r;(#Tx&Lwtsuhs~ul-)o1is+f4k6sIix<lh@yHlfd0O}DdTZ)WZ~
z{)5tX2d{qK5;$Awb?N!Cy}RqLf3^8uYoD^skWuZWH;3_8g+=r8o8&He9_-?7+$6m3
zJ72}UTMzYm8x1O+KUd>=uD|<`kH|BpRK}O<y(6q++p@279hy}9T>3;!eVcoFp-WcX
zPUSTp=H%bM*cJZ%L85No)GDExi%dqvLN06UTCZ$p*<^1Nk#Xnn75DS1!teJjwv6vh
z+&Zx-g!6FVh6B@#n|&^4-~T7_;L!1Z*B-sBwXv9ac&)SJ-VB8kW~$5F6l6Pi{>d8b
zGX1gLVNKP}lgj?Zk1ni@xyt<fT*s}p+e&w5ebfJSpC@Da(~sthUxglhChnG6aQA|V
z?e*e%o<CguW;&rRE~h8w_)J$boMO1Dv8f^8BKzZ6>rx}$KL6tX`$f~9&CQ1r3N~$P
zxY^8+6IuLu(ZSx*<~L`1ll?jm&KFJadcClE(ZZ8ooK><p@BCG8)avHRyU6;`%JyMZ
zl=|-Y&m2$g&d}?85&w#{@NMMAia8FCGUU$f5xsWyTtPImc9e^EqDK+Stq^{Wc$r39
z`<{(&71<7dI@OZ5AuqDoZq}OGJIubHr0N)%`?vJ!c5N_cU|?YIboFyt=akR{050|o
A%>V!Z

diff --git a/plugins/redmine_agile/assets/javascripts/jquery.simplecolorpicker.js b/plugins/redmine_agile/assets/javascripts/jquery.simplecolorpicker.js
deleted file mode 100644
index 9cfc456..0000000
--- a/plugins/redmine_agile/assets/javascripts/jquery.simplecolorpicker.js
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Very simple jQuery Color Picker
- * https://github.com/tkrotoff/jquery-simplecolorpicker
- *
- * Copyright (C) 2012-2013 Tanguy Krotoff <tkrotoff@gmail.com>
- *
- * Licensed under the MIT license
- */
-
-(function($) {
-  'use strict';
-
-  /**
-   * Constructor.
-   */
-  var SimpleColorPicker = function(select, options) {
-    this.init('simplecolorpicker', select, options);
-  };
-
-  /**
-   * SimpleColorPicker class.
-   */
-  SimpleColorPicker.prototype = {
-    constructor: SimpleColorPicker,
-
-    init: function(type, select, options) {
-      var self = this;
-
-      self.type = type;
-
-      self.$select = $(select);
-      self.$select.hide();
-
-      self.options = $.extend({}, $.fn.simplecolorpicker.defaults, options);
-
-      self.$colorList = null;
-
-      if (self.options.picker === true) {
-        var selectText = self.$select.find('> option:selected').text();
-        self.$icon = $('<span class="simplecolorpicker button"'
-                     + ' title="' + selectText + '"'
-                     + ' style="background-color: ' + self.$select.val() + ';"'
-                     + ' role="button" tabindex="0">'
-                     + '</span>').insertAfter(self.$select);
-        self.$icon.on('click.' + self.type, $.proxy(self.showPicker, self));
-
-        self.$picker = $('<span class="simplecolorpicker picker ' + self.options.theme + '"></span>').appendTo(document.body);
-        self.$colorList = self.$picker;
-
-        // Hide picker when clicking outside
-        $(document).on('mousedown.' + self.type, $.proxy(self.hidePicker, self));
-        self.$picker.on('mousedown.' + self.type, $.proxy(self.mousedown, self));
-      } else {
-        self.$inline = $('<span class="simplecolorpicker inline ' + self.options.theme + '"></span>').insertAfter(self.$select);
-        self.$colorList = self.$inline;
-      }
-
-      // Build the list of colors
-      // <span class="color selected" title="Green" style="background-color: #7bd148;" role="button"></span>
-      self.$select.find('> option').each(function() {
-        var $option = $(this);
-        var color = $option.val();
-
-        var isSelected = $option.is(':selected');
-        var isDisabled = $option.is(':disabled');
-
-        var selected = '';
-        if (isSelected === true) {
-          selected = ' data-selected';
-        }
-
-        var disabled = '';
-        if (isDisabled === true) {
-          disabled = ' data-disabled';
-        }
-
-        var title = '';
-        if (isDisabled === false) {
-          title = ' title="' + $option.text() + '"';
-        }
-
-        var role = '';
-        if (isDisabled === false) {
-          role = ' role="button" tabindex="0"';
-        }
-
-        var $colorSpan = $('<span class="color"'
-                         + title
-                         + ' style="background-color: ' + color + ';"'
-                         + ' data-color="' + color + '"'
-                         + selected
-                         + disabled
-                         + role + '>'
-                         + '</span>');
-
-        self.$colorList.append($colorSpan);
-        $colorSpan.on('click.' + self.type, $.proxy(self.colorSpanClicked, self));
-
-        var $next = $option.next();
-        if ($next.is('optgroup') === true) {
-          // Vertical break, like hr
-          self.$colorList.append('<span class="vr"></span>');
-        }
-      });
-    },
-
-    /**
-     * Changes the selected color.
-     *
-     * @param color the hexadecimal color to select, ex: '#fbd75b'
-     */
-    selectColor: function(color) {
-      var self = this;
-
-      var $colorSpan = self.$colorList.find('> span.color').filter(function() {
-        return $(this).data('color').toLowerCase() === color.toLowerCase();
-      });
-
-      if ($colorSpan.length > 0) {
-        self.selectColorSpan($colorSpan);
-      } else {
-        console.error("The given color '" + color + "' could not be found");
-      }
-    },
-
-    showPicker: function() {
-      var pos = this.$icon.offset();
-      this.$picker.css({
-        // Remove some pixels to align the picker icon with the icons inside the dropdown
-        left: pos.left - 1,
-        top: pos.top - 4//+ this.$icon.outerHeight()
-      });
-
-      this.$picker.show(this.options.pickerDelay);
-    },
-
-    hidePicker: function() {
-      this.$picker.hide(this.options.pickerDelay);
-    },
-
-    /**
-     * Selects the given span inside $colorList.
-     *
-     * The given span becomes the selected one.
-     * It also changes the HTML select value, this will emit the 'change' event.
-     */
-    selectColorSpan: function($colorSpan) {
-      var color = $colorSpan.data('color');
-      var title = $colorSpan.prop('title');
-
-      // Mark this span as the selected one
-      $colorSpan.siblings().removeAttr('data-selected');
-      $colorSpan.attr('data-selected', '');
-
-      if (this.options.picker === true) {
-        this.$icon.css('background-color', color);
-        this.$icon.prop('title', title);
-        this.hidePicker();
-      }
-
-      // Change HTML select value
-      this.$select.val(color);
-    },
-
-    /**
-     * The user clicked on a color inside $colorList.
-     */
-    colorSpanClicked: function(e) {
-      // When a color is clicked, make it the new selected one (unless disabled)
-      if ($(e.target).is('[data-disabled]') === false) {
-        this.selectColorSpan($(e.target));
-        this.$select.trigger('change');
-      }
-    },
-
-    /**
-     * Prevents the mousedown event from "eating" the click event.
-     */
-    mousedown: function(e) {
-      e.stopPropagation();
-      e.preventDefault();
-    },
-
-    destroy: function() {
-      if (this.options.picker === true) {
-        this.$icon.off('.' + this.type);
-        this.$icon.remove();
-        $(document).off('.' + this.type);
-      }
-
-      this.$colorList.off('.' + this.type);
-      this.$colorList.remove();
-
-      this.$select.removeData(this.type);
-      this.$select.show();
-    }
-  };
-
-  /**
-   * Plugin definition.
-   * How to use: $('#id').simplecolorpicker()
-   */
-  $.fn.simplecolorpicker = function(option) {
-    var args = $.makeArray(arguments);
-    args.shift();
-
-    // For HTML element passed to the plugin
-    return this.each(function() {
-      var $this = $(this),
-        data = $this.data('simplecolorpicker'),
-        options = typeof option === 'object' && option;
-      if (data === undefined) {
-        $this.data('simplecolorpicker', (data = new SimpleColorPicker(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].apply(data, args);
-      }
-    });
-  };
-
-  /**
-   * Default options.
-   */
-  $.fn.simplecolorpicker.defaults = {
-    // No theme by default
-    theme: '',
-
-    // Show the picker or make it inline
-    picker: false,
-
-    // Animation delay in milliseconds
-    pickerDelay: 0
-  };
-
-})(jQuery);
diff --git a/plugins/redmine_agile/assets/javascripts/jquery.ui.touch-punch.js b/plugins/redmine_agile/assets/javascripts/jquery.ui.touch-punch.js
deleted file mode 100644
index 16ce41d..0000000
--- a/plugins/redmine_agile/assets/javascripts/jquery.ui.touch-punch.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/*!
- * jQuery UI Touch Punch 0.2.3
- *
- * Copyright 2011–2014, Dave Furfero
- * Dual licensed under the MIT or GPL Version 2 licenses.
- *
- * Depends:
- *  jquery.ui.widget.js
- *  jquery.ui.mouse.js
- */
-(function ($) {
-
-  // Detect touch support
-  $.support.touch = 'ontouchend' in document;
-
-  // Ignore browsers without touch support
-  if (!$.support.touch) {
-    return;
-  }
-
-  var mouseProto = $.ui.mouse.prototype,
-      _mouseInit = mouseProto._mouseInit,
-      _mouseDestroy = mouseProto._mouseDestroy,
-      touchHandled;
-
-  /**
-   * Simulate a mouse event based on a corresponding touch event
-   * @param {Object} event A touch event
-   * @param {String} simulatedType The corresponding mouse event
-   */
-  function simulateMouseEvent (event, simulatedType) {
-
-    // Ignore multi-touch events
-    if (event.originalEvent.touches.length > 1) {
-      return;
-    }
-
-    event.preventDefault();
-
-    var touch = event.originalEvent.changedTouches[0],
-        simulatedEvent = document.createEvent('MouseEvents');
-    
-    // Initialize the simulated mouse event using the touch event's coordinates
-    simulatedEvent.initMouseEvent(
-      simulatedType,    // type
-      true,             // bubbles                    
-      true,             // cancelable                 
-      window,           // view                       
-      1,                // detail                     
-      touch.screenX,    // screenX                    
-      touch.screenY,    // screenY                    
-      touch.clientX,    // clientX                    
-      touch.clientY,    // clientY                    
-      false,            // ctrlKey                    
-      false,            // altKey                     
-      false,            // shiftKey                   
-      false,            // metaKey                    
-      0,                // button                     
-      null              // relatedTarget              
-    );
-
-    // Dispatch the simulated event to the target element
-    event.target.dispatchEvent(simulatedEvent);
-  }
-
-  /**
-   * Handle the jQuery UI widget's touchstart events
-   * @param {Object} event The widget element's touchstart event
-   */
-  mouseProto._touchStart = function (event) {
-
-    var self = this;
-
-    // Ignore the event if another widget is already being handled
-    if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {
-      return;
-    }
-
-    // Set the flag to prevent other widgets from inheriting the touch event
-    touchHandled = true;
-
-    // Track movement to determine if interaction was a click
-    self._touchMoved = false;
-
-    // Simulate the mouseover event
-    simulateMouseEvent(event, 'mouseover');
-
-    // Simulate the mousemove event
-    simulateMouseEvent(event, 'mousemove');
-
-    // Simulate the mousedown event
-    simulateMouseEvent(event, 'mousedown');
-  };
-
-  /**
-   * Handle the jQuery UI widget's touchmove events
-   * @param {Object} event The document's touchmove event
-   */
-  mouseProto._touchMove = function (event) {
-
-    // Ignore event if not handled
-    if (!touchHandled) {
-      return;
-    }
-
-    // Interaction was not a click
-    this._touchMoved = true;
-
-    // Simulate the mousemove event
-    simulateMouseEvent(event, 'mousemove');
-  };
-
-  /**
-   * Handle the jQuery UI widget's touchend events
-   * @param {Object} event The document's touchend event
-   */
-  mouseProto._touchEnd = function (event) {
-
-    // Ignore event if not handled
-    if (!touchHandled) {
-      return;
-    }
-
-    // Simulate the mouseup event
-    simulateMouseEvent(event, 'mouseup');
-
-    // Simulate the mouseout event
-    simulateMouseEvent(event, 'mouseout');
-
-    // If the touch interaction did not move, it should trigger a click
-    if (!this._touchMoved) {
-
-      // Simulate the click event
-      simulateMouseEvent(event, 'click');
-    }
-
-    // Unset the flag to allow other widgets to inherit the touch event
-    touchHandled = false;
-  };
-
-  /**
-   * A duck punch of the $.ui.mouse _mouseInit method to support touch events.
-   * This method extends the widget with bound touch event handlers that
-   * translate touch events to mouse events and pass them to the widget's
-   * original mouse event handling methods.
-   */
-  mouseProto._mouseInit = function () {
-    
-    var self = this;
-
-    // Delegate the touch handlers to the widget's element
-    self.element.bind({
-      touchstart: $.proxy(self, '_touchStart'),
-      touchmove: $.proxy(self, '_touchMove'),
-      touchend: $.proxy(self, '_touchEnd')
-    });
-
-    // Call the original $.ui.mouse init method
-    _mouseInit.call(self);
-  };
-
-  /**
-   * Remove the touch event handlers
-   */
-  mouseProto._mouseDestroy = function () {
-    
-    var self = this;
-
-    // Delegate the touch handlers to the widget's element
-    self.element.unbind({
-      touchstart: $.proxy(self, '_touchStart'),
-      touchmove: $.proxy(self, '_touchMove'),
-      touchend: $.proxy(self, '_touchEnd')
-    });
-
-    // Call the original $.ui.mouse destroy method
-    _mouseDestroy.call(self);
-  };
-
-})(jQuery);
\ No newline at end of file
diff --git a/plugins/redmine_agile/assets/javascripts/redmine_agile.js b/plugins/redmine_agile/assets/javascripts/redmine_agile.js
deleted file mode 100644
index d4ea53c..0000000
--- a/plugins/redmine_agile/assets/javascripts/redmine_agile.js
+++ /dev/null
@@ -1,787 +0,0 @@
-(function() {
-  // var AgileBoard = function() {};
-  var PlanningBoard = function() {};
-
-  PlanningBoard.prototype = {
-
-    init: function(routes) {
-      var self = this;
-      self.routes = routes;
-
-      $(function() {
-        self.initSortable();
-      });
-    },
-
-    // If there are no changes
-    backSortable: function($oldColumn) {
-      $oldColumn.sortable('cancel');
-    },
-
-    successSortable: function($oldColumn, $column) {
-      clearErrorMessage();
-      var r = new RegExp(/\d+/)
-      var ids = [];
-
-      ids.push({
-        column: $column,
-        id: $column.data('id'),
-        to: true
-      });
-      ids.push({
-        column: $oldColumn,
-        id: $oldColumn.data('id'),
-        from: true
-      });
-
-      for (var i = 0; i < ids.length; i++) {
-        var current = ids[i];
-        var headerSelector = '.version-planning-board thead tr th[data-column-id="' + current.id + '"]';
-        var $columnHeader = $(headerSelector);
-        var columnText = $columnHeader.text();
-        var currentIssuesAmount = ~~columnText.match(r);
-        currentIssuesAmount = (current.from) ? currentIssuesAmount - 1 : currentIssuesAmount + 1;
-        $columnHeader.text(columnText.replace(r, currentIssuesAmount));
-      }
-    },
-
-    errorSortable: function(responseText) {
-      var alertMessage = parseErrorResponse(responseText);
-      if (alertMessage) {
-        setErrorMessage(alertMessage);
-      };
-    },
-
-    initSortable: function() {
-      var self = this;
-      var $issuesCols = $(".column-issues");
-
-      $issuesCols.sortable({
-        connectWith: ".column-issues",
-        start: function(event, ui) {
-          var $item = $(ui.item);
-          $item.attr('oldColumnId', $item.parent().data('version-id'));
-          $item.attr('oldSprintId', $item.parent().data('sprint-id'));
-          $item.attr('oldPosition', $item.index());
-        },
-        stop: function(event, ui) {
-          var $item = $(ui.item);
-          var $column = $item.parents('.column-issues');
-          var issue_id = $item.data('id');
-          var version_id = $column.attr('data-version-id');
-          var sprint_id = $column.attr('data-sprint-id');
-          var positions = {};
-          var oldId = $item.attr('oldColumnId');
-          var $oldColumn = $('.ui-sortable[data-version-id="' + oldId + '"]');
-
-          if(!self.hasChange($item)){
-            self.backSortable($column);
-            return;
-          }
-
-          $column.find('.issue-card').each(function(i, e) {
-            var $e = $(e);
-            positions[$e.data('id')] = { position: $e.index() };
-          });
-
-          var issueParams = {};
-          if (version_id != undefined) issueParams['fixed_version_id'] = version_id || "";
-          if (sprint_id != undefined) issueParams['sprint_id'] = sprint_id || "";
-
-          $.ajax({
-            url: self.routes.update_agile_board_path,
-            type: 'PUT',
-            data: {
-              issue: issueParams,
-              positions: positions,
-              id: issue_id
-            },
-            success: function(data, status, xhr) {
-              self.successSortable($oldColumn, $column);
-            },
-            error: function(xhr, status, error) {
-              self.errorSortable(xhr.responseText);
-              self.backSortable($oldColumn);
-            }
-          });
-        }
-      }).disableSelection();
-
-      $issuesCols.sortable('option', 'cancel', 'div.pagination-wrapper');
-    },
-
-    hasChange: function($item){
-      var column = $item.parents('.column-issues');
-      return $item.attr('oldColumnId') != column.data('version-id') || // Checks a version change
-             $item.attr('oldSprintId') != column.data('sprint-id') || // Checks a sprint change;
-             $item.attr('oldPosition') != $item.index()
-    },
-
-  }
-
-  function AgileBoard(routes){
-
-    // ----- estimated hours ------
-    this.recalculateEstimateHours = function(oldStatusId, newStatusId, value){
-      oldStatusElement = $('th[data-column-id="' + oldStatusId + '"]');
-      newStatusElement = $('th[data-column-id="' + newStatusId + '"]');
-      oldStatusElement.each(function(i, elem){
-        changeHtmlNumber(elem, -value);
-      });
-      newStatusElement.each(function(i, elem){
-        changeHtmlNumber(elem, value);
-      });
-    };
-
-    this.successSortable = function(oldStatusId, newStatusId, oldSwimLaneId, newSwimLaneId) {
-      clearErrorMessage();
-    };
-
-    // If there are no changes
-    this.backSortable = function($oldColumn) {
-      $oldColumn.sortable('cancel');
-    };
-
-    this.errorSortable = function($oldColumn, responseText) {
-      var alertMessage = parseErrorResponse(responseText);
-      if (alertMessage) {
-        setErrorMessage(alertMessage);
-      }
-    };
-
-    this.initSortable = function() {
-      var self = this;
-      var $issuesCols = $(".issue-status-col");
-
-      $issuesCols.sortable({
-        items: '.issue-card',
-        connectWith: ".issue-status-col",
-        start: function(event, ui) {
-          var $item = $(ui.item);
-          $item.attr('oldColumnId', $item.parent().data('id'));
-          $item.attr('oldSwimLaneId', $item.parents('tr.swimlane').data('id'));
-          $item.attr('oldSwimLaneField', $item.parents('tr.swimlane').attr('data-field'));
-          $item.attr('oldPosition', $item.index());
-        },
-        stop: function(event, ui) {
-          var that = this;
-          var $item = $(ui.item);
-          var sender = ui.sender;
-          var $column = $item.parents('.issue-status-col');
-          var $swimlane = $item.parents('tr.swimlane');
-          var issue_id = $item.data('id');
-          var newStatusId = $column.data("id");
-          var order = $column.sortable('serialize');
-          var swimLaneId = $swimlane.data('id')
-          var swimLaneField = $swimlane.attr('data-field');
-          var positions = {};
-          var oldStatusId = $item.attr('oldColumnId');
-          var oldSwimLaneId = $item.attr('oldSwimLaneId');
-          var oldSwimLaneField = $item.attr('oldSwimLaneField');
-          var $oldColumn = $('.ui-sortable[data-id="' + oldStatusId + '"]');
-          var $sprintField = $('#sprint_id');
-
-          if(!self.hasChange($item)){
-            self.backSortable($column);
-            return;
-          }
-          $('.lock').show();
-          if ($column.hasClass("closed")){
-            $item.addClass("float-left")
-          }
-          else{
-            $item.removeClass("closed-issue");
-            $item.removeClass("float-left")
-          }
-
-          $column.find('.issue-card').each(function(i, e) {
-            var $e = $(e);
-            positions[$e.data('id')] = { position: $e.index() };
-          });
-
-          var params = {
-              issue: {
-                status_id: newStatusId
-              },
-              positions: positions,
-              id: issue_id
-            }
-          params['issue'][swimLaneField] = swimLaneId;
-
-
-          if ($sprintField) {
-            if (oldStatusId == '' && newStatusId != '') {
-              params['issue'].sprint_id = $sprintField.val();
-            }
-            if (oldStatusId != '' && newStatusId == '') {
-              delete(params['issue'].status_id)
-              params['issue'].sprint_id = '';
-            }
-          }
-
-          $.ajax({
-            url: self.routes.update_agile_board_path,
-            type: 'PUT',
-            data: params,
-            success: function(data, status, xhr) {
-              self.successSortable(oldStatusId, newStatusId, oldSwimLaneId, swimLaneId);
-              $($item).replaceWith(data);
-              estimatedHours = $($item).find("span.hours");
-              if(estimatedHours.length > 0){
-                hours = $(estimatedHours).html().replace(/(\(|\)|h)?/g, '');
-                // self.recalculateEstimateHours(oldStatusId, newStatusId, hours);
-              }
-            },
-            error: function(xhr, status, error) {
-              self.errorSortable($oldColumn, xhr.responseText);
-              $(that).sortable( "cancel" );
-            },
-            complete: function(){
-              $('.lock').hide();
-            }
-          });
-        }
-      });
-
-    };
-
-    this.initDraggable = function() {
-      if ($("#group_by").val() != "assigned_to"){
-        $(".assignable-user").draggable({
-                helper: "clone",
-                start: function startDraggable(event, ui) {
-                  $(ui.helper).addClass("draggable-active")
-                }
-              });
-      }
-    };
-
-    this.hasChange = function($item){
-      var column = $item.parents('.issue-status-col');
-      var swimlane = $item.parents('tr.swimlane');
-      return $item.attr('oldColumnId') != column.data('id') || // Checks the status change
-             $item.attr('oldSwimLaneId') != swimlane.data('id') ||
-             $item.attr('oldPosition') != $item.index();
-    };
-
-    this.initDroppable = function() {
-      var self = this;
-
-      $(".issue-card").droppable({
-        activeClass: 'droppable-active',
-        hoverClass: 'droppable-hover',
-        accept: '.assignable-user',
-        tolerance: 'pointer',
-        drop: function(event, ui) {
-          var $self = $(this);
-          $('.lock').show();
-          $.ajax({
-            url: self.routes.update_agile_board_path,
-            type: "PUT",
-            dataType: "html",
-            data: {
-              issue: {
-                assigned_to_id: ui.draggable.data("id")
-              },
-              id: $self.data("id")
-            },
-            success: function(data, status, xhr){
-              $self.replaceWith(data);
-            },
-            error:function(xhr, status, error) {
-              var alertMessage = parseErrorResponse(xhr.responseText);
-              if (alertMessage) {
-                setErrorMessage(alertMessage);
-                $self.find("p.assigned-user").remove();
-              }
-            },
-            complete: function(){
-              $('.lock').hide();
-            }
-          });
-          $self.find("p.info").show();
-          $self.find("p.info").html(ui.draggable.clone());
-        }
-      });
-    };
-
-    this.getToolTipInfo = function(node, url){
-      var issue_id = $(node).parents(".issue-card").data("id");
-      var tip = $(node).children(".tip");
-      if( $(tip).html() && $.trim($(tip).html()) != "")
-        return;
-      $.ajax({
-          url: url,
-          type: "get",
-          dataType: "html",
-          data: {
-            id: issue_id
-          },
-          success: function(data, status, xhr){
-            $(tip).html(data);
-          },
-          error:function(xhr, status, error) {
-            $(tip).html(error);
-          }
-      });
-    }
-
-    this.createIssue = function (url) {
-      $(".add-issue").click(function () {
-        $(this).children(".new-card__input").focus()
-      })
-      $(".new-card__input").keyup(function (evt) {
-        var node = this
-        var $sprintField = $("#sprint_id")
-        evt = evt || window.event
-        subject = $.trim($(node).val())
-        sprint_id = $sprintField ? $sprintField.val() : ""
-        if (evt.keyCode == 13 && subject.length != 0) {
-          $.ajax({
-            url: url,
-            type: "POST",
-            data: {
-              subject: subject,
-              status_id: $(node).parents("td").data("id"),
-              sprint_id: sprint_id
-            },
-            dataType: "html",
-            success: function (data, status, xhr) {
-              $(node).parent().before(data)
-              $(node).val("")
-            },
-            error: function (xhr, status, error) {
-              var alertMessage = parseErrorResponse(xhr.responseText)
-              if (alertMessage) {
-                setErrorMessage(alertMessage)
-              }
-            },
-          })
-        }
-      })
-    }
-
-    this.routes = routes;
-
-    this.initSortable();
-    this.initDraggable();
-    this.initDroppable();
-    this.createIssue(routes.create_issue_path);
-  }
-
-  window.AgileBoard = AgileBoard;
-  window.PlanningBoard = PlanningBoard;
-
-  $.fn.StickyHeader = function() {
-    return this.each(function() {
-    var
-      $this = $(this),
-      $body = $('body'),
-      $html = $body.parent(),
-      $hideButton = $body.find('#hideSidebarButton'),
-      $fullScreenButton = $body.find('.icon-fullscreen'),
-      $containerFixed,
-      $tableFixed,
-      $tableRows,
-      $tableFixedRows,
-      containerWidth,
-      offset,
-      tableHeight,
-      tableHeadHeight,
-      tableOffsetTop,
-      tableOffsetBottom,
-      tmp;
-
-      function init() {
-          $this.wrap('<div class="container-fixed" />');
-          $tableFixed = $this.clone();
-          $containerFixed = $this.parents('.container-fixed');
-          $tableFixed
-              .find('tbody')
-              .remove()
-              .end()
-              .addClass('sticky')
-              .insertBefore($this)
-              .hide();
-      }
-
-      function resizeFixed() {
-          containerWidth = $containerFixed.width();
-          tableHeadHeight = $this.find("thead").height() + 3;
-          $tableRows = $this.find('thead th');
-          $tableFixedRows = $tableFixed.find('th');
-
-          $tableFixed.css({'width': containerWidth});
-
-          $tableRows.each(function(i) {
-              tmp = jQuery(this).width();
-              jQuery($tableFixedRows[i]).css('width', tmp);
-          });
-      }
-
-      function scrollFixed() {
-          tableHeight = $this.height();
-          tableHeadHeight = $this.find("thead").height();
-          offset = $(window).scrollTop();
-          tableOffsetTop = $this.offset().top;
-          tableOffsetBottom = tableOffsetTop + tableHeight - tableHeadHeight;
-
-          resizeFixed();
-
-          // The first breakpoint to add responsiveness is 899px
-          var headerHeight = $(window).width() < 900 ? $('#header').height() : 0;
-          var tablePositionTop= tableOffsetTop - headerHeight;
-          var tablePositionBottom= tableOffsetBottom - headerHeight;
-
-          if (offset < tablePositionTop|| offset > tablePositionBottom) {
-              $tableFixed.css('display', 'none');
-          } else if (offset >= tablePositionTop && offset <= tablePositionBottom) {
-              $tableFixed.css('display', 'table');
-              // Fix for chrome not redrawing header
-              $tableFixed.css('z-index', '100');
-          }
-      }
-
-
-      function bindScroll() {
-          if ($html.hasClass('agile-board-fullscreen')) {
-              scrollFixed();
-              $('div.agile-board.autoscroll').scroll(scrollFixed);
-              $(window).unbind('scroll');
-          } else {
-              $(window).scroll(scrollFixed);
-              $('div.agile-board.autoscroll').unbind('scroll');
-              $tableFixed.hide();
-          }
-      }
-
-      $hideButton.click(function() {
-          resizeFixed();
-      });
-
-      $fullScreenButton.click(function() {
-        bindScroll();
-      });
-
-      $(window).resize(resizeFixed);
-
-      $(window).keyup(function(evt){
-          if (evt.keyCode == 27) {
-              $('html.agile-board-fullscreen').removeClass('agile-board-fullscreen');
-              $(".issue-card").addClass("hascontextmenu");
-              bindScroll();
-              saveFullScreenState();
-          }
-        }
-      );
-
-      init();
-      bindScroll();
-
-    });
-  };
-})();
-
-function parseErrorResponse(responseText){
-  try {
-    var errors = JSON.parse(responseText);
-  } catch(e) {
-
-  };
-
-  var alertMessage = '';
-
-  if (errors && errors.length > 0) {
-    for (var i = 0; i < errors.length; i++) {
-      alertMessage += errors[i] + '\n';
-    }
-  }
-  return alertMessage;
-}
-
-function setErrorMessage(message, flashClass) {
-  flashClass = flashClass || "error"
-  $('div#agile-board-errors').addClass("flash " + flashClass);
-  $('div#agile-board-errors').html(message).show();
-  setTimeout(clearErrorMessage,3000);
-}
-
-function clearErrorMessage() {
-  $('div#agile-board-errors').removeClass();
-  $('div#agile-board-errors').html('').hide();
-}
-
-
-function incHtmlNumber(element) {
-  $(element).html(~~$(element).html() + 1);
-}
-
-function decHtmlNumber(element) {
-  $(element).html(~~$(element).html() - 1);
-}
-
-function changeHtmlNumber(element, number){
-  elementWithHours = $(element).find("span.hours");
-  if (elementWithHours.size() > 0){
-    old_value = $(elementWithHours).html().replace(/(\(|\)|h)/);
-    new_value = parseFloat(old_value)+ parseFloat(number);
-    if (new_value > 0)
-      $(elementWithHours).html(new_value.toFixed(2) + "h");
-    else
-      $(elementWithHours).remove();
-  }
-  else{
-    new_value = number;
-    $(element).append("<span class='hours'>" + new_value + "h</span>");
-  }
-}
-
-function observeIssueSearchfield(fieldId, url) {
-  $('#'+fieldId).each(function() {
-    var $this = $(this);
-    $this.addClass('autocomplete');
-    $this.attr('data-value-was', $this.val());
-    var check = function() {
-      var val = $this.val();
-
-      if ($this.attr('data-value-was') != val){
-        var request_data = {}
-        $.map($('#query_form').serializeArray(), function(n, i){
-          if (request_data[n['name']]) {
-            if ($.isArray(request_data[n['name']])) {
-              request_data[n['name']].push(n['value'])
-            } else {
-              request_data[n['name']] = [request_data[n['name']], n['value']];
-            }
-          } else {
-            request_data[n['name']] = n['value'];
-          }
-        });
-        request_data['q'] = val
-
-        $this.attr('data-value-was', val);
-        $.ajax({
-          url: url,
-          type: 'get',
-          data: request_data,
-          beforeSend: function(){ $this.addClass('ajax-loading'); },
-          complete: function(){ $this.removeClass('ajax-loading'); }
-        });
-      }
-    };
-    var reset = function(e) {
-      if (timer) {
-        clearInterval(timer);
-        timer = setInterval(check, 300);
-      }
-    };
-    var skipSpecialKeys = function(e) {
-      if (e.keyCode === 13) { e.preventDefault() }
-    }
-    var timer = setInterval(check, 300);
-    var skipSubmit = function(e) {
-      if (e.which == 13 || e.keyCode == 13) {
-        e.preventDefault();
-        return false
-      }
-    }
-    $this.bind('keydown', skipSubmit);
-    $this.bind('keyup click mousemove', reset);
-    $this.bind('keydown', skipSpecialKeys);
-  });
-}
-
-function recalculateHours() {
-  $('.version-column').each(function (i, elem) {
-    var estimatedHours = 0;
-    var storyPoints = 0;
-    $(elem).find('.issue-card').each(function (j, issue) {
-      estimatedHours += parseFloat($(issue).data('estimated-hours'));
-      storyPoints += parseFloat($(issue).data('story-points'));
-    });
-
-    var values = [];
-    if (estimatedHours > 0) {
-      values.push(estimatedHours.toFixed(2) + 'h');
-    }
-
-    if (storyPoints > 0) {
-      values.push(storyPoints.toFixed(2) + 'sp');
-    }
-
-    if (values.length > 0) {
-      $(elem).find('.version-estimate').text('(' + values.join('/') + ')');
-    }
-  });
-}
-
-function recalculateSprintHours() {
-  var unit = $(".planning-board").data('estimated-unit');
-  var dataAttr = unit == 'sp' ? 'story-points' : 'estimated-hours';
-
-  $('.sprint-column').each(function(i, elem){
-    var versionEstimationSum = 0;
-    $(elem).find('.issue-card').each(function(j, issue){
-      hours = parseFloat($(issue).data(dataAttr));
-      versionEstimationSum += hours;
-    });
-    $(elem).find('.sprint-estimate').text('(' + versionEstimationSum.toFixed(2) + unit + ')');
-  });
-}
-
-function showInlineCommentNode(quick_comment){
-  if(quick_comment){
-    $(quick_comment).siblings(".last_comment").hide();
-    $(quick_comment).show();
-    $(quick_comment).children("textarea").focus();
-  }
-}
-
-function showInlineComment(node, url){
-  $(node).parent().toggleClass('hidden');
-  var quick_comment = $(node).parents(".fields").children(".quick-comment");
-  if ( $.trim($(quick_comment).html()) != '' ){
-    showInlineCommentNode(quick_comment);
-  }
-  else{
-    $.ajax({
-        url: url,
-        type: "get",
-        dataType: "html",
-        success: function(data, status, xhr){
-          $(quick_comment).html(data);
-          showInlineCommentNode(quick_comment);
-        },
-        error:function(xhr, status, error) {
-          var alertMessage = parseErrorResponse(xhr.responseText);
-          if (alertMessage) {
-            setErrorMessage(alertMessage);
-          }
-        }
-    })
-  };
-}
-
-function saveInlineComment(node, url){
-  var node = node;
-  var comment = $(node).siblings("textarea").val();
-  if ($.trim(comment) === "") return false;
-  $(node).prop('disabled', true);
-  $('.lock').show();
-  var card = $(node).parents(".issue-card");
-  var version_board = $('.planning-board').length;
-  $.ajax({
-    url: url,
-    type: "PUT",
-    dataType: "html",
-    data: { issue: { notes: comment }, version_board: version_board },
-    success: function(data, status, xhr){
-      $(card).replaceWith(data);
-    },
-    error: function(xhr, status, error){
-      var alertMessage = parseErrorResponse(xhr.responseText);
-      if (alertMessage) {
-        setErrorMessage(alertMessage);
-      }
-    },
-    complete: function(xhr, status){
-      $(node).prop('disabled', false);
-      $('.lock').hide();
-    }
-  });
-}
-
-function cancelInlineComment(node){
-  $(node).parent().hide();
-  $(node).parent().siblings(".last_comment").show();
-  $(node).parent().siblings('.quick-edit-card').toggleClass('hidden');
-  $(node).parent().html('');
-  return false;
-}
-
-function saveFullScreenState() {
-  state = $('html').hasClass('agile-board-fullscreen');
-  localStorage.setItem('full-screen-board', state);
-};
-
-$(document).ready(function(){
-  $('table.issues-board').StickyHeader();
-  $('div#agile-board-errors').click(function(){
-    $(this).animate({top: -$(this).outerHeight()}, 500);
-  });
-
-  $("#agile_live_search").keyup(function() {
-    var cards = $(".issues-board").find(".issue-card");
-    var searchTerm = this.value;
-    cards.removeClass("filtered");
-    cards.filter(function() {
-      return $(this).find(".name").text().toLowerCase().indexOf(searchTerm.toLowerCase()) === -1;
-    }).addClass("filtered");
-  });
-});
-
-function DisableNullFields() {
-  $('input').each(function(i) {
-    var $input = $(this);
-    if ($input.val() == '')
-      $input.attr('disabled', 'disabled');
-    }
-  );
-};
-
-function linkGenerator(path, text) {
-  return '<a href="' + window.location.origin + window.location.pathname + path + ' ">' + text + '</a>'
-};
-
-function linkableAttributeFields() {
-  var status_label = $('.status.attribute .label')
-  status_label.html(linkGenerator('/status', status_label.html()));
-
-  var assigned_label = $('.assigned-to.attribute .label')
-  assigned_label.html(linkGenerator('/assignee', assigned_label.html()));
-
-  var progress_label = $('.progress.attribute .label')
-  progress_label.html(linkGenerator('/done_ratio', progress_label.html()));
-};
-
-function chartLinkGenerator() {
-  var filter_values = $("#query_form").serialize();
-  event.preventDefault();
-  window.location.href = $('.agile_charts_link').prop('href') + '?' + filter_values;
-}
-
-function hideChartPeriodCheckbox() {
-  $("#cb_chart_period").hide();
-  $("label[for=cb_chart_period]").removeAttr("for");
-};
-
-function toggleChartUnit(chart, target) {
-  var showTarget = chartsWithUnits.indexOf(chart) > -1;
-  $('#' + target).toggle(showTarget);
-};
-
-function updateVersionAgileChart(url) {
-  $.ajax(url + '&chart=' + $('#chart_by_select').val() + '&chart_unit=' + $('#chart_unit').val());
-};
-
-function chartTooltipCallbacks(chartType) {
-  if (chartType === 'scatter') {
-    return scatterChartTooltipCallbacks()
-  } else {
-    return {}
-  }
-};
-
-function scatterChartTooltipCallbacks() {
-  return {
-    title: function (tooltipItem, data) {
-      return data.labels[tooltipItem[0].xLabel] || '';
-    },
-    label: function (tooltipItem, data) {
-      var label = data.datasets[tooltipItem.datasetIndex].label || '';
-      if (label) { label += ': ' }
-      label += tooltipItem.yLabel;
-      return label;
-    }
-  }
-};
diff --git a/plugins/redmine_agile/assets/javascripts/redmine_agile_sprint.js b/plugins/redmine_agile/assets/javascripts/redmine_agile_sprint.js
deleted file mode 100644
index 10a9b92..0000000
--- a/plugins/redmine_agile/assets/javascripts/redmine_agile_sprint.js
+++ /dev/null
@@ -1,14 +0,0 @@
-function setAgileSprintEndDate(){
-  var start_date = new Date($("#agile_sprint_start_date").val());
-  var end_date = new Date(start_date);
-  var duration = this.value;
-  if (start_date && duration >= 1) {
-    end_date.setDate(start_date.getDate() + duration * 7);
-    $("#agile_sprint_end_date").val(end_date.getFullYear() + '-' + ('0' + (end_date.getMonth() + 1)).slice(-2) + '-' + ('0' + end_date.getDate()).slice(-2));
-    $("#agile_sprint_duration").val(null);
-  }
-}
-
-$(document).ready(function(){
-  $('#content').on('change', '#agile_sprint_duration', setAgileSprintEndDate);
-});
diff --git a/plugins/redmine_agile/assets/stylesheets/jquery.simplecolorpicker.css b/plugins/redmine_agile/assets/stylesheets/jquery.simplecolorpicker.css
deleted file mode 100644
index 234017d..0000000
--- a/plugins/redmine_agile/assets/stylesheets/jquery.simplecolorpicker.css
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Very simple jQuery Color Picker
- * https://github.com/tkrotoff/jquery-simplecolorpicker
- *
- * Copyright (C) 2012-2013 Tanguy Krotoff <tkrotoff@gmail.com>
- *
- * Licensed under the MIT license
- */
-
-/**
- * Inspired by Bootstrap Twitter.
- * See https://github.com/twbs/bootstrap/blob/master/less/navbar.less
- * See https://github.com/twbs/bootstrap/blob/master/less/dropdowns.less
- */
-
-.simplecolorpicker.picker {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1051; /* Above Bootstrap modal (@zindex-modal = 1050) */
-  display: none;
-  float: left;
-
-  min-width: 160px;
-  max-width: 283px; /* @popover-max-width = 276px + 7 */
-
-  padding: 5px 0 0 5px;
-  margin: 2px 0 0;
-  list-style: none;
-  background-color: #fff; /* @dropdown-bg */
-
-  border: 1px solid #ccc;
-}
-
-.simplecolorpicker.inline {
-  display: inline-block;
-}
-
-.simplecolorpicker span {
-  margin: 0 5px 5px 0;
-}
-
-.simplecolorpicker.button,
-.simplecolorpicker span.color {
-  display: inline-block;
-  outline: none;
-  cursor: pointer;
-  border: 1px solid transparent;
-}
-
-.simplecolorpicker.button {
-  border: 1px solid #DDD;
-}
-
-.simplecolorpicker.button:after,
-.simplecolorpicker span.color:after {
-  content: '\00a0\00a0\00a0\00a0'; /* Spaces */
-}
-
-.simplecolorpicker span.color[data-disabled]:hover {
-  cursor: not-allowed;
-  border: 1px solid transparent;
-}
-
-.simplecolorpicker span.color:hover,
-.simplecolorpicker span.color[data-selected],
-.simplecolorpicker span.color[data-selected]:hover {
-  border: 1px solid #222; /* @gray-dark */
-}
-.simplecolorpicker span.color[data-selected]:after {
-  color: #fff;
-}
-
-/* Vertical separator, replaces optgroup. */
-.simplecolorpicker span.vr {
-  border-left: 1px solid #222; /* @gray-dark */
-}
-
-.simplecolorpicker span.color[data-selected]:after {
-  /*font-family: 'FontAwesome';*/
-  -webkit-font-smoothing: antialiased;
-
-  content: '\2714'; /* Ok/check mark */
-
-  margin-right: 2px;
-  margin-left: 2px;
-}
-
diff --git a/plugins/redmine_agile/assets/stylesheets/redmine_agile.css b/plugins/redmine_agile/assets/stylesheets/redmine_agile.css
deleted file mode 100644
index d8ce691..0000000
--- a/plugins/redmine_agile/assets/stylesheets/redmine_agile.css
+++ /dev/null
@@ -1,610 +0,0 @@
-/**********************************************************************/
-/* ICONS
-/**********************************************************************/
-#admin-menu a.agile { background-image: url(../images/agile.png);}
-.icon-fullscreen { background-image:  url(../images/fullscreen.png); }
-
-/**********************************************************************/
-/* FULLSCREEN
-/**********************************************************************/
-html.agile-board-fullscreen {
-  overflow: hidden;
-}
-
-html.agile-board-fullscreen div.agile-board {
-  position: fixed;
-  top: 0px;
-  left: 0px;
-  right: 0px;
-  bottom: 0px;
-  z-index: 20;
-  background: white;
-  overflow-y:scroll;
-}
-
-html.agile-board-fullscreen table.list.issues-board {
-  min-height: 100%;
-  top: 0px;
-  left: 0px;
-  right: 0px;
-}
-
-html.agile-board-fullscreen table.list.issues-board.sticky { min-height: auto; }
-
-html.agile-board-fullscreen .icon-fullscreen {
-  position: fixed;
-  right: 5px;
-  top: 5px;
-  z-index: 21;
-  text-indent: -9999px;
-  white-space: nowrap;
-  overflow: hidden;
-}
-
-div.agile-board.autoscroll {
-  overflow: visible;
-  position: relative;
-}
-
-/**********************************************************************/
-/* BOARD SETTINGS
-/**********************************************************************/
-table.options tr > td {
-  white-space: nowrap;
-}
-
-.agile_options_field {
-  display: inline-block;
-  min-width: 30%;
-}
-
-.agile_options_label {
-  display: inline-block;
-  min-width: 100px;
-}
-
-.selected_sprint {
-  font-size: 14px;
-}
-
-.selected_sprint > select {
-  font-size: 14px;
-}
-
-.card-fields .floating {
-  text-align: left;
-  width: 200px;
-  float: left;
-  overflow: hidden;
-  word-wrap: break-word;
-}
-
-.card-fields .floating label span {
-  width: 110px;
-  text-overflow: ellipsis;
-  display: inline-block;
-  white-space: nowrap;
-  overflow: hidden;
-  vertical-align: middle;
-}
-
-.card-fields .floating .wp_input{
-  width: 50px;
-  padding: 1px 5px !important;
-}
-
-.card-fields .floating .wp_input:not(:focus) {
-    background-color: transparent;
-    border-color: transparent;
-    font-size: 90%;
-}
-
-
-/**********************************************************************/
-/* ISSUES SIDEBAR
-/**********************************************************************/
-#sidebar ul {
-  margin: 0;
-  padding: 0;
-}
-
-#sidebar ul li {
-  list-style-type: none;
-  margin: 0px 2px 0px 0px;
-  padding: 0px 0px 0px 0px;
-}
-
-/**********************************************************************/
-/* PLANNING BOARD
-/**********************************************************************/
-table.versions-planning-board {
-  border-spacing: 10px;
-  width: 100%;
-}
-
-table.versions-planning-board td.issue-version-col {
-  vertical-align: top;
-  height: 400px;
-}
-
-table.list.versions-planning-board input#search.autocomplete {width: 80%;}
-
-table.list.versions-planning-board tbody tr,
-table.list.versions-planning-board tbody tr:hover {background-color: white;}
-table.list.versions-planning-board .header-hours {
-  float: right;
-  vertical-align: baseline;
-  height: 26px;
-  line-height: 26px;
-}
-
-/**********************************************************************/
-/* AGILE BOARD
-/**********************************************************************/
-table.list.issues-board {table-layout: fixed;}
-table.list.issues-board th {overflow: hidden; text-overflow: ellipsis;}
-
-.agile-board table.list.issues-board tbody tr,
-.agile-board table.list.issues-board tbody tr:hover {background-color: white;}
-
-.assignable-user.draggable-active {
-  padding: 5px;
-  border: 1px solid #D5D5D5;
-  background-color: #ffffdd;
-}
-
-table.issues-board .issue-status-col.empty { padding-bottom: 30px }
-table.issues-board td.issue-status-col.closed {background-color: #FAFAFA;}
-
-table.issues-board tr.group.swimlane {height: 30px;}
-table.issues-board tr.group.swimlane td {border-top: 0px;border-bottom: 1px solid #ccc;}
-
-table.issues-board tbody td,
-table.issues-board tbody tr.issue:hover td {border: 0px; vertical-align: top;}
-
-table.issues-board.minimize-closed td.issue-status-col.closed .issue-card {
-  width: 10px;
-  float: left;
-}
-table.issues-board.minimize-closed td.issue-status-col.closed .issue-card span.fields {display: none;}
-
-/**********************************************************************/
-/* ISSUE CARD
-/**********************************************************************/
-.issue-card {
-  padding: 5px;
-  border: solid 1px #d5d5d5;
-  background-color: #ffffdd;
-  margin: 5px;
-  word-wrap: break-word;
-  text-align: left;
-  white-space: normal;
-  cursor: pointer;
-  position: relative;
-}
-
-.issues-board td.issue-status-col.closed .issue-card.closed-issue {float: left;}
-.issues-board td.issue-status-col.closed.collapse .issue-card.float-left {float: left; position: relative;}
-.issue-card.closed-issue {white-space: nowrap; display: inline-block;}
-.issue-card .tip{ position: fixed; white-space: normal; }
-
-.issue-card:not(.context-menu-selection) .attributes,
-.issue-card:not(.context-menu-selection) span.hours  {color: #888;}
-
-.issue-card .attributes,
-.issue-card span.hours {font-size: 90%;}
-
-.issue-card span.hours {float: right;}
-
-.issue-card .thumbnail {
-  height: 145px;
-  background-size: auto;
-  background-position: center;
-  background-repeat: no-repeat;
-  margin: 5px;
-}
-
-.issue-card .checkbox {display: none;}
-.issue-card .avatar {float: left; margin-right: 5px;}
-.issue-card p.name {font-weight: bold;}
-.issue-card p.project {
-  border: 1px solid #d5d5d5;
-  padding: 5px;
-  margin-bottom: 5px;
-  text-align: center;
-  background-color: white;
-}
-.issue-card .info {
-  border-top: 1px solid #d5d5d5;
-  padding-top: 5px;
-  margin-top: 5px;
-}
-.issue-card table.progress {
-  float: none;
-  margin-top: 5px;
-  width: 100%;
-}
-
-.issue-card table.progress td {
-  height: 5px;
-  padding: 0px;
-}
-
-.issue-card li.task-closed {
-  text-decoration: line-through;
-  color: #999;
-}
-
-.issue-card div.sub-issues {
-  border-top: 1px solid #d5d5d5;
-  padding-top: 5px;
-  margin-top: 5px;
-  font-size: 90%;
-}
-
-.issue-card div.sub-issues ul {
-  margin: 1px 0px 5px 0px;
-  padding-left: 30px;
-}
-
-.issue-card .issue-id.without-tracker {
-  float: right;
-}
-
-.issue-card.context-menu-selection p.project {
-  color: black;
-}
-
-.issue-card.context-menu-selection .attributes,
-.issue-card.context-menu-selection em.info {
-  color: white;
-}
-
-.issues-board td.issue-status-col.closed .issue-card {background-color: #EDEDED;}
-
-.issue-card.ui-sortable-helper {
-  -moz-transform: rotate(5deg); /* Для Firefox */
-  -ms-transform: rotate(5deg); /* Для IE */
-  -webkit-transform: rotate(5deg); /* Для Safari, Chrome, iOS */
-  -o-transform: rotate(5deg); /* Для Opera */
-  transform: rotate(5deg);
-  box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);
-  -webkit-box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);
-  cursor: -moz-grabbing;
-  cursor: -webkit-grabbing;
-  cursor: grabbing;
-}
-
-
-.issue-card.br-red {border-left: 5px solid red;}
-.issue-card.br-green {border-left: 5px solid green;}
-.issue-card.br-blue {border-left: 5px solid blue;}
-.issue-card.br-turquoise {border-left: 5px solid turquoise;}
-.issue-card.br-lightgreen {border-left: 5px solid lightgreen;}
-.issue-card.br-yellow {border-left: 5px solid yellow;}
-.issue-card.br-orange {border-left: 5px solid orange;}
-.issue-card.br-purple {border-left: 5px solid purple;}
-.issue-card.br-gray {border-left: 5px solid gray;}
-
-table.list.issues tr.issue.br-red, .issue-card.br-red {border-left: 5px solid red;}
-table.list.issues tr.issue.br-green, .issue-card.br-green {border-left: 5px solid green;}
-table.list.issues tr.issue.br-blue, .issue-card.br-blue {border-left: 5px solid blue;}
-table.list.issues tr.issue.br-turquoise, .issue-card.br-turquoise {border-left: 5px solid turquoise;}
-table.list.issues tr.issue.br-lightgreen, .issue-card.br-lightgreen {border-left: 5px solid lightgreen;}
-table.list.issues tr.issue.br-yellow, .issue-card.br-yellow {border-left: 5px solid yellow;}
-table.list.issues tr.issue.br-orange, .issue-card.br-orange {border-left: 5px solid orange;}
-table.list.issues tr.issue.br-purple, .issue-card.br-purple {border-left: 5px solid purple;}
-table.list.issues tr.issue.br-gray, .issue-card.br-gray {border-left: 5px solid gray;}
-
-.issue-card.bk-red {background-color: #FFE2E3; border-color: rgb(255, 201, 201);}
-.issue-card.bk-green {background-color: #DFFFCC; border-color: rgb(190, 239, 190);}
-.issue-card.bk-blue {background-color: #DCE7FF; border-color: rgb(189, 189, 233);}
-.issue-card.bk-turquoise {background-color: #C4FDFF; border-color: rgb(151, 222, 214);}
-.issue-card.bk-lightgreen {background-color: #D2FFEF; border-color: rgb(184, 228, 226);}
-.issue-card.bk-yellow {background-color: #FFFD9C; border-color: rgb(234, 234, 94);}
-.issue-card.bk-orange {background-color: #FFDBBA; border-color: rgb(255, 202, 105);}
-.issue-card.bk-purple {background-color: #EFDFFC; border-color: rgb(233, 186, 233);}
-.issue-card.bk-gray {background-color: #e1e1e1; border-color: rgb(198, 198, 198);}
-
-div.issue.details.br-red div.subject div > h3::before, div.issue.details.bk-red div.subject div > h3::before, a.issue.bk-red::before, a.issue.br-red::before {content: "\25CF  "; color: red;}
-div.issue.details.br-green div.subject div > h3::before, div.issue.details.bk-green div.subject div > h3::before, a.issue.bk-green::before, a.issue.br-green::before {content: "\25CF  "; color: green;}
-div.issue.details.br-blue div.subject div > h3::before, div.issue.details.bk-blue div.subject div > h3::before, a.issue.bk-blue::before, a.issue.br-blue::before {content: "\25CF  "; color: blue;}
-div.issue.details.br-turquoise div.subject div > h3::before, div.issue.details.bk-turquoise div.subject div > h3::before, a.issue.bk-turquoise::before, a.issue.br-turquoise::before {content: "\25CF  "; color: turquoise;}
-div.issue.details.br-lightgreen div.subject div > h3::before, div.issue.details.bk-lightgreen div.subject div > h3::before, a.issue.bk-lightgreen::before, a.issue.br-lightgreen::before {content: "\25CF  "; color: lightgreen;}
-div.issue.details.br-yellow div.subject div > h3::before, div.issue.details.bk-yellow div.subject div > h3::before, a.issue.bk-yellow::before, a.issue.br-yellow::before {content: "\25CF  "; color: yellow;}
-div.issue.details.br-orange div.subject div > h3::before, div.issue.details.bk-orange div.subject div > h3::before, a.issue.bk-orange::before, a.issue.br-orange::before {content: "\25CF  "; color: orange;}
-div.issue.details.br-purple div.subject div > h3::before, div.issue.details.bk-purple div.subject div > h3::before, a.issue.bk-purple::before, a.issue.br-purple::before {content: "\25CF  "; color: purple;}
-div.issue.details.br-gray div.subject div > h3::before, div.issue.details.bk-gray div.subject div > h3::before, a.issue.bk-gray::before, a.issue.br-gray::before {content: "\25CF  "; color: gray;}
-
-table.list.issues tr.issue:not(.context-menu-selection).bk-red td.id a {background-color: #FFE2E3; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-green td.id a {background-color: #DFFFCC; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-blue td.id a {background-color: #DCE7FF; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-turquoise td.id a {background-color: #C4FDFF; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-lightgreen td.id a {background-color: #D2FFEF; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-yellow td.id a {background-color: #FFFD9C; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-orange td.id a {background-color: #FFDBBA; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-purple td.id a {background-color: #EFDFFC; padding: 2px; border: 1px solid #DDD;}
-table.list.issues tr.issue:not(.context-menu-selection).bk-gray td.id a {background-color: #e1e1e1; padding: 2px; border: 1px solid #DDD;}
-
-
-/**********************************************************************/
-/* ISSUE CARD CHECKLIST
-/**********************************************************************/
-
-.issue-card div.checklist {
-  border-top: 1px solid #d5d5d5;
-  padding-top: 5px;
-  margin-top: 5px;
-  font-size: 90%;
-}
-
-.issue-card div.checklist ul {
-  list-style: none;
-  padding: 0px;
-  margin: 0px;
-}
-
-.issue-card div.checklist input[type=checkbox] {
-  margin: 0px;
-}
-
-/**********************************************************************/
-/* ISSUE CARD QUICKEDIT
-/**********************************************************************/
-
-.issue-card div.quick-edit-card {
-  position: absolute;
-  right: 2px;
-  bottom: 2px;
-  border: 1px solid #ddd;
-  background-color: white;
-  height: 17px;
-  padding: 1px 1px 0px 1px;
-  margin: 0px;
-  display: none;
-}
-
-.issue-card div.quick-edit-card a {
-  float: left;
-}
-
-.issue-card:hover div.quick-edit-card.hidden{
-  display: none;
-}
-.issue-card:hover div.quick-edit-card {
-  display: block;
-  cursor: default;
-  opacity: 0.5;
-}
-
-.issue-card:hover div.quick-edit-card:hover { opacity: 1;}
-
-.issue-card .quick-comment {
-  display: none;
-  margin-top: 5px;
-  padding-right: 5px;
-}
-
-.issue-card .quick-comment textarea{
-  width: 100%;
-}
-
-.issue-card .quick-edit {
-  margin-right: 3px;
-}
-
-.issue-card .last-comment{
-  font-style: italic;
-}
-
-.issues-board .add-issue{
-  background: transparent;
-  border: 1px dashed rgba(48, 59, 77, 0.3);
-  padding: 5px;
-  margin: 5px;
-}
-
-.issues-board .add-issue .new-card__input{
-  outline: none;
-  width: 100%;
-  border: 0px;
-  background: transparent;
-  position: relative;
-  text-align: center;
-}
-
-/**********************************************************************/
-/* ISSUES BOARD
-/**********************************************************************/
-
-.issues-board td.issue-status-col.droppable-hover, .issues-board td.issue-status-col .issue-card.droppable-hover {
-  border-style: dotted;
-  background-color: #E9F8FD;
-}
-
-table.list thead tr th span.hours {color: #888; float: right; font-size: 90%; font-weight: normal;}
-table.issues-board thead th {white-space: normal;}
-/*
-tr.issue.br-red td.id::before,
-tr.issue.br-green td.id::before,
-tr.issue.br-blue td.id::before,
-tr.issue.br-turquoise td.id::before,
-tr.issue.br-lightgreen td.id::before,
-tr.issue.br-yellow td.id::before,
-tr.issue.br-orange td.id::before,
-tr.issue.br-purple td.id::before,
-tr.issue.br-gray td.id::before,
-*/
-
-.wp_input {
-  margin-left: 2px;
-}
-
-table.issues-board thead th span.count span.under_wp_limit {color: #008000;}
-table.issues-board thead th span.count span.over_wp_limit {color: #A50000;}
-
-table.issues-board thead th.under_wp_limit {background-color: #D4F1D4;}
-table.issues-board thead th.over_wp_limit {background-color: #FFE9E9;}
-
-table.issues-board tbody td.under_wp_limit {background-color: #EFFFEF;}
-table.issues-board tbody td.over_wp_limit {background-color: #FFF6F6;}
-
-.add-issue{
-  background: transparent;
-  border: 1px dashed rgba(48, 59, 77, 0.3);
-  margin: 5px;
-}
-
-.add-issue .new-card__input{
-  outline: none;
-  width: 100%;
-  border: 0px;
-  background: transparent;
-  position: relative;
-  text-align: center;
-}
-table.issues-board tbody td.over_wp_limit {background-color: #FFF6F6;}
-
-.lock {
-  display: none;
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  z-index: 9999;
-  opacity: 0.9;
-}
-
-.agile-board-fullscreen .lock{
-  position: fixed;
-}
-
-
-.agile-chart-container {
-  margin: auto;
-  min-height: 400px;
-  max-width: 1200px;
-}
-
-.issue-card.filtered {
-  opacity: 0.2;
-}
-
-
-table.list.issues-board.sticky {
-  display: table;
-  top: 0px;
-  position: fixed;
-}
-
-@media screen and (max-width: 899px) {
-  html.agile-board-fullscreen div.agile-board {
-    padding: 64px 0 0; /* padding-top equals header height */
-  }
-
-  html.agile-board-fullscreen .icon-fullscreen {
-    top: 64px; /* top equals header height */
-  }
-
-  html.agile-board-fullscreen table.list.issues-board.sticky { top: 64px; }
-  table.list.issues-board.sticky { top: 64px; }
-
-  html.agile-board-fullscreen #wrapper > div.flyout-menu.js-flyout-menu { z-index: 22; }
-}
-
-.planning-board {
-  display: flex;
-  overflow-x: auto;
-}
-
-.planning-board p {
-    margin: 0;
-}
-
-.planning-board .column-content {
-  width: 272px;
-  min-width: 272px;
-  margin: 0 4px 4px 4px;
-  background-color: #f6f7f8;
-  border: 1px solid #d7d7d7;
-}
-
-.planning-board .column-header {
-  display: block;
-  justify-content: space-between;
-  align-items: center;
-  min-height: 28px;
-  padding: 5px;
-  background-color: #eeeeee;
-  border-bottom: 1px solid #d7d7d7;
-}
-
-.planning-board .column-header .version-name {
-  color: #555;
-  font-size: 90%;
-  font-weight: bold;
-}
-
-.planning-board .column-issues {
-  padding-bottom: 30px;
-}
-
-.planning-board .closed-issue {
-  color: #999;
-  display: block;
-  white-space: inherit;
-  background-color: #ededed;
-  border-color: #d7d7d7;
-}
-
-.planning-board .closed-issue p.name a, .planning-board .closed-issue p.issue-id {
-  color: #999;
-  text-decoration: line-through;
-}
-
-.issue-edit-modal {
-  min-height: initial !important;
-}
-
-.modal-action-button {
-  height: 28px;
-}
-
-.agile_sprint_list .spring_column { text-align: center; }
-
-.controller-agile_boards .query-totals {
-  margin-top: -2.3em;
-}
-
-.agile-board-fullscreen .controller-agile_boards .query-totals {
-  margin: 0px;
-  position: fixed;
-  top: 0px;
-  background: inherit;
-  left: 0;
-  right: 0;
-  padding-right: 32px;
-  min-height: 20px;
-  line-height: 20px;
-}
-
-.backlog-column-header {
-  min-width: 15%;
-  border-right: solid 3px #d7d7d7;
-}
-
-.issue-backlog-search { padding: 5px 5px 0px 5px; }
-.issue-backlog-search input#search {
-  max-width: 100%;
-}
-
-.issues-board .backlog-column-header { background-color: #e1f1f8; }
-
-.issues-board .issue-backlog-col {
-  background: #e1f1f8;
-  border-right: solid 3px #d7d7d7 !important;
-}
-
-html {
-  overflow-y: inherit !important;
-}
diff --git a/plugins/redmine_agile/config/locales/de.yml b/plugins/redmine_agile/config/locales/de.yml
deleted file mode 100644
index 428cde2..0000000
--- a/plugins/redmine_agile/config/locales/de.yml
+++ /dev/null
@@ -1,233 +0,0 @@
-# German strings go here for Rails i18n
-de:
-  label_agile: Agiles Projektmanagement
-  label_agile_board: Agiles Taskboard
-  label_agile_board_plural: Agile Taskboards
-  label_agile_board_thumbnails: Vorschaubilder
-  label_agile_board_more_issues: Mehr Aufgaben
-  error_agile_status_transition: Aufgabenstatus konnte nicht geändert werden.
-  label_agile_board_new: Neues Taskboard
-  label_agile_board_edit: Taskboard bearbeiten
-  label_agile_my_boards: Meine Taskboards
-  label_agile_issue_id: Aufgaben-Nummer
-
-  permission_manage_public_agile_queries: Taskboards verwalten
-  permission_add_agile_queries: Taskboards hinzufügen
-  permission_view_agile_queries: Taskboards ansehen
-
-  #1.1.0
-  label_agile_board_default_fields: Standardfelder für Taskboard-Karten
-  label_agile_charts_issues_burndown: Burndown nach Aufgaben
-  label_agile_charts_work_burndown:  Burndown nach erfassten Zeiten
-  label_agile_charts_work_burndown_sp: Burndown nach Story points
-  label_agile_charts_work_burndown_hours: Burndown nach Stunden
-  label_agile_charts_number_of_hours: Stunden
-  label_agile_charts_number_of_issues: Anzahl Aufgaben
-  label_agile_charts_cumulative_flow: Kumulativer Fluss
-  label_agile_charts_trackers_cumulative_flow: Kumulativer Fluss nach Tracker
-  label_agile_charts_issues_velocity: Velocity
-  label_agile_charts_cycle_time: Zyklus
-  label_agile_charts_lead_time: Durchlaufzeit
-  label_agile_charts_average_lead_time: Durchschnittliche Durchlaufzeit
-  label_agile_chart_plural: Agile Diagramme
-  permission_view_agile_charts: Agile Diagramme ansehen
-  label_agile_ideal_work_remaining: Soll
-  label_agile_actual_work_remaining: Ist
-  label_agile_chart: Diagramm
-  label_agile_date_from: Von
-  label_agile_date_to: Bis
-  label_agile_chart_dates: Intervall für das Diagramm
-  label_agile_weighed_ideal_work_remaining: Gewichtetes Soll
-  label_agile_status_colors: Status-Farben
-  label_agile_charts_burnup: Burnup nach Aufgaben
-  label_agile_charts_number_of_days: Anzahl Tage
-  label_agile_too_many_items: "Das Diagramm konnte nicht generiert werden, da es die maximale Anzahl an darstellbaren Aufgaben (%{max}) überschreiten würde."
-  label_agile_time_reports_items_limit: Maximale Anzahl an Aufgaben in Diagrammen
-  label_agile_total_work_remaining: Gesamt
-  label_agile_default_chart: Standarddiagramm für Versions
-
-  #1.1.1
-  label_agile_charts_average_velocity: Durchschnittliche Velocity
-  label_agile_charts_avarate_number_of_issues: Durchschnittliche Aufgabenanzahl
-  label_agile_charts_avarate_number_of_hours: Durchschnittliche Stundenanzahl
-
-  #1.2.0
-  label_agile_color: Farben
-  permission_manage_agile_verions: Versionplanung verwalten
-  label_agile_version_planning: Versionplanung
-  error_agile_version_transition: Version der Aufgabe konnte nicht verändert werden.
-  label_agile_tracker_colors: Farben für Tracker
-  label_agile_issue_priority_colors: Farben für Aufgabenprioritäten
-  label_agile_color_based_on: Taskboard-Karten einfärben basierend auf
-  label_agile_color_no_colors: Keine Farben
-  label_agile_manage_colors: Farben verwalten
-  label_agile_fullscreen: Vollbild
-  label_agile_no_version_issues: Aufgaben ohne Version
-  label_agile_charts_work_burnup: Burnup nach erfassten Zeiten
-  label_agile_completed: Abgeschlossen
-  label_agile_exclude_weekends: Wochenenden von Soll-Zeiten ausnehmen
-  label_agile_board_truncated: "Das Taskboard wurde abgeschnitten, da es die maximale Anzahl an darstellbaren Aufgaben (%{max}) überschreitet."
-  label_agile_board_items_limit: Aufgabenlimit für Taskboards
-  label_agile_swimlanes: Swimlanes
-  label_agile_minimize_closed: Geschlossene Aufgaben minimieren
-  label_agile_fields: Felder für Taskboard-Karten
-  label_agile_default_board: Standard-Taskboard
-
-  #1.3.6
-  text_agile_move_not_possible: Diese Änderung ist nicht möglich
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Übergeordneter Tracker
-  label_agile_sub_issues: Unteraufgaben
-  label_agile_color_green: Grün
-  label_agile_color_blue: Blau
-  label_agile_color_turquoise: Türkis
-  label_agile_color_lightgreen: Hellgrün
-  label_agile_color_yellow: Gelb
-  label_agile_color_orange: Orange
-  label_agile_color_red: Rot
-  label_agile_color_purple: Lila
-  label_agile_color_gray: Grau
-  label_agile_has_sub_issues: Hat Unteraufgaben
-  label_agile_light_free_version: Agile Light freie Version
-  label_agile_link_to_pro: Upgrade auf PRO
-  label_agile_link_to_pro_demo: PRO version live demo
-  label_agile_link_to_more_plugins: Entdecken Sie mehr RedmineUP plugins
-  label_agile_button_agree: Einverstanden
-  label_agile_license: RedmineUP Lizenz
-  label_agile_saving_boards: Boards speichern
-  label_agile_horizontal_swim_lines: Horizontale Swimlanes
-  label_agile_board_sub_columns: Board-Unterspalten
-  label_agile_additional_agile_charts: Weitere Agile-Charts
-  label_agile_coloured_issue_cards: Farbige Karten
-  label_agile_4_more_features: 4 weitere Funktionen...
-  label_agile_upgrade_to_pro: Upgrade auf die PRO-Version um die Funktionen zu nutzen
-
-  label_agile_day_in_state: Zeit seit letzter Status-Änderung
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Daten von geschlossenen Aufgaben ausblenden
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Letzter Kommentar
-  label_agile_esitmate_units: Einheit für Schätzungen
-  label_agile_trackers_for_sp: Tracker für Story Points
-  label_agile_story_points: Story Points
-  field_story_points: Story Points
-  label_agile_charts_number_of_story_points: Anzahl an Story Points
-  label_agile_board_columns: Taskboard Spalten
-  lable_agile_wip_limit_exceeded: Work-in-progress Grenze überschritten
-  label_agile_wip_limit: Work-in-progress Grenze
-  label_agile_add_new_issue: + NEUE AUFGABE
-  label_agile_allow_create_cards: Karte für neue Aufgabe
-  label_agile_auto_assign_on_move: Selbst zuweisen bei Taskboard-Karten-Bewegung
-  text_agile_create_issue_error: Die Aufgabe konnte nicht erstellt werden
-  label_agile_inline_comment: Inline-Kommentar
-  label_agile_hours: Stunden
-  field_color: Farbe
-
-  #1.4.0
-  label_agile_esitmate_units: Einheit für Schätzung
-  label_agile_trackers_for_sp: Tracker für Story points
-  label_agile_story_points: Story points
-  field_story_points: Story points
-  label_agile_charts_number_of_story_points: Anzahl Story points
-  label_agile_board_columns: Board Spalten
-  lable_agile_wip_limit_exceeded: Work-in-progress Limit überschritten
-  label_agile_wip_limit: Work-in-progress Limit
-  label_agile_add_new_issue: '+ NEUES TICKET'
-  label_agile_allow_create_cards: Ticket aus Taskboard erstellen
-  label_agile_auto_assign_on_move: Automatische Zuweisung bei
-  text_agile_create_issue_error: Beim Erstellen der Aufgabe ist ein Fehler aufgetreten
-  label_agile_inline_comment: Inline Kommentar
-  label_agile_hours: Stunden
-  field_color: Farbe
-
-  field_duration: Dauer
-
-  field_closed_on_trendline: Closed trendline
-  field_created_on_trendline: Created trendline
-
-  label_agile_sp_values: Story points Werte
-
-  label_agile_interval_size: Interval Größe
-  label_agile_day: Tag
-  label_agile_week: Woche
-  label_agile_month: Monat
-  label_agile_quarter: Quartal
-  label_agile_year: Jahr
-  label_cards_search: Suche nach Thema
-
-  field_agile_sprint: Sprint
-  field_end_date: Enddatum
-  label_agile_sprints_on: Aktiviere Sprints standardmäßig
-  label_agile_sprint: Sprint
-  label_agile_sprint_plural: Sprints
-  label_agile_sprint_name: Name
-  label_agile_sprint_description: Beschreibung
-  label_agile_sprint_status: Status
-  label_agile_sprint_start_date: Startdatum
-  label_agile_sprint_end_date: Enddatum
-  label_agile_sprint_new: Neuer Sprint
-  label_agile_sprint_status_open: Offen
-  label_agile_sprint_status_active: Aktiv
-  label_agile_sprint_status_closed: Geschlossen
-  label_agile_sprint_duration: Dauer
-  label_agile_sprint_duration_select: <<Wähle Dauer>>
-  label_agile_sprint_duration_week_1: 1 Woche
-  label_agile_sprint_duration_week_2: 2 Wochen
-  label_agile_sprint_duration_week_3: 3 Wochen
-  label_agile_sprint_duration_week_4: 4 Wochen
-  label_agile_sprint_errors_crossed: Sprint Daten überschneiden sich mit einem anderen existierenden Sprint
-  label_agile_sprint_errors_end_more_start: Das Enddatum sollte nach dem Startdatum liegen
-  label_agile_sprint_default_chart: Diagramm
-  label_agile_sprint_chart_units: Einheit für Schätzung
-  label_agile_chart_for_sprint: "Für Sprint: %{sprint}"
-
-  label_agile_charts: Diagramme
-  label_agile_chart_burndown: Burndown Diagramm
-  label_agile_chart_burnup: Burnup Diagramm
-  label_agile_chart_units: Einheiten
-
-  label_agile_planning_board_more: Lade mehr...
-  label_agile_version_query_new: Neue agile Abfrage
-  label_agile_version_my_boards: Meine agilen boards
-  label_agile_version_board_plural: Agile boards
-  label_agile_version_board_edit: Bearbeite agile Board version
-
-  label_agile_edit_issue: Bearbeite Ticket
-
-  label_agile_board_type: Art des Taskboards
-  label_agile_board_type_kanban: Kanban board
-  label_agile_board_type_scrum: Scrum board
-  label_agile_board_totals: Gesamt
-  label_agile_board_totals_story_points: Story points
-  label_agile_board_totals_hours: Stunden
-  label_agile_board_totals_spent_time: Aufgewendete Zeit
-  label_agile_board_totals_percent_done: Prozent erledigt
-  label_agile_board_totals_velocity: Velocity
-  label_agile_board_totals_interval: Intervall
-  label_agile_board_totals_remaining: Verbleibend
-
-  label_agile_sprint_list_active: Aktive Sprints
-  label_agile_sprint_list_future: Zukünftige Sprints
-
-  label_agile_mixed_trackers: Verschiedene Tracker
-  label_agile_moving_average: Gleitender Durchschnitt
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: Backlog Spalten
-  label_agile_board_search_backlog_issues: Durchsuche Backlog Tickets
-  label_agile_version_plural: Versionen
-  label_agile_sprint_add: Sprint hinzufügen
-  label_agile_version_add: Version hinzufügen
-
-  label_agile_sprint_query_new: Neue agile Sprint Abfragen
-  label_agile_sprint_my_boards: Meine agilen Sprint boards
-  label_agile_sprint_board_plural: Agile Sprint boards
-  label_agile_sprint_board_edit: Bearbeite agiles Sprint board
-  field_sprint: Sprint
-  label_agile_no_sprint_issues: Tickets ohne Sprint
-  field_closed_sprints: Geschlossenen Sprints
-  field_closed_versions: Geschlossene Versionen
diff --git a/plugins/redmine_agile/config/locales/en.yml b/plugins/redmine_agile/config/locales/en.yml
deleted file mode 100644
index a223a40..0000000
--- a/plugins/redmine_agile/config/locales/en.yml
+++ /dev/null
@@ -1,231 +0,0 @@
-# English strings go here for Rails i18n
-en:
-  label_agile: Agile
-  label_agile_board: Agile board
-  label_agile_board_plural: Agile boards
-  label_agile_board_thumbnails: Thumbnails
-  label_agile_board_more_issues: More issues
-  error_agile_status_transition: Can’t change issue status
-  label_agile_board_new: New agile board
-  label_agile_board_edit: Edit agile board
-  label_agile_my_boards: My agile boards
-  label_agile_issue_id: Issue ID
-
-  permission_manage_public_agile_queries: Manage public agile boards
-  permission_add_agile_queries: Add agile boards
-  permission_view_agile_queries: View agile boards
-
-  #1.1.0
-  label_agile_board_default_fields: Default card fields
-  label_agile_charts_issues_burndown: Issues burndown
-  label_agile_charts_work_burndown_hours: Hours burndown
-  label_agile_charts_work_burndown_sp: Story points burndown
-  label_agile_charts_number_of_hours: Number of hours
-  label_agile_charts_number_of_issues: Number of issues
-  label_agile_charts_cumulative_flow: Cumulative flow
-  label_agile_charts_trackers_cumulative_flow: Trackers cumulative flow
-  label_agile_charts_issues_velocity: Velocity
-  label_agile_charts_cycle_time: Cycle time
-  label_agile_charts_lead_time: Lead time
-  label_agile_charts_average_lead_time: Average lead time
-  label_agile_chart_plural: Agile charts
-  label_agile_chart_new: New agile chart
-  label_agile_chart_edit: Edit agile chart
-  permission_view_agile_charts: View agile charts
-  label_agile_ideal_work_remaining: Ideal
-  label_agile_actual_work_remaining: Actual
-  label_agile_chart: Chart
-  label_agile_date_from: From
-  label_agile_date_to: To
-  label_agile_chart_dates: Chart intervals
-  label_agile_weighed_ideal_work_remaining: Weighted ideal
-  label_agile_status_colors: Status colors
-  label_agile_charts_burnup: Issues burnup
-  label_agile_charts_number_of_days: Number of days
-  label_agile_too_many_items: "The chart can't be created because it exceeds the maximum number of items that can be displayed (%{max})"
-  label_agile_time_reports_items_limit: Time entries based charts issues limit
-  label_agile_total_work_remaining: Total
-  label_agile_default_chart: Default chart
-
-  #1.1.1
-  label_agile_charts_average_velocity: Average velocity
-  label_agile_charts_avarate_number_of_issues: Average number of issues
-  label_agile_charts_avarate_number_of_hours: Average number of hours
-
-  #1.2.0
-  label_agile_color: Color
-  permission_manage_agile_verions: Manage version planning
-  label_agile_version_planning: Version planning
-  error_agile_version_transition: Can’t change issue version
-  label_agile_tracker_colors: Tracker colors
-  label_agile_issue_priority_colors: Issue priority colors
-  label_agile_color_based_on: Colored by
-  label_agile_color_no_colors: No colors
-  label_agile_manage_colors: Manage colors
-  label_agile_fullscreen: Full screen
-  label_agile_no_version_issues: Issues without version
-  label_agile_charts_work_burnup_hours: Hours burnup
-  label_agile_charts_work_burnup_sp: Story points burnup
-  label_agile_completed: Completed
-  label_agile_exclude_weekends: Exclude weekends from ideal effort
-  label_agile_board_truncated: "The board was truncated because it exceeds the maximum number of items that can be displayed (%{max})"
-  label_agile_board_items_limit: Agile board items limit
-  label_agile_swimlanes: Swim lanes
-  label_agile_minimize_closed: Minimize closed issues
-  label_agile_fields: Card fields
-  label_agile_default_board: Default board
-
-  #1.3.6
-  text_agile_move_not_possible: That move is not possible
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Parent tracker
-  label_agile_sub_issues: Sub issues
-  label_agile_color_green: Green
-  label_agile_color_blue: Blue
-  label_agile_color_turquoise: Turquoise
-  label_agile_color_lightgreen: Light green
-  label_agile_color_yellow: Yellow
-  label_agile_color_orange: Orange
-  label_agile_color_red: Red
-  label_agile_color_purple: Purple
-  label_agile_color_gray: Gray
-  label_agile_has_sub_issues: Has sub issues
-  label_agile_light_free_version: Agile Light free version
-  label_agile_link_to_pro: Upgrade to PRO
-  label_agile_link_to_pro_demo: PRO version live demo
-  label_agile_link_to_more_plugins: Find more RedmineUP plugins
-  label_agile_button_agree: Agree
-  label_agile_license: RedmineUP License
-  label_agile_saving_boards: Saving board
-  label_agile_horizontal_swim_lines: Horizontal swim lines
-  label_agile_board_sub_columns: Board sub-columns
-  label_agile_additional_agile_charts: Additional agile charts
-  label_agile_coloured_issue_cards: Coloured issue cards
-  label_agile_4_more_features: 4 more features...
-  label_agile_upgrade_to_pro: Upgrade to PRO version to use this features
-
-  label_agile_day_in_state:  In status
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Hide closed issues data
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Last comment
-
-  #1.4.0
-  label_agile_esitmate_units: Estimate units
-  label_agile_trackers_for_sp: Trackers for story points
-  label_agile_story_points: Story points
-  field_story_points: Story points
-  label_agile_charts_number_of_story_points: Number of story points
-  label_agile_board_columns: Board columns
-  lable_agile_wip_limit_exceeded: Work-in-progress limit exceeded
-  label_agile_wip_limit: Work-in-progress limit
-  label_agile_add_new_issue: '+ ADD NEW ISSUE'
-  label_agile_allow_create_cards: Card creation
-  label_agile_auto_assign_on_move: Auto assign on move
-  text_agile_create_issue_error: An error occurred while creating the task
-  label_agile_inline_comment: Inline comment
-  label_agile_hours: Hours
-  field_color: Color
-
-  field_duration: Duration
-
-  field_closed_on_trendline: Closed trendline
-  field_created_on_trendline: Created trendline
-
-  label_agile_sp_values: Story points values
-
-  label_agile_interval_size: Interval size
-  label_agile_day: Day
-  label_agile_week: Week
-  label_agile_month: Month
-  label_agile_quarter: Quarter
-  label_agile_year: Year
-  label_cards_search: Search by subject
-
-  field_agile_sprint: Sprint
-  field_end_date: End date
-  label_agile_sprints_on: Activate sprints by default
-  label_agile_sprint: Sprint
-  label_agile_sprint_plural: Sprints
-  label_agile_sprint_name: Name
-  label_agile_sprint_description: Description
-  label_agile_sprint_status: Status
-  label_agile_sprint_sharing: Sharing
-  label_agile_sprint_start_date: Start date
-  label_agile_sprint_end_date: End date
-  label_agile_sprint_new: New sprint
-  label_agile_sprint_status_open: Open
-  label_agile_sprint_status_active: Active
-  label_agile_sprint_status_closed: Closed
-  label_agile_sprint_duration: Duration
-  label_agile_sprint_duration_select: <<Select duration>>
-  label_agile_sprint_duration_week_1: 1 week
-  label_agile_sprint_duration_week_2: 2 weeks
-  label_agile_sprint_duration_week_3: 3 weeks
-  label_agile_sprint_duration_week_4: 4 weeks
-  label_agile_sprint_errors_crossed: Sprint dates are cross another existed sprint
-  label_agile_sprint_errors_end_more_start: End date should be more than start date
-  label_agile_sprint_errors_open_issues: Sprint with open issues can be closed
-  label_agile_sprint_default_chart: Сhart
-  label_agile_sprint_chart_units: Estimation
-  label_agile_chart_for_sprint: "For sprint: %{sprint}"
-
-  label_agile_charts: Charts
-  label_agile_chart_burndown: Burndown chart
-  label_agile_chart_burnup: Burnup chart
-  label_agile_chart_units: Units
-
-  label_agile_planning_board_more: Load more...
-  label_agile_version_query_new: New Agile versions query
-  label_agile_version_my_boards: My agile version boards
-  label_agile_version_board_plural: Agile version boards
-  label_agile_version_board_edit: Edit agile version board
-
-  label_agile_edit_issue: Edit issue
-
-  label_agile_board_type: Board type
-  label_agile_board_type_kanban: Kanban board
-  label_agile_board_type_scrum: Scrum board
-  label_agile_board_totals: Totals
-  label_agile_board_totals_story_points: Story points
-  label_agile_board_totals_hours: Hours
-  label_agile_board_totals_spent_time: Spent time
-  label_agile_board_totals_percent_done: Percent done
-  label_agile_board_totals_velocity: Velocity
-  label_agile_board_totals_interval: Interval
-  label_agile_board_totals_remaining: Remaining
-
-  label_agile_sprint_list_active: Active sprints
-  label_agile_sprint_list_future: Future sprints
-  label_agile_sprint_list_old: Old sprints
-
-  label_agile_mixed_trackers: Mixed trackers
-  label_agile_moving_average: Moving average
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: Backlog column
-  label_agile_board_search_backlog_issues: Search backlog issues
-  label_agile_version_plural: Versions
-  label_agile_sprint_add: Add sprint
-  label_agile_version_add: Add version
-
-  label_agile_sprint_query_new: New agile sprints query
-  label_agile_sprint_my_boards: My agile sprint boards
-  label_agile_sprint_board_plural: Agile sprint boards
-  label_agile_sprint_board_edit: Edit agile sprint board
-  field_sprint: Sprint
-  label_agile_no_sprint_issues: Issues without sprint
-  field_closed_sprints: Closed sprints
-  field_closed_versions: Closed versions
-
-  label_agile_sprint_sharing_none: Not shared
-  label_agile_sprint_sharing_descendants: With subprojects
-  label_agile_sprint_sharing_hierarchy: With project hierarchy
-  label_agile_sprint_sharing_tree: With project tree
-  label_agile_sprint_sharing_system: With all projects
-
-
diff --git a/plugins/redmine_agile/config/locales/es.yml b/plugins/redmine_agile/config/locales/es.yml
deleted file mode 100644
index 5891751..0000000
--- a/plugins/redmine_agile/config/locales/es.yml
+++ /dev/null
@@ -1,221 +0,0 @@
-# Spanish strings go here for Rails i18n
-es:
-  label_agile: Ágil
-  label_agile_board: Tablero ágil
-  label_agile_board_plural: Tableros ágiles
-  label_agile_board_thumbnails: Thumbnails
-  label_agile_board_more_issues: Más peticiones
-  error_agile_status_transition: No se puede cambiar el estado de la petición
-  label_agile_board_new: Nuevo tablero ágil
-  label_agile_board_edit: Editar tablero ágil
-  label_agile_my_boards: Mis tableros ágiles
-  label_agile_issue_id: ID de petición
-
-  permission_manage_public_agile_queries: Administrar tableros ágiles públicos
-  permission_add_agile_queries: Agregar tableros ágiles
-  permission_view_agile_queries: Ver tableros ágiles
-
-  #1.1.0
-  label_agile_board_default_fields: Columnas por defecto
-  label_agile_charts_issues_burndown: Peticiones burndown
-  label_agile_charts_work_burndown: Horas burndown
-  label_agile_charts_work_burndown_sp: Story points burndown
-  label_agile_charts_number_of_hours: Número de horas
-  label_agile_charts_number_of_issues: Número de peticiones
-  label_agile_charts_cumulative_flow: Flujo acumulado
-  label_agile_charts_trackers_cumulative_flow: Seguimiento de flujo acumulado
-  label_agile_charts_issues_velocity: Velocidad
-  label_agile_charts_cycle_time: Ciclo de tiempo
-  label_agile_charts_lead_time: Tiempo de ejecución
-  label_agile_charts_average_lead_time: Tiempo medio de entrega
-  label_agile_chart_plural: Gráficas Agile
-  label_agile_chart_new: Nueva gráfica Agile
-  label_agile_chart_edit: Editar gráfica Agile
-  permission_view_agile_charts: Ver gráfica Agile
-  label_agile_ideal_work_remaining: Ideal
-  label_agile_actual_work_remaining: Actual
-  label_agile_chart: Gráfica
-  label_agile_date_from: Desde
-  label_agile_date_to: a
-  label_agile_chart_dates: Gráfica de interválos
-  label_agile_weighed_ideal_work_remaining: Ideal ponderado
-  label_agile_status_colors: Estado de colores
-  label_agile_charts_burnup: Peticiones burnup
-  label_agile_charts_number_of_days: Número de días
-  label_agile_too_many_items: El gráfico no puede ser creado por exceder el número máximo de items que pueden ser mostrados (%{max})
-  label_agile_time_reports_items_limit: Tiempo de entradas basado en gráfico de peticiones límite
-  label_agile_total_work_remaining: Total
-  label_agile_default_chart: Versión gráfica por defecto
-
-  #1.1.1
-  label_agile_charts_average_velocity: Velocidad promedio
-  label_agile_charts_avarate_number_of_issues: Número de peticiones promedio
-  label_agile_charts_avarate_number_of_hours: Número de horas promedio
-
-  #1.2.0
-  label_agile_color: Color
-  permission_manage_agile_verions: Administrar planificación de versiones
-  label_agile_version_planning: planificación de versiones
-  error_agile_version_transition: No se puede cambiar la versión de la petición
-  label_agile_tracker_colors: Colores de tipos
-  label_agile_issue_priority_colors: Colores de prioridades de la petición
-  label_agile_color_based_on: Color por
-  label_agile_color_no_colors: Sin colores
-  label_agile_manage_colors: Administrar colores
-  label_agile_fullscreen: Pantalla completa
-  label_agile_no_version_issues: Petición sin version
-  label_agile_charts_work_burnup_hours: burnup de horas
-  label_agile_charts_work_burnup_sp: burnup de Story points
-  label_agile_completed: Completado
-  label_agile_exclude_weekends: Excluir los fines de semana del esfuerzo ideal
-  label_agile_board_truncated: El tablero se truncó porque excede el número máximo de elementos que se pueden mostrar (%{max})
-  label_agile_board_items_limit: Límite de elementos del tablero ágil
-  label_agile_swimlanes: Swimlanes
-  label_agile_minimize_closed: minimizar las peticiones cerradas
-  label_agile_fields: Campos de la tarjeta
-  label_agile_default_board: tablero por defecto
-
-  #1.3.6
-  text_agile_move_not_possible: Esté movimiento no es posible ()
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Tipo petición padre
-  label_agile_sub_issues: SubTareas
-  label_agile_color_green: Verde
-  label_agile_color_blue: Azul
-  label_agile_color_turquoise: Turquesa
-  label_agile_color_lightgreen: Verde claro
-  label_agile_color_yellow: Amarillo
-  label_agile_color_orange: Naranja
-  label_agile_color_red: Rojo
-  label_agile_color_purple: Morado
-  label_agile_color_gray: Gris
-  label_agile_has_sub_issues: Tiene SubTareas
-  label_agile_light_free_version: Versión gratuita Agile
-  label_agile_link_to_pro: Actualizar a PRO
-  label_agile_link_to_pro_demo: demo version PRO
-  label_agile_link_to_more_plugins: Encontrar más extensiones de RedmineUP
-  label_agile_button_agree: Acuerdo
-  label_agile_license: Licencia RedmineUP
-  label_agile_saving_boards: Guardar tablero
-  label_agile_horizontal_swim_lines: swimlines horizontales
-  label_agile_board_sub_columns: sub-columns del tablero
-  label_agile_additional_agile_charts: Additional agile charts
-  label_agile_coloured_issue_cards: Tarjetas de colores
-  label_agile_4_more_features: 4 funcionalides más...
-  label_agile_upgrade_to_pro: Actualice a la version PRO apra usar estas funcionalidades
-
-  label_agile_day_in_state: En estado
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Ocultar datos de las peticiones cerradas
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Último comentario
-
-  #1.4.0
-  label_agile_esitmate_units: Unidades estimadas
-  label_agile_trackers_for_sp: Tipos para  story points
-  label_agile_story_points: Story points
-  field_story_points: Story points
-  label_agile_charts_number_of_story_points: Número de story points
-  label_agile_board_columns: Columnas del tablero
-  lable_agile_wip_limit_exceeded: Excedido límite de dedicación
-  label_agile_wip_limit: límite de dedicación
-  label_agile_add_new_issue: "+ AÑADIR NUEVA PETICION"
-  label_agile_allow_create_cards: Crear una tarjeta
-  label_agile_auto_assign_on_move: Auto-Asignar al mover
-  text_agile_create_issue_error: Se produjo un error al crear la petición
-  label_agile_inline_comment: Comentario en linea
-  label_agile_hours: Horas
-  field_color: Color
-
-  field_duration: Duración
-
-  field_closed_on_trendline: Trendline cerrada
-  field_created_on_trendline: Trendline creada
-
-  label_agile_sp_values: Valores Story points
-
-  label_agile_interval_size: Tamaño intervalo
-  label_agile_day: Día
-  label_agile_week: Semana
-  label_agile_month: Mes
-  label_agile_quarter: Trimestre
-  label_agile_year: Año
-  label_cards_search: Búsqueda por asunto
-
-  field_agile_sprint: Sprint
-  field_end_date: Fecha fin
-  label_agile_sprints_on: Activar sprints por defecto
-  label_agile_sprint: Sprint
-  label_agile_sprint_plural: Sprints
-  label_agile_sprint_name: Nombre
-  label_agile_sprint_description: Descripción
-  label_agile_sprint_status: Estado
-  label_agile_sprint_start_date: Fecha inicio
-  label_agile_sprint_end_date: Fecha fin
-  label_agile_sprint_new: nuevo sprint
-  label_agile_sprint_status_open: Abierto
-  label_agile_sprint_status_active: Activo
-  label_agile_sprint_status_closed: Cerrado
-  label_agile_sprint_duration: Duraccion
-  label_agile_sprint_duration_select: <<Seleccionar duración>>
-  label_agile_sprint_duration_week_1: 1 semana
-  label_agile_sprint_duration_week_2: 2 semanas
-  label_agile_sprint_duration_week_3: 3 semanas
-  label_agile_sprint_duration_week_4: 4 semanas
-  label_agile_sprint_errors_crossed: Las fechas del Sprint se cruza con otro Sprint
-  label_agile_sprint_errors_end_more_start: La fecha fin debe ser mayor que la fecha de inicio
-  label_agile_sprint_errors_open_issues: las tareas abiertas del Sprint se puede cerrar
-  label_agile_sprint_default_chart: Gráfica
-  label_agile_sprint_chart_units: Estimación
-  label_agile_chart_for_sprint: "Para el sprint: %{sprint}"
-
-  label_agile_charts: Gráficas
-  label_agile_chart_burndown: Gráficas Burndown
-  label_agile_chart_burnup: Gráfica Burnup
-  label_agile_chart_units: Unidades
-
-  label_agile_planning_board_more: cargar más...
-  label_agile_version_query_new: Nueva consulta de version  Agile
-  label_agile_version_my_boards: Mis tableros Ágiles
-  label_agile_version_board_plural: Tablero versión Agil
-  label_agile_version_board_edit: Editar tablero versión Agil
-
-  label_agile_edit_issue: Editar petición
-
-  label_agile_board_type: Tipo de tablero
-  label_agile_board_type_kanban: Tablero Kanban
-  label_agile_board_type_scrum: Tablero Scrum
-  label_agile_board_totals: Totales
-  label_agile_board_totals_story_points: Story points
-  label_agile_board_totals_hours: Horas
-  label_agile_board_totals_spent_time: Tiempo dedicado
-  label_agile_board_totals_percent_done: "% Realizado"
-  label_agile_board_totals_velocity: Velocidad
-  label_agile_board_totals_interval: Intervalo
-  label_agile_board_totals_remaining: Restante
-
-  label_agile_sprint_list_active: Sprints activos
-  label_agile_sprint_list_future: Sprints futuros
-
-  label_agile_mixed_trackers: Tipos mixtos
-  label_agile_moving_average: Moving Average
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: columna Backlog
-  label_agile_board_search_backlog_issues: Buscar peticiones en backlog
-  label_agile_version_plural: Versiones
-  label_agile_sprint_add: Añadir sprint
-  label_agile_version_add: Añadir versión
-
-  label_agile_sprint_query_new: Nueva consulta Sprint ágil
-  label_agile_sprint_my_boards: Mis tableros Sprint ágil
-  label_agile_sprint_board_plural: Tablero Sprint ágil
-  label_agile_sprint_board_edit: Editar tablero Sprint ágil
-  field_sprint: Sprint
-  label_agile_no_sprint_issues: Peticiones sin sprint
-  field_closed_sprints: sprints cerrados
-  field_closed_versions: Versiones cerradas
diff --git a/plugins/redmine_agile/config/locales/fr.yml b/plugins/redmine_agile/config/locales/fr.yml
deleted file mode 100644
index 205a99d..0000000
--- a/plugins/redmine_agile/config/locales/fr.yml
+++ /dev/null
@@ -1,106 +0,0 @@
-# French strings go here for Rails i18n
-fr:
-  label_agile: Agile
-  label_agile_board: Tableau Agile
-  label_agile_board_plural: Tableaux Agile
-  label_agile_board_thumbnails: Miniatures
-  label_agile_board_more_issues: Plus de demandes
-  error_agile_status_transition: Impossible de modifier les statuts des demandes
-  label_agile_board_new: Nouveau tableau Agile
-  label_agile_board_edit: Modifier le tableau Agile
-  label_agile_my_boards: Mes tableaux Agiles
-  label_agile_issue_id: ID de demande
-
-  permission_manage_public_agile_queries: Gérer les tableaux Agile publics
-  permission_add_agile_queries: Ajouter des tableaux Agile
-  permission_view_agile_queries: Afficher des tableaux Agile
-
-  #1.1.0
-  label_agile_board_default_fields: Champs par défaut des cartes
-  label_agile_charts_issues_burndown: Burndown des demandes
-  label_agile_charts_work_burndown: Burndown du temps de travail
-  label_agile_charts_number_of_hours: Nombre d'heures
-  label_agile_charts_number_of_issues: Nombre de demandes
-  label_agile_charts_cumulative_flow: Flux cumulé
-  label_agile_charts_trackers_cumulative_flow: Flux cumulé des trackers
-  label_agile_charts_issues_velocity: Vélocité
-  label_agile_charts_lead_time: Délais
-  label_agile_charts_average_lead_time: Délai moyen de livraison
-  label_agile_chart_plural: Graphiques Agiles
-  permission_view_agile_charts: Afficher les graphique Agiles
-  label_agile_ideal_work_remaining: Idéal
-  label_agile_actual_work_remaining: Réel
-  label_agile_chart: Graphique
-  label_agile_date_from: De
-  label_agile_date_to: À
-  label_agile_chart_dates: Intervalles du graphique
-  label_agile_weighed_ideal_work_remaining: Idéal pondéré
-  label_agile_status_colors: Couleurs des statuts
-  label_agile_charts_burnup: Burnup des demandes
-  label_agile_charts_number_of_days: Nombre de jours
-  label_agile_too_many_items: "Le graphique ne peut pas être créé car il dépasse le nombre maximal d'éléments pouvant être affichés (%{max})"
-  label_agile_time_reports_items_limit: Limite du nombre de demandes pour les graphiques temporels
-  label_agile_total_work_remaining: Total
-  label_agile_default_chart: Graphique de versions
-
-  #1.1.1
-  label_agile_charts_average_velocity: Vélocité moyenne
-  label_agile_charts_avarate_number_of_issues: Nombre moyen de demandes
-  label_agile_charts_avarate_number_of_hours: nombre moyen d'heures
-
-  #1.2.0
-  label_agile_color: Couleur
-  permission_manage_agile_verions: Gérer la planification de versions
-  label_agile_version_planning: Planification de versions
-  error_agile_version_transition: Impossible de modifier la version de la demande
-  label_agile_tracker_colors: Couleurs des trackers
-  label_agile_issue_priority_colors: Couleurs des priorités de demandes
-  label_agile_color_based_on: Coloré par
-  label_agile_color_no_colors: Pas de couleurs
-  label_agile_manage_colors: Gérer les couleurs
-  label_agile_fullscreen: Plein écran
-  label_agile_no_version_issues: Demandes sans version
-  label_agile_charts_work_burnup: Burnup du temps de travail
-  label_agile_completed: Terminé
-  label_agile_exclude_weekends: Exclure les week-ends de l'effort idéal
-  label_agile_board_truncated: "Le tableau ne peut pas être créé car il dépasse le nombre maximal d'éléments pouvant être affichés (%{max})"
-  label_agile_board_items_limit: Limite du nombre d'élément du tableau Agile
-  label_agile_swimlanes: Lignes
-  label_agile_minimize_closed: Réduire les demandes fermées
-  label_agile_fields: Champs des cartes
-  label_agile_default_board: Tableau par défaut
-
-  #1.3.6
-  text_agile_move_not_possible: Ce déplacement n'est pas possible
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Tracker parent
-  label_agile_sub_issues: Sous-demandes
-  label_agile_color_green: Vert
-  label_agile_color_blue: Bleu
-  label_agile_color_turquoise: Turquoise
-  label_agile_color_lightgreen: Vert clair
-  label_agile_color_yellow: Jaune
-  label_agile_color_orange: Orange
-  label_agile_color_red: Rouge
-  label_agile_color_purple: Violet
-  label_agile_color_gray: Gris
-  label_agile_has_sub_issues: A des sous-demandes
-  label_agile_light_free_version: Agile Version gratuite
-  label_agile_link_to_pro: Mettre à jour en version PRO
-  label_agile_link_to_pro_demo: Démo live de la version PRO
-  label_agile_link_to_more_plugins: Voir plus de plugins RedmineUP
-  label_agile_button_agree: D'accord
-  label_agile_license: Licence RedmineUP
-  label_agile_saving_boards: Enregistrement des tableaux
-  label_agile_horizontal_swim_lines: Lignes en horizontal
-  label_agile_board_sub_columns: Sous-colonnes du tableau
-  label_agile_additional_agile_charts: Graphiques Agiles supplémentaires
-  label_agile_coloured_issue_cards: Cartes colorées
-  label_agile_4_more_features: 4 nouveautés supplémentaires...
-  label_agile_upgrade_to_pro: Passez en version PRO pour bénéficier de ces nouveautés
-
-  label_agile_day_in_state:  Dans le statut
-
-  #1.3.10
-  project_module_agile: Agile
\ No newline at end of file
diff --git a/plugins/redmine_agile/config/locales/it.yml b/plugins/redmine_agile/config/locales/it.yml
deleted file mode 100644
index 15fcb4f..0000000
--- a/plugins/redmine_agile/config/locales/it.yml
+++ /dev/null
@@ -1,221 +0,0 @@
-# Italian strings go here for Rails i18n
-it:
-  label_agile: Agile
-  label_agile_board: Tabella Agile
-  label_agile_board_plural: Tabelle Agile
-  label_agile_board_thumbnails: Thumbnails
-  label_agile_board_more_issues: Altre segnalazioni
-  error_agile_status_transition: Lo stato della segnalazione non può essere cambiato
-  label_agile_board_new: Nuova tabella Agile
-  label_agile_board_edit: Modifica tabella Agile
-  label_agile_my_boards: Le mie tabelle Agile
-  label_agile_issue_id: ID segnalazione
-
-  permission_manage_public_agile_queries: Gestione tabelle pubbliche Agile
-  permission_add_agile_queries: Aggiungi tabella Agile
-  permission_view_agile_queries: Visualizza tabelle Agile
-
-  #1.1.0
-  label_agile_board_default_fields: Colonne di Default
-  label_agile_charts_issues_burndown: Segnalazioni burndown
-  label_agile_charts_work_burndown_hours: Ore di burndown
-  label_agile_charts_work_burndown_sp: Story points burndown
-  label_agile_charts_number_of_hours: Numero di ore
-  label_agile_charts_number_of_issues: Numero di segnalazioni
-  label_agile_charts_cumulative_flow: Flusso cumulativo
-  label_agile_charts_trackers_cumulative_flow: Flusso cumulativo di trackers
-  label_agile_charts_issues_velocity: Velocità
-  label_agile_charts_cycle_time: Tempo di ciclo
-  label_agile_charts_lead_time: Tempo di esecuzione
-  label_agile_charts_average_lead_time: Media del tempo di esecuziona
-  label_agile_chart_plural: Grafici Agile
-  label_agile_chart_new: Nuovo grafico Agile
-  label_agile_chart_edit: Modifica Grafico Agile
-  permission_view_agile_charts: Visuaolizza grafici Agile
-  label_agile_ideal_work_remaining: Ideale
-  label_agile_actual_work_remaining: Attuale
-  label_agile_chart: Grafico
-  label_agile_date_from: Da
-  label_agile_date_to: A
-  label_agile_chart_dates: Intervalli dei grafici
-  label_agile_weighed_ideal_work_remaining: Ideali pesati
-  label_agile_status_colors: Colori di status
-  label_agile_charts_burnup: Burnup segnalazioni
-  label_agile_charts_number_of_days: Numero di giorni
-  label_agile_too_many_items: "Il grafico non può essere generato perchè ecccede il numero massimo di elementi che possono essere visualizzati (%{max})"
-  label_agile_time_reports_items_limit: Grafici basati su limiti temporali delle segnalazioni
-  label_agile_total_work_remaining: Totale
-  label_agile_default_chart: Grafico di default
-
-  #1.1.1
-  label_agile_charts_average_velocity: Media velocità
-  label_agile_charts_avarate_number_of_issues: Media del numero di segnalazioni
-  label_agile_charts_avarate_number_of_hours: Media del numero di ore
-
-  #1.2.0
-  label_agile_color: Colore
-  permission_manage_agile_verions: Gestione Pianificazione di versione
-  label_agile_version_planning: Pianificazione di versione
-  error_agile_version_transition: Cambio versione di segnalazione non possibile
-  label_agile_tracker_colors: Colori Tracker
-  label_agile_issue_priority_colors: Colori priorità di segnalazione
-  label_agile_color_based_on: Colorato da
-  label_agile_color_no_colors: Nessun colore
-  label_agile_manage_colors: Gestione colori
-  label_agile_fullscreen: Full screen
-  label_agile_no_version_issues: Segnalazioni senza versione
-  label_agile_charts_work_burnup_hours: Burnup ore di lavoro
-  label_agile_charts_work_burnup_sp: Burnup degli Story points
-  label_agile_completed: Completato
-  label_agile_exclude_weekends: Escludi weekends dall'effort ideale
-  label_agile_board_truncated: "La tabella è stata troncata perchè eccede il massimo numero di elementi che possono essere visualizzati (%{max})"
-  label_agile_board_items_limit: Limite elementi tabella Agile
-  label_agile_swimlanes: Swim lanes
-  label_agile_minimize_closed: Minimizza le segnalazioni chiuse
-  label_agile_fields: Colonne tabella
-  label_agile_default_board: Tabella di default
-
-  #1.3.6
-  text_agile_move_not_possible: That move is not possible
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Tracker principale
-  label_agile_sub_issues: Richieste secondarie
-  label_agile_color_green: Verde
-  label_agile_color_blue: Blu
-  label_agile_color_turquoise: Turchese
-  label_agile_color_lightgreen: Verde chiaro
-  label_agile_color_yellow: Giallo
-  label_agile_color_orange: Arancione
-  label_agile_color_red: Rosso
-  label_agile_color_purple: Viola
-  label_agile_color_gray: Grigio
-  label_agile_has_sub_issues: Ha segnalazioni secondarie
-  label_agile_light_free_version: Versione Agile Free
-  label_agile_link_to_pro: Aggiorna alla versione PRO
-  label_agile_link_to_pro_demo: Demo live della versione PRO
-  label_agile_link_to_more_plugins: Visualizza altri plug-in RedmineUP
-  label_agile_button_agree: Okay
-  label_agile_license: Licenza RedmineUP
-  label_agile_saving_boards: Salvataggio delle tabelle
-  label_agile_horizontal_swim_lines: Swim lanes
-  label_agile_board_sub_columns: Sottocolonne della tabella
-  label_agile_additional_agile_charts: Grafico aggiuntivo Agile
-  label_agile_coloured_issue_cards: Schede segnalazioni colorate
-  label_agile_4_more_features: 4 nuove funzionalità aggiuntive ...
-  label_agile_upgrade_to_pro: Passa alla versione PRO per beneficiare di queste nuove funzionalità
-
-  label_agile_day_in_state:  In status
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Nascondi i dati relativi ai problemi chiusi
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Ultimo commento
-
-  #1.4.0
-  label_agile_esitmate_units: Stimare le unità
-  label_agile_trackers_for_sp: Trackers per gli Story points
-  label_agile_story_points: Story points
-  field_story_points: Story points
-  label_agile_charts_number_of_story_points: Numero di Story points
-  label_agile_board_columns: Colonne della tabella
-  lable_agile_wip_limit_exceeded: Limite Work-in-progress superato
-  label_agile_wip_limit: Limite Work-in-progress
-  label_agile_add_new_issue: "+ aggiungi nuova segnalazione"
-  label_agile_allow_create_cards: Creazione schede
-  label_agile_auto_assign_on_move: Assegnazione automatica sulla disposizione
-  text_agile_create_issue_error: Si è verificato un errore durante la creazione dell'atticità
-  label_agile_inline_comment: Commento in linea
-  label_agile_hours: Ore
-  field_color: Colore
-
-  field_duration: Durata
-
-  field_closed_on_trendline: Trendline chiusa
-  field_created_on_trendline: Trendline creata
-
-  label_agile_sp_values: Valore degli Story points
-
-  label_agile_interval_size: Dimensione intervallo
-  label_agile_day: Giorno
-  label_agile_week: Settimana
-  label_agile_month: Mese
-  label_agile_quarter: Trimestre
-  label_agile_year: Anno
-  label_cards_search: Cerca per argomento
-
-  field_agile_sprint: Sprint
-  field_end_date: Data di fine
-  label_agile_sprints_on: Attiva gli sprint per impostazione predefinita
-  label_agile_sprint: Sprint
-  label_agile_sprint_plural: Sprints
-  label_agile_sprint_name: Nome
-  label_agile_sprint_description: Descrizione
-  label_agile_sprint_status: Stato
-  label_agile_sprint_start_date: Data d'inizio
-  label_agile_sprint_end_date: Data di fine
-  label_agile_sprint_new: Nuovo sprint
-  label_agile_sprint_status_open: Aperto
-  label_agile_sprint_status_active: Attivo
-  label_agile_sprint_status_closed: Chiuso
-  label_agile_sprint_duration: Durata
-  label_agile_sprint_duration_select: << Seleziona durata >>
-  label_agile_sprint_duration_week_1: 1 settimana
-  label_agile_sprint_duration_week_2: 2 settimane
-  label_agile_sprint_duration_week_3: 3 settimane
-  label_agile_sprint_duration_week_4: 4 settimane
-  label_agile_sprint_errors_crossed: Le date dello sprint si incrociano con un altro sprint esistente
-  label_agile_sprint_errors_end_more_start: La data di fine dovrebbe essere superiore alla data di inizio
-  label_agile_sprint_errors_open_issues: Lo sprint con problemi aperti non può essere chiuso
-  label_agile_sprint_default_chart: Grafico
-  label_agile_sprint_chart_units: Stima
-  label_agile_chart_for_sprint: "Per lo sprint: %{sprint}"
-
-  label_agile_charts: Grafici
-  label_agile_chart_burndown: Grafico di burndown
-  label_agile_chart_burnup: Grafico di burnup
-  label_agile_chart_units: unità
-
-  label_agile_planning_board_more: Carica altri ...
-  label_agile_version_query_new: Nuova query sulle versioni Agile
-  label_agile_version_my_boards: Le mie schede di versioni Agile
-  label_agile_version_board_plural: Schede versioni Agile
-  label_agile_version_board_edit: Modifica la scheda della versione Agile
-
-  label_agile_edit_issue: Modifica segnbalazione
-
-  label_agile_board_type: Tipo di tabella
-  label_agile_board_type_kanban: Tabella Kanban
-  label_agile_board_type_scrum: Tabella Scrum
-  label_agile_board_totals: Totali
-  label_agile_board_totals_story_points: Story points
-  label_agile_board_totals_hours: Ore
-  label_agile_board_totals_spent_time: Tempo trascorso
-  label_agile_board_totals_percent_done: Percentuale fatta
-  label_agile_board_totals_velocity: Velocità
-  label_agile_board_totals_interval: Intervallo
-  label_agile_board_totals_remaining: Residuo
-
-  label_agile_sprint_list_active: Sprint attivi
-  label_agile_sprint_list_future: Sprint futuri
-
-  label_agile_mixed_trackers: Trackers misti
-  label_agile_moving_average: Media scostamenti
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: Colonna Backlog
-  label_agile_board_search_backlog_issues: Cerca segnalazioni backlog
-  label_agile_version_plural: Versioni
-  label_agile_sprint_add: Aggiungi Sprint
-  label_agile_version_add: Aggiungi versione
-
-  label_agile_sprint_query_new: Nuova query sugli sprint Agile
-  label_agile_sprint_my_boards: Le mie tabelle Sprint Agile
-  label_agile_sprint_board_plural: Tabelle Sprint Agile
-  label_agile_sprint_board_edit: Modifica la tabella Sprint Agile
-  field_sprint: Sprint
-  label_agile_no_sprint_issues: Segnalazioni senza Sprint
-  field_closed_sprints: Sprint chiusi
-  field_closed_versions: Versioni chiuse
diff --git a/plugins/redmine_agile/config/locales/ko.yml b/plugins/redmine_agile/config/locales/ko.yml
deleted file mode 100644
index 5e58dcb..0000000
--- a/plugins/redmine_agile/config/locales/ko.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-# Translation by Ki Won Kim (http://x10.iptime.org/redmine, http://xyz37.blog.me, xyz37@naver.com)
-ko:
-  label_agile: "애자일"
-  label_agile_board: "애자일 보드"
-  label_agile_board_plural: "애자일 보드"
-  label_agile_board_thumbnails: "축소판 그림"
-  label_agile_board_more_issues: "더 많은 일감"
-  error_agile_status_transition: "일감 상태를 변경할 수 없습니다."
-  label_agile_board_new: "신규 애자일 보드"
-  label_agile_board_edit: "애자일 보드 수정"
-  label_agile_my_boards: "내 애자일 보드"
-  label_agile_issue_id: "일감 번호"
-
-  permission_manage_public_agile_queries: "공용 애자일 보드 관리"
-  permission_add_agile_queries: "애자일 보드 추가"
-  permission_view_agile_queries: "애자일 보드 보기"
-
-  #1.1.0
-  label_agile_board_default_fields: "기본 카드 필드"
-  label_agile_charts_issues_burndown: "일감 Burn Down"
-  label_agile_charts_work_burndown: "작업 Burn Down"
-  label_agile_charts_number_of_hours: "시간 수"
-  label_agile_charts_number_of_issues: "일감 수"
-  label_agile_charts_cumulative_flow: "누적 흐름"
-  label_agile_charts_trackers_cumulative_flow: "일감 유형 누적 흐름"
-  label_agile_charts_issues_velocity: "속도"
-  label_agile_charts_lead_time: "리드 타임"
-  label_agile_charts_average_lead_time: "평균 리드 타임"
-  label_agile_chart_plural: "애자일 차트"
-  permission_view_agile_charts: "애자일 차트 보기"
-  label_agile_ideal_work_remaining: "이상적인"
-  label_agile_actual_work_remaining: "실제"
-  label_agile_chart: "차트"
-  label_agile_date_from: "부터"
-  label_agile_date_to: "까지"
-  label_agile_chart_dates: "차트 간격"
-  label_agile_weighed_ideal_work_remaining: "무게 이상"
-  label_agile_status_colors: "상태 색상"
-  label_agile_charts_burnup: "일감 Burn Up"
-  label_agile_charts_number_of_days: "일 수"
-  label_agile_too_many_items: "차트가 표시 (% {max}) 될 수 있는 항목의 최대 수를 초과 하므로 만들 수 없습니다."
-  label_agile_time_reports_items_limit: "시간 항목에 기반한 차트 일감 제한"
-  label_agile_total_work_remaining: "전체"
-  label_agile_default_chart: "버전 기본 차트"
-
-  #1.1.1
-  label_agile_charts_average_velocity: "평균 속도"
-  label_agile_charts_avarate_number_of_issues: "평균 일감 수"
-  label_agile_charts_avarate_number_of_hours: "평균 시간 수"
-
-  #1.2.0
-  label_agile_color: "색상"
-  permission_manage_agile_verions: "버전 계획 관리"
-  label_agile_version_planning: "버전 계획"
-  error_agile_version_transition: "일감 버전을 변경할 수 없습니다."
-  label_agile_tracker_colors: "일감 유형 색상"
-  label_agile_issue_priority_colors: "일감 우선 순위 색상"
-  label_agile_color_based_on: "색상의"
-  label_agile_color_no_colors: "색상 없음"
-  label_agile_manage_colors: "색상 관리"
-  label_agile_fullscreen: "전체 화면"
-  label_agile_no_version_issues: "버전없는 일감들"
-  label_agile_charts_work_burnup: "작업 Burn Up"
-  label_agile_completed: "완료됨"
-  label_agile_exclude_weekends: "이상적인 노력에서 주말 제외"
-  label_agile_board_truncated: "보드가 표시 (% {max}) 될 수 있는 항목의 최대 수를 초과 하므로 잘렸습니다."
-  label_agile_board_items_limit: "애자일 보드 항목 제한"
-  label_agile_swimlanes: "Swim lanes"
-  label_agile_minimize_closed: "완료된 일감 최소화"
-  label_agile_fields: "카드 필드"
\ No newline at end of file
diff --git a/plugins/redmine_agile/config/locales/pt-BR.yml b/plugins/redmine_agile/config/locales/pt-BR.yml
deleted file mode 100644
index 5580ab7..0000000
--- a/plugins/redmine_agile/config/locales/pt-BR.yml
+++ /dev/null
@@ -1,222 +0,0 @@
-#  Portugues - Brazil strings go here for Rails i18n
-pt-BR:
-  label_agile: Ágil
-  label_agile_board: Quadro Ágil
-  label_agile_board_plural: Quadros ágeis
-  label_agile_board_thumbnails: Thumbnails
-  label_agile_board_more_issues: Mais tarefas
-  error_agile_status_transition: Não é possível alterar o status do problema
-  label_agile_board_new: Novo quadro ágil
-  label_agile_board_edit: Editar quadro ágil
-  label_agile_my_boards: Meus quadros ágeis
-  label_agile_issue_id: Id. Tarefa
-
-  permission_manage_public_agile_queries: Gerenciar quadros ágeis publicos
-  permission_add_agile_queries: Adicionar quadro ágil
-  permission_view_agile_queries: Visualizar quadros ágeis
-
-  #1.1.0
-  label_agile_board_default_fields: Campos padrão no post-it
-  label_agile_charts_issues_burndown: Burndow de tarefas
-  label_agile_charts_work_burndown_hours: Burndow de horas
-  label_agile_charts_work_burndown_sp: Burndow por pontos por histórias
-  label_agile_charts_number_of_hours: Número de horas
-  label_agile_charts_number_of_issues: Número de tarefas
-  label_agile_charts_cumulative_flow: Fluxo cumulativo
-  label_agile_charts_trackers_cumulative_flow: Fluxo comulativo por tipo
-  label_agile_charts_issues_velocity: Velocidade
-  label_agile_charts_cycle_time: Tempo de ciclo
-  label_agile_charts_lead_time: Tempo de espera
-  label_agile_charts_average_lead_time: Tempo de espera médio
-  label_agile_chart_plural: Gráficos ágeis
-  label_agile_chart_new: Novo gráfico ágil
-  label_agile_chart_edit: Editar gráfico ágil
-  permission_view_agile_charts: Visualizar gráficos ágeis
-  label_agile_ideal_work_remaining: Ideal
-  label_agile_actual_work_remaining: Atual
-  label_agile_chart: Gráfico
-  label_agile_date_from: De
-  label_agile_date_to: Para
-  label_agile_chart_dates: Intervalo de gráficos
-  label_agile_weighed_ideal_work_remaining: Ideal ponderado
-  label_agile_status_colors: Cor dos status
-  label_agile_charts_burnup: Burnup tarefas
-  label_agile_charts_number_of_days: Número de dias
-  label_agile_too_many_items: "O gráfico não pode ser criado porque excede o número máximo de itens que podem ser exibidos (%{max})"
-  label_agile_time_reports_items_limit: Limite de problemas de gráficos baseados em entradas de tempo
-  label_agile_total_work_remaining: Total
-  label_agile_default_chart: Gráfico padrão
-
-  #1.1.1
-  label_agile_charts_average_velocity: Velocidade média
-  label_agile_charts_avarate_number_of_issues: Média de número de tarefas
-  label_agile_charts_avarate_number_of_hours: Média número de horas
-
-  #1.2.0
-  label_agile_color: Cor
-  permission_manage_agile_verions: Gerencia planejamento da versão
-  label_agile_version_planning: Planejamento da versão
-  error_agile_version_transition: Não é possível alterar a versão do problema
-  label_agile_tracker_colors: Cores por tipo
-  label_agile_issue_priority_colors: Cores pela prioridade das tarefas
-  label_agile_color_based_on: Colorir por
-  label_agile_color_no_colors: Sem cores
-  label_agile_manage_colors: Gerenciar cores
-  label_agile_fullscreen: Tela cheia
-  label_agile_no_version_issues: Tarefas sem versão
-  label_agile_charts_work_burnup_hours: Burnup de horas
-  label_agile_charts_work_burnup_sp: Burnup de pontos por histórias
-  label_agile_completed: Completado
-  label_agile_exclude_weekends: Exclua fins de semana do esforço
-  label_agile_board_truncated: "O tabuleiro foi truncado porque excede o número máximo de itens que podem ser exibidos (%{max})"
-  label_agile_board_items_limit: Limites de tarefas no quadro ágil
-  label_agile_swimlanes: Rais do quadro
-  label_agile_minimize_closed: Minimizar itens concluídos
-  label_agile_fields: Post-its
-  label_agile_default_board: Quadro padrão
-
-  #1.3.6
-  text_agile_move_not_possible: Esse movimento não é possível
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Tipo parental
-  label_agile_sub_issues: Sub-tarefas
-  label_agile_color_green: Verde
-  label_agile_color_blue: Azul
-  label_agile_color_turquoise: Turquesa
-  label_agile_color_lightgreen: Verde claro
-  label_agile_color_yellow: Amarelo
-  label_agile_color_orange: Laranja
-  label_agile_color_red: Vermelho
-  label_agile_color_purple: Roxo
-  label_agile_color_gray: Cinza
-  label_agile_has_sub_issues: Teve Sub-tarefas
-  label_agile_light_free_version: Versão gratuita Agile Light
-  label_agile_link_to_pro: Atualize para PRO
-  label_agile_link_to_pro_demo: Demo da versão PRO
-  label_agile_link_to_more_plugins: Procurar mais plugins no RedmineUP
-  label_agile_button_agree: Aceito
-  label_agile_license: RedmineUP Licensa
-  label_agile_saving_boards: Salvando quadro
-  label_agile_horizontal_swim_lines: Rais horizontais
-  label_agile_board_sub_columns: Quadro sub-colunas
-  label_agile_additional_agile_charts: Quadro ágil adicional
-  label_agile_coloured_issue_cards: Colorir post-its das tarefas
-  label_agile_4_more_features: 4 mais funcionalidades...
-  label_agile_upgrade_to_pro: Atualizar para versão PRO version para usar estas funcionalidades
-
-  label_agile_day_in_state:  Em status
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Ocultar dados de tarefas fechadas
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Último comentário
-
-  #1.4.0
-  label_agile_esitmate_units: Unidades estimadas
-  label_agile_trackers_for_sp: Tipos por pontos de histórias
-  label_agile_story_points: Pontos por histórias
-  field_story_points: Pontos por histórias
-  label_agile_charts_number_of_story_points: Número de pontos por história
-  label_agile_board_columns: Colunas do quadro
-  lable_agile_wip_limit_exceeded: Limite de trabalho excedido
-  label_agile_wip_limit: Limite trabalho WIP
-  label_agile_add_new_issue: '+ Adicionar nova tarefa'
-  label_agile_allow_create_cards: Criação do post-it
-  label_agile_auto_assign_on_move: Adicionar o responsável ao mover
-  text_agile_create_issue_error: Ocorreu um erro na criação da tarefa
-  label_agile_inline_comment: Comentários em linha
-  label_agile_hours: Horas
-  field_color: Cores
-
-  field_duration: Duração
-
-  field_closed_on_trendline: Linha de tendência fechada
-  field_created_on_trendline: Criar linha de tendência
-
-  label_agile_sp_values: Valor dos pontos por história
-
-  label_agile_interval_size: Tamanho do intervalo
-  label_agile_day: Dia
-  label_agile_week: Semana
-  label_agile_month: Mês
-  label_agile_quarter: Trimestre
-  label_agile_year: Ano
-  label_cards_search: Pesquisar por título
-
-  field_agile_sprint: Sprint
-  field_end_date: Encerramento
-  label_agile_sprints_on: Ativar sprints por padrão
-  label_agile_sprint: Sprint
-  label_agile_sprint_plural: Sprints
-  label_agile_sprint_name: Nome
-  label_agile_sprint_description: Descrição
-  label_agile_sprint_status: Status
-  label_agile_sprint_start_date: Início em
-  label_agile_sprint_end_date: Término em
-  label_agile_sprint_new: Nova sprint
-  label_agile_sprint_status_open: Aberta
-  label_agile_sprint_status_active: Ativa
-  label_agile_sprint_status_closed: Fechada
-  label_agile_sprint_duration: Duração
-  label_agile_sprint_duration_select: <<Select duration>>
-  label_agile_sprint_duration_week_1: 1 semana
-  label_agile_sprint_duration_week_2: 2 semanas
-  label_agile_sprint_duration_week_3: 3 semanas
-  label_agile_sprint_duration_week_4: 4 semanas
-  label_agile_sprint_errors_crossed: As datas da sprint são cruzadas com outra sprint existente
-  label_agile_sprint_errors_end_more_start: A data de término deve ser posterior à data de início
-  label_agile_sprint_errors_open_issues: Sprint com problemas abertos pode ser fechado
-  label_agile_sprint_default_chart: Gráfico
-  label_agile_sprint_chart_units: Estimativa
-  label_agile_chart_for_sprint: "Para sprint: %{sprint}"
-
-  label_agile_charts: Gráficos
-  label_agile_chart_burndown: Gráfico burndown
-  label_agile_chart_burnup: Gráfico burnup
-  label_agile_chart_units: Unidades
-
-  label_agile_planning_board_more: Carregar mais...
-  label_agile_version_query_new: Consulta de novas versões do Agile
-  label_agile_version_my_boards: Meus quadros ágeis
-  label_agile_version_board_plural: Versões dos quados ágeis
-  label_agile_version_board_edit: Editar versão do quadro ágil
-
-  label_agile_edit_issue: Editar tarefa
-
-  label_agile_board_type: Tipo do quadro
-  label_agile_board_type_kanban: Quadro Kanban
-  label_agile_board_type_scrum: Quadro Scrum
-  label_agile_board_totals: Totais
-  label_agile_board_totals_story_points: Pontos por história
-  label_agile_board_totals_hours: Horas
-  label_agile_board_totals_spent_time: Tempo gasto
-  label_agile_board_totals_percent_done: Percentual de pronto
-  label_agile_board_totals_velocity: Velocidade
-  label_agile_board_totals_interval: Intervalo
-  label_agile_board_totals_remaining: Remanecente
-
-  label_agile_sprint_list_active: Sprints ativos
-  label_agile_sprint_list_future:  Sprints futuros
-  label_agile_sprint_list_old: Sprints antigos
-
-  label_agile_mixed_trackers: Tipos mistos
-  label_agile_moving_average: Média móvel
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: Colunas do Backlog
-  label_agile_board_search_backlog_issues: Pesquisar tarefas do backlog
-  label_agile_version_plural: Vesões
-  label_agile_sprint_add: Adicionar novo Sprint
-  label_agile_version_add: Adicionar Versão
-
-  label_agile_sprint_query_new: Nova consulta sprint ágil
-  label_agile_sprint_my_boards: Meus quadros de sprint
-  label_agile_sprint_board_plural: Quadros de sprint ágeis
-  label_agile_sprint_board_edit: Editar quadros de sprint
-  field_sprint: Sprint
-  label_agile_no_sprint_issues: Tarefas sem sprint
-  field_closed_sprints: Sprints fechadas
-  field_closed_versions: Versões fechadas
diff --git a/plugins/redmine_agile/config/locales/pt.yml b/plugins/redmine_agile/config/locales/pt.yml
deleted file mode 100644
index 89bfa75..0000000
--- a/plugins/redmine_agile/config/locales/pt.yml
+++ /dev/null
@@ -1,222 +0,0 @@
-#  Portugues - Portugal strings go here for Rails i18n
-pt:
-  label_agile: Ágil
-  label_agile_board: Quadro Ágil
-  label_agile_board_plural: Quadros ágeis
-  label_agile_board_thumbnails: Thumbnails
-  label_agile_board_more_issues: Mais tarefas
-  error_agile_status_transition: Não é possível alterar o status do problema
-  label_agile_board_new: Novo quadro ágil
-  label_agile_board_edit: Editar quadro ágil
-  label_agile_my_boards: Meus quadros ágeis
-  label_agile_issue_id: Id. Tarefa
-
-  permission_manage_public_agile_queries: Gerenciar quadros ágeis publicos
-  permission_add_agile_queries: Adicionar quadro ágil
-  permission_view_agile_queries: Visualizar quadros ágeis
-
-  #1.1.0
-  label_agile_board_default_fields: Campos padrão no post-it
-  label_agile_charts_issues_burndown: Burndow de tarefas
-  label_agile_charts_work_burndown_hours: Burndow de horas
-  label_agile_charts_work_burndown_sp: Burndow por pontos por histórias
-  label_agile_charts_number_of_hours: Número de horas
-  label_agile_charts_number_of_issues: Número de tarefas
-  label_agile_charts_cumulative_flow: Fluxo cumulativo
-  label_agile_charts_trackers_cumulative_flow: Fluxo comulativo por tipo
-  label_agile_charts_issues_velocity: Velocidade
-  label_agile_charts_cycle_time: Tempo de ciclo
-  label_agile_charts_lead_time: Tempo de espera
-  label_agile_charts_average_lead_time: Tempo de espera médio
-  label_agile_chart_plural: Gráficos ágeis
-  label_agile_chart_new: Novo gráfico ágil
-  label_agile_chart_edit: Editar gráfico ágil
-  permission_view_agile_charts: Visualizar gráficos ágeis
-  label_agile_ideal_work_remaining: Ideal
-  label_agile_actual_work_remaining: Atual
-  label_agile_chart: Gráfico
-  label_agile_date_from: De
-  label_agile_date_to: Para
-  label_agile_chart_dates: Intervalo de gráficos
-  label_agile_weighed_ideal_work_remaining: Ideal ponderado
-  label_agile_status_colors: Cor dos status
-  label_agile_charts_burnup: Burnup tarefas
-  label_agile_charts_number_of_days: Número de dias
-  label_agile_too_many_items: "O gráfico não pode ser criado porque excede o número máximo de itens que podem ser exibidos (%{max})"
-  label_agile_time_reports_items_limit: Limite de problemas de gráficos baseados em entradas de tempo
-  label_agile_total_work_remaining: Total
-  label_agile_default_chart: Gráfico padrão
-
-  #1.1.1
-  label_agile_charts_average_velocity: Velocidade média
-  label_agile_charts_avarate_number_of_issues: Média de número de tarefas
-  label_agile_charts_avarate_number_of_hours: Média número de horas
-
-  #1.2.0
-  label_agile_color: Cor
-  permission_manage_agile_verions: Gerencia planejamento da versão
-  label_agile_version_planning: Planejamento da versão
-  error_agile_version_transition: Não é possível alterar a versão do problema
-  label_agile_tracker_colors: Cores por tipo
-  label_agile_issue_priority_colors: Cores pela prioridade das tarefas
-  label_agile_color_based_on: Colorir por
-  label_agile_color_no_colors: Sem cores
-  label_agile_manage_colors: Gerenciar cores
-  label_agile_fullscreen: Tela cheia
-  label_agile_no_version_issues: Tarefas sem versão
-  label_agile_charts_work_burnup_hours: Burnup de horas
-  label_agile_charts_work_burnup_sp: Burnup de pontos por histórias
-  label_agile_completed: Completado
-  label_agile_exclude_weekends: Exclua fins de semana do esforço
-  label_agile_board_truncated: "O tabuleiro foi truncado porque excede o número máximo de itens que podem ser exibidos (%{max})"
-  label_agile_board_items_limit: Limites de tarefas no quadro ágil
-  label_agile_swimlanes: Rais do quadro
-  label_agile_minimize_closed: Minimizar itens concluídos
-  label_agile_fields: Post-its
-  label_agile_default_board: Quadro padrão
-
-  #1.3.6
-  text_agile_move_not_possible: Esse movimento não é possível
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Tipo parental
-  label_agile_sub_issues: Sub-tarefas
-  label_agile_color_green: Verde
-  label_agile_color_blue: Azul
-  label_agile_color_turquoise: Turquesa
-  label_agile_color_lightgreen: Verde claro
-  label_agile_color_yellow: Amarelo
-  label_agile_color_orange: Laranja
-  label_agile_color_red: Vermelho
-  label_agile_color_purple: Roxo
-  label_agile_color_gray: Cinza
-  label_agile_has_sub_issues: Teve Sub-tarefas
-  label_agile_light_free_version: Versão gratuita Agile Light
-  label_agile_link_to_pro: Atualize para PRO
-  label_agile_link_to_pro_demo: Demo da versão PRO
-  label_agile_link_to_more_plugins: Procurar mais plugins no RedmineUP
-  label_agile_button_agree: Aceito
-  label_agile_license: RedmineUP Licensa
-  label_agile_saving_boards: Salvando quadro
-  label_agile_horizontal_swim_lines: Rais horizontais
-  label_agile_board_sub_columns: Quadro sub-colunas
-  label_agile_additional_agile_charts: Quadro ágil adicional
-  label_agile_coloured_issue_cards: Colorir post-its das tarefas
-  label_agile_4_more_features: 4 mais funcionalidades...
-  label_agile_upgrade_to_pro: Atualizar para versão PRO version para usar estas funcionalidades
-
-  label_agile_day_in_state:  Em status
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Ocultar dados de tarefas fechadas
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Último comentário
-
-  #1.4.0
-  label_agile_esitmate_units: Unidades estimadas
-  label_agile_trackers_for_sp: Tipos por pontos de histórias
-  label_agile_story_points: Pontos por histórias
-  field_story_points: Pontos por histórias
-  label_agile_charts_number_of_story_points: Número de pontos por história
-  label_agile_board_columns: Colunas do quadro
-  lable_agile_wip_limit_exceeded: Limite de trabalho excedido
-  label_agile_wip_limit: Limite trabalho WIP
-  label_agile_add_new_issue: '+ Adicionar nova tarefa'
-  label_agile_allow_create_cards: Criação do post-it
-  label_agile_auto_assign_on_move: Adicionar o responsável ao mover
-  text_agile_create_issue_error: Ocorreu um erro na criação da tarefa
-  label_agile_inline_comment: Comentários em linha
-  label_agile_hours: Horas
-  field_color: Cores
-
-  field_duration: Duração
-
-  field_closed_on_trendline: Linha de tendência fechada
-  field_created_on_trendline: Criar linha de tendência
-
-  label_agile_sp_values: Valor dos pontos por história
-
-  label_agile_interval_size: Tamanho do intervalo
-  label_agile_day: Dia
-  label_agile_week: Semana
-  label_agile_month: Mês
-  label_agile_quarter: Trimestre
-  label_agile_year: Ano
-  label_cards_search: Pesquisar por título
-
-  field_agile_sprint: Sprint
-  field_end_date: Encerramento
-  label_agile_sprints_on: Ativar sprints por padrão
-  label_agile_sprint: Sprint
-  label_agile_sprint_plural: Sprints
-  label_agile_sprint_name: Nome
-  label_agile_sprint_description: Descrição
-  label_agile_sprint_status: Status
-  label_agile_sprint_start_date: Início em
-  label_agile_sprint_end_date: Término em
-  label_agile_sprint_new: Nova sprint
-  label_agile_sprint_status_open: Aberta
-  label_agile_sprint_status_active: Ativa
-  label_agile_sprint_status_closed: Fechada
-  label_agile_sprint_duration: Duração
-  label_agile_sprint_duration_select: <<Select duration>>
-  label_agile_sprint_duration_week_1: 1 semana
-  label_agile_sprint_duration_week_2: 2 semanas
-  label_agile_sprint_duration_week_3: 3 semanas
-  label_agile_sprint_duration_week_4: 4 semanas
-  label_agile_sprint_errors_crossed: As datas da sprint são cruzadas com outra sprint existente
-  label_agile_sprint_errors_end_more_start: A data de término deve ser posterior à data de início
-  label_agile_sprint_errors_open_issues: Sprint com problemas abertos pode ser fechado
-  label_agile_sprint_default_chart: Gráfico
-  label_agile_sprint_chart_units: Estimativa
-  label_agile_chart_for_sprint: "Para sprint: %{sprint}"
-
-  label_agile_charts: Gráficos
-  label_agile_chart_burndown: Gráfico burndown
-  label_agile_chart_burnup: Gráfico burnup
-  label_agile_chart_units: Unidades
-
-  label_agile_planning_board_more: Carregar mais...
-  label_agile_version_query_new: Consulta de novas versões do Agile
-  label_agile_version_my_boards: Meus quadros ágeis
-  label_agile_version_board_plural: Versões dos quados ágeis
-  label_agile_version_board_edit: Editar versão do quadro ágil
-
-  label_agile_edit_issue: Editar tarefa
-
-  label_agile_board_type: Tipo do quadro
-  label_agile_board_type_kanban: Quadro Kanban
-  label_agile_board_type_scrum: Quadro Scrum
-  label_agile_board_totals: Totais
-  label_agile_board_totals_story_points: Pontos por história
-  label_agile_board_totals_hours: Horas
-  label_agile_board_totals_spent_time: Tempo gasto
-  label_agile_board_totals_percent_done: Percentual de pronto
-  label_agile_board_totals_velocity: Velocidade
-  label_agile_board_totals_interval: Intervalo
-  label_agile_board_totals_remaining: Remanecente
-
-  label_agile_sprint_list_active: Sprints ativos
-  label_agile_sprint_list_future:  Sprints futuros
-  label_agile_sprint_list_old: Sprints antigos
-
-  label_agile_mixed_trackers: Tipos mistos
-  label_agile_moving_average: Média móvel
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: Colunas do Backlog
-  label_agile_board_search_backlog_issues: Pesquisar tarefas do backlog
-  label_agile_version_plural: Vesões
-  label_agile_sprint_add: Adicionar novo Sprint
-  label_agile_version_add: Adicionar Versão
-
-  label_agile_sprint_query_new: Nova consulta sprint ágil
-  label_agile_sprint_my_boards: Meus quadros de sprint
-  label_agile_sprint_board_plural: Quadros de sprint ágeis
-  label_agile_sprint_board_edit: Editar quadros de sprint
-  field_sprint: Sprint
-  label_agile_no_sprint_issues: Tarefas sem sprint
-  field_closed_sprints: Sprints fechadas
-  field_closed_versions: Versões fechadas
diff --git a/plugins/redmine_agile/config/locales/ru.yml b/plugins/redmine_agile/config/locales/ru.yml
deleted file mode 100644
index d4ad02d..0000000
--- a/plugins/redmine_agile/config/locales/ru.yml
+++ /dev/null
@@ -1,220 +0,0 @@
-# Russian strings go here for Rails i18n
-ru:
-  label_agile: Agile
-  label_agile_board: Доска задач
-  label_agile_board_plural: Доски задач
-  label_agile_board_thumbnails: Превью
-  label_agile_board_issues_per_column: Кол-во задач в колонке
-  label_agile_board_more_issues: Еще задачи
-  error_agile_status_transition: Невозможно изменить статус
-  label_agile_board_new: Новая доска
-  label_agile_board_edit: Редактировать доску
-  label_agile_my_boards: Мои доски
-  label_agile_issue_id: Номер задачи
-
-  permission_manage_public_agile_queries: Управление публичными досками задач
-  permission_add_agile_queries: Добавление досок задач
-  permission_view_agile_queries: Просмотр досок задач
-
-  #1.1.0
-  label_agile_board_default_fields: Поля по умолчанию
-  label_agile_charts_issues_burndown: Сгорание задач
-  label_agile_charts_work_burndown_hours: Сгорание времени задач (burndown)
-  label_agile_charts_work_burndown_sp: Сгорание story points (burndown)
-  label_agile_charts_number_of_hours: Кол-во часов
-  label_agile_charts_number_of_issues: Кол-во задач
-  label_agile_charts_cumulative_flow: Накопительный поток
-  label_agile_charts_trackers_cumulative_flow: Накопительный поток трекеров
-  label_agile_charts_issues_velocity: Скорость закрытия задач
-  label_agile_charts_cycle_time: Цикл задачи
-  label_agile_charts_lead_time: Цикл задачи
-  label_agile_charts_average_lead_time: Средний цикл задачи
-  label_agile_chart_plural: Диаграммы
-  label_agile_chart_new: Новая диаграмма
-  label_agile_chart_edit: Редактировать диаграмму
-  permission_view_agile_charts: Просмотр диаграмм
-  label_agile_ideal_work_remaining: Идеально
-  label_agile_actual_work_remaining: Действительно
-  label_agile_chart: Диаграмма
-  label_agile_date_from: С
-  label_agile_date_to: По
-  label_agile_chart_dates: Интервалы диаграммы
-  label_agile_weighed_ideal_work_remaining: Взвещенно
-  label_agile_status_colors: Цвета статусов
-  label_agile_charts_burnup: Выполнение задач
-  label_agile_charts_number_of_days: Кол-во дней
-  label_agile_too_many_items: "Диаграмма не может быть создана потому что превышено максимальное кол-во задач (%{max})"
-  label_agile_time_reports_items_limit: Максимальное кол-во задач отображаемых на диаграммах
-  label_agile_total_work_remaining: Всего
-  label_agile_default_chart: Диаграмма по умолчанию
-
-  #1.1.1
-  label_agile_charts_average_velocity: Средняя скорость закрытия задач
-  label_agile_charts_avarate_number_of_issues: Среднее кол-во задач
-  label_agile_charts_avarate_number_of_hours: Среднее кол-во часов
-
-  #1.2.0
-  label_agile_color: Цвет
-  permission_manage_agile_verions: Планирование версий
-  label_agile_version_planning: Планирование версий
-  error_agile_version_transition: Невозможно изменить версию задачи
-  label_agile_tracker_colors: Цвета трекеров
-  label_agile_issue_priority_colors: Цвета приоритетов задачи
-  label_agile_color_based_on: Цвета на основании
-  label_agile_color_no_colors: Без цвета
-  label_agile_manage_colors: Настроить цвета
-  label_agile_fullscreen: Во весь экран
-  label_agile_no_version_issues: Задачи без версии
-  label_agile_charts_work_burnup_hours: Выполнение времени задач (burnup)
-  label_agile_charts_work_burnup_sp: Выполнение story points (burnup)
-  label_agile_completed: Выполнено
-  label_agile_exclude_weekends: Исключать выходные для диаграммы сгорания
-  label_agile_board_truncated: "Доска была усечена, поскольку превышено максимальное кол-во элементов, которые могут отображаться (%{max})"
-  label_agile_board_items_limit: Максимальное кол-во задач отображаемых на Доске
-  label_agile_swimlanes: Группировать по
-  label_agile_minimize_closed: Минимизировать закрытые задачи
-  label_agile_fields: Поля
-  label_agile_default_board: По умолчанию
-
-  #1.3.6
-  text_agile_move_not_possible: Данное передвижение невозможно
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: Трекер родителя
-  label_agile_sub_issues: Подзадачи
-  label_agile_color_green: Зеленый
-  label_agile_color_blue: Синий
-  label_agile_color_turquoise: Бирюзовый
-  label_agile_color_lightgreen: Светло зеленый
-  label_agile_color_yellow: Желтый
-  label_agile_color_orange: Оранжевый
-  label_agile_color_red: Красный
-  label_agile_color_purple: Фиолетовый
-  label_agile_color_gray: Серый
-  label_agile_has_sub_issues: Подзадачи
-  label_agile_light_free_version: Agile бесплатная версия
-  label_agile_link_to_pro: Обновление до PRO
-  label_agile_link_to_pro_demo: Онлайн демо PRO
-  label_agile_link_to_more_plugins: Другие плагины RedmineUP
-  label_agile_button_agree: Согласен
-  label_agile_license: Лицензионное соглашение RedmineUP
-  label_agile_saving_boards: Сохранить настройку доски
-  label_agile_horizontal_swim_lines: Группировки карточек
-  label_agile_board_sub_columns: Доп. колонки
-  label_agile_additional_agile_charts: Доп. диаграммы
-  label_agile_coloured_issue_cards: Цветовая индикация карточек
-  label_agile_4_more_features: И еще другие 4 функции...
-  label_agile_upgrade_to_pro: 'Обновитесь до PRO версии чтобы:'
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: Скрывать данные закрытых задач
-  label_agile_day_in_state: В статусе
-  project_module_agile: Agile
-
-  #1.3.13
-  label_agile_last_comment: Последний комментарий
-
-  #1.4.0
-  label_agile_esitmate_units: Использовать для оценки
-  label_agile_trackers_for_sp: Трекеры для Story points
-  label_agile_story_points: Story points
-  field_story_points: Story points
-  label_agile_charts_number_of_story_points: Кол-во story points
-  label_agile_board_columns: Столбцы доски
-  lable_agile_wip_limit_exceeded: Превышен лимит по задачам в данном столбце
-  label_agile_wip_limit: Ограничение по кол-ву задач в столбце
-  label_agile_add_new_issue: '+ НОВАЯ ЗАДАЧА'
-  label_agile_allow_create_cards: Создавать новые задачи на доске
-  label_agile_auto_assign_on_move: Автоназначение при перетаскивании
-  text_agile_create_issue_error: Произошла ошибка при создании задачи
-  label_agile_inline_comment: Комментирование с доски
-  label_agile_hours: Часы
-  field_color: Цвет
-
-  field_duration: Продолжительность
-  label_cards_search: Поиск по теме
-
-  field_agile_sprint: Спринт
-  field_end_date: Дата окончания
-  label_agile_sprints_on: Активировать спринты по умолчанию
-  label_agile_sprint: Спринт
-  label_agile_sprint_plural: Спринты
-  label_agile_sprint_name: Название
-  label_agile_sprint_description: Описание
-  label_agile_sprint_status: Статус
-  label_agile_sprint_sharing: Совместное использование
-  label_agile_sprint_start_date: Дата начала
-  label_agile_sprint_end_date: Дата окончания
-  label_agile_sprint_new: Новый спринт
-  label_agile_sprint_status_open: Открытый
-  label_agile_sprint_status_active: Активный
-  label_agile_sprint_status_closed: Закрытый
-  label_agile_sprint_duration: Продолжительность
-  label_agile_sprint_duration_select: <<Выберите>>
-  label_agile_sprint_duration_week_1: 1 неделя
-  label_agile_sprint_duration_week_2: 2 недели
-  label_agile_sprint_duration_week_3: 3 недели
-  label_agile_sprint_duration_week_4: 4 недели
-  label_agile_sprint_errors_crossed: Выбранные даты пересекают другой спринт
-  label_agile_sprint_errors_end_more_start: Дата окончания должна быть больше даты начала
-  label_agile_sprint_errors_open_issues: Нельзя закрыть спринт содержащий открытые задачи
-  label_agile_sprint_default_chart: График
-  label_agile_sprint_chart_units: Единицы
-  label_agile_chart_for_sprint: "Для спринта: %{sprint}"
-
-  label_agile_interval_size: Размер интервала
-  label_agile_day: День
-  label_agile_week: Неделя
-  label_agile_month: Месяц
-  label_agile_quarter: Квартал
-  label_agile_year: Год
-
-  label_agile_charts: Диаграммы
-  label_agile_chart_units: Тип
-
-  label_agile_planning_board_more: Загрузить еще...
-  label_agile_version_query_new: Новый запрос версий
-  label_agile_version_my_boards: Мои доски версий
-  label_agile_version_board_plural: Доски версий
-  label_agile_version_board_edit: Редактировать доску версий
-
-  label_agile_edit_issue: Изменить задачу
-
-
-  label_agile_board_type: Тип доски
-  label_agile_board_type_kanban: Kanban доска
-  label_agile_board_type_scrum: Scrum доска
-  label_agile_board_totals: Итоги
-  label_agile_board_totals_story_points: Story points
-  label_agile_board_totals_hours: Часы
-  label_agile_board_totals_spent_time: Потраченное время
-  label_agile_board_totals_percent_done: Готовность (%)
-  label_agile_board_totals_velocity: Скорость закрытия
-
-  label_agile_sprint_list_active: Активные спринты
-  label_agile_sprint_list_future: Следующие спринты
-  label_agile_sprint_list_old: Прошлые спринты
-
-  label_agile_moving_average: Скользящая средняя
-
-  label_agile_board_backlog: Backlog
-  label_agile_board_backlog_column: Backlog column
-  label_agile_board_search_backlog_issues: Поиск backlog задач
-  label_agile_version_plural: Версии
-  label_agile_sprint_add: Добавить спринт
-  label_agile_version_add: Добавить версию
-
-  label_agile_sprint_query_new: Новый запрос спринтов
-  label_agile_sprint_my_boards: Мои доски спринтов
-  label_agile_sprint_board_plural: Доски спринтов
-  label_agile_sprint_board_edit: Редактировать доску спринтов
-  field_sprint: Спринт
-  label_agile_no_sprint_issues: Задачи без спринта
-  field_closed_sprints: Закрытые спринты
-  field_closed_versions: Закрытые версии
-
-  label_agile_sprint_sharing_none: Без совместного использования
-  label_agile_sprint_sharing_descendants: С подпроектами
-  label_agile_sprint_sharing_hierarchy: С иерархией проектов
-  label_agile_sprint_sharing_tree: С деревом проектов
-  label_agile_sprint_sharing_system: Со всеми проектами
diff --git a/plugins/redmine_agile/config/locales/zh-TW.yml b/plugins/redmine_agile/config/locales/zh-TW.yml
deleted file mode 100644
index 1751082..0000000
--- a/plugins/redmine_agile/config/locales/zh-TW.yml
+++ /dev/null
@@ -1,92 +0,0 @@
-# encoding: utf-8
-# Simplified Chinese strings go here for Rails i18n
-# Author: zhoutt
-# Based on file: en.yml
-
-zh-TW:
-  label_agile: 敏捷
-  label_agile_board: 敏捷看板
-  label_agile_board_plural: 敏捷看板
-  label_agile_board_thumbnails: 縮略圖
-  label_agile_board_more_issues: 更多問題
-  error_agile_status_transition: 不能更改問題狀態
-  label_agile_board_new: 新敏捷看板
-  label_agile_board_edit: 編輯敏捷看板
-  label_agile_my_boards: 我的敏捷看板
-  label_agile_issue_id: 問題ID
-
-  permission_manage_public_agile_queries: 管理公共敏捷看板
-  permission_add_agile_queries: 新建敏捷看板
-  permission_view_agile_queries: 瀏覽敏捷看板
-
-  #1.1.0
-  label_agile_board_default_fields: 默認卡片區域
-  label_agile_charts_issues_burndown: 問題燃燒圖
-  label_agile_charts_work_burndown: 工作燃燒圖
-  label_agile_charts_number_of_hours: 時長數
-  label_agile_charts_number_of_issues: 問題數
-  label_agile_charts_cumulative_flow: 累積流量
-  label_agile_charts_trackers_cumulative_flow: 追蹤累流量
-  label_agile_charts_issues_velocity: 速度
-  label_agile_charts_lead_time: 交付周期
-  label_agile_charts_average_lead_time: 平均交付周期
-  label_agile_chart_plural: 敏捷圖標
-  permission_view_agile_charts: 瀏覽敏捷圖標
-  label_agile_ideal_work_remaining: 理想
-  label_agile_actual_work_remaining: 實際
-  label_agile_chart: 圖表
-  label_agile_date_from: 自
-  label_agile_date_to: 至
-  label_agile_chart_dates: 圖標間隔
-  label_agile_weighed_ideal_work_remaining: 理想權衡
-  label_agile_status_colors: 狀態顏色
-  label_agile_charts_burnup: 問題燃燒圖
-  label_agile_charts_number_of_days: 天數
-  label_agile_too_many_items: "該圖表因超出可顯示的最大項目數而不能被創建(%{max})"
-  label_agile_time_reports_items_limit: 時間條目基于圖表的問題限制
-  label_agile_total_work_remaining: 總計
-  label_agile_default_chart: 版本默認圖表
-
-  #1.1.1
-  label_agile_charts_average_velocity: 平均速率
-  label_agile_charts_avarate_number_of_issues: 平均問題數
-  label_agile_charts_avarate_number_of_hours: 平均時長
-
-  #1.2.0
-  label_agile_color: 顏色
-  permission_manage_agile_verions: 管理版本規劃
-  label_agile_version_planning: 版本規劃
-  error_agile_version_transition: 不能更改問題版本
-  label_agile_tracker_colors: 跟蹤器顏色
-  label_agile_issue_priority_colors: 問題優先級顏色
-  label_agile_color_based_on: 顏色
-  label_agile_color_no_colors: 無顏色
-  label_agile_manage_colors: 管理顏色
-  label_agile_fullscreen: 全屏
-  label_agile_no_version_issues: 無版本項目
-  label_agile_charts_work_burnup: 工作燃燒
-  label_agile_completed: 完成
-  label_agile_exclude_weekends: 從理想工作中排除周末時間
-  label_agile_board_truncated: "看板被縮短是由于超出最大顯示項目數 (%{max})"
-  label_agile_board_items_limit: 敏捷看板項目限制
-  label_agile_swimlanes: 泳道
-  label_agile_minimize_closed: 最小化關閉的問題
-  label_agile_fields: 卡片區域
-  label_agile_default_board: 默認看板
-
-  #1.3.6
-  text_agile_move_not_possible: 該步驟不可行
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: 本追蹤
-  label_agile_sub_issues: 子問題
-  label_agile_color_green: 綠色
-  label_agile_color_blue: 藍色
-  label_agile_color_turquoise: 藍綠色
-  label_agile_color_lightgreen: 淺綠色
-  label_agile_color_yellow: 黃色
-  label_agile_color_orange: 橙色
-  label_agile_color_red: 紅色
-  label_agile_color_purple: 紫色
-  label_agile_color_gray: 灰色
-  label_agile_has_sub_issues: 子問題
\ No newline at end of file
diff --git a/plugins/redmine_agile/config/locales/zh.yml b/plugins/redmine_agile/config/locales/zh.yml
deleted file mode 100644
index ff313fc..0000000
--- a/plugins/redmine_agile/config/locales/zh.yml
+++ /dev/null
@@ -1,133 +0,0 @@
-# encoding: utf-8
-# Simplified Chinese strings go here for Rails i18n
-# Author: zhoutt
-# Based on file: en.yml
-
-zh:
-  label_agile: 敏捷
-  label_agile_board: 敏捷看板
-  label_agile_board_plural: 敏捷看板
-  label_agile_board_thumbnails: 缩略图
-  label_agile_board_more_issues: 更多问题
-  error_agile_status_transition: 不能更改问题状态
-  label_agile_board_new: 新敏捷看板
-  label_agile_board_edit: 编辑敏捷看板
-  label_agile_my_boards: 我的敏捷看板
-  label_agile_issue_id: 问题ID
-
-  permission_manage_public_agile_queries: 管理公共敏捷看板
-  permission_add_agile_queries: 新建敏捷看板
-  permission_view_agile_queries: 浏览敏捷看板
-
-  #1.1.0
-  label_agile_board_default_fields: 默认卡片区域
-  label_agile_charts_issues_burndown: 问题燃烧图
-  label_agile_charts_work_burndown_hours: 小时燃尽图
-  label_agile_charts_work_burndown_sp: 故事点燃烧图
-  label_agile_charts_number_of_hours: 时长数
-  label_agile_charts_number_of_issues: 问题数
-  label_agile_charts_cumulative_flow: 累积流量
-  label_agile_charts_trackers_cumulative_flow: 追踪累流量
-  label_agile_charts_issues_velocity: 速度
-  label_agile_charts_lead_time: 交付周期
-  label_agile_charts_average_lead_time: 平均交付周期
-  label_agile_chart_plural: 敏捷图标
-  permission_view_agile_charts: 浏览敏捷图标
-  label_agile_ideal_work_remaining: 理想
-  label_agile_actual_work_remaining: 实际
-  label_agile_chart: 图表
-  label_agile_date_from: 自
-  label_agile_date_to: 至
-  label_agile_chart_dates: 图标间隔
-  label_agile_weighed_ideal_work_remaining: 理想权衡
-  label_agile_status_colors: 状态颜色
-  label_agile_charts_burnup: 问题燃烧图
-  label_agile_charts_number_of_days: 天数
-  label_agile_too_many_items: "该图表因超出可显示的最大项目数而不能被创建(%{max})"
-  label_agile_time_reports_items_limit: 时间条目基于图表的问题限制
-  label_agile_total_work_remaining: 总计
-  label_agile_default_chart: 版本默认图表
-
-  #1.1.1
-  label_agile_charts_average_velocity: 平均速率
-  label_agile_charts_avarate_number_of_issues: 平均问题数
-  label_agile_charts_avarate_number_of_hours: 平均时长
-
-  #1.2.0
-  label_agile_color: 颜色
-  permission_manage_agile_verions: 管理版本规划
-  label_agile_version_planning: 版本规划
-  error_agile_version_transition: 不能更改问题版本
-  label_agile_tracker_colors: 跟踪器颜色
-  label_agile_issue_priority_colors: 问题优先级颜色
-  label_agile_color_based_on: 颜色
-  label_agile_color_no_colors: 无颜色
-  label_agile_manage_colors: 管理颜色
-  label_agile_fullscreen: 全屏
-  label_agile_no_version_issues: 无版本项目
-  label_agile_charts_work_burnup_hours: 小时燃耗
-  label_agile_charts_work_burnup_sp: 故事点燃耗
-  label_agile_completed: 完成
-  label_agile_exclude_weekends: 从理想工作中排除周末时间
-  label_agile_board_truncated: "看板被缩短是由于超出最大显示项目数 (%{max})"
-  label_agile_board_items_limit: 敏捷看板项目限制
-  label_agile_swimlanes: 泳道
-  label_agile_minimize_closed: 最小化关闭的问题
-  label_agile_fields: 卡片区域
-  label_agile_default_board: 默认看板
-
-  #1.3.6
-  text_agile_move_not_possible: 该步骤不可行
-
-  #1.3.8
-  label_agile_parent_issue_tracker_id: 本追踪
-  label_agile_sub_issues: 子问题
-  label_agile_color_green: 绿色
-  label_agile_color_blue: 蓝色
-  label_agile_color_turquoise: 蓝绿色
-  label_agile_color_lightgreen: 浅绿色
-  label_agile_color_yellow: 黄色
-  label_agile_color_orange: 橙色
-  label_agile_color_red: 红色
-  label_agile_color_purple: 紫色
-  label_agile_color_gray: 灰色
-  label_agile_has_sub_issues: 子问题
-  label_agile_light_free_version: 敏捷免费版
-  label_agile_link_to_pro: 升级到PRO版
-  label_agile_link_to_pro_demo: PRO版在线演示
-  label_agile_link_to_more_plugins: 查找更多RedmineUP插件
-  label_agile_button_agree: 同意
-  label_agile_license: RedmineUP 协议
-  label_agile_saving_boards: 保存白板
-  label_agile_horizontal_swim_lines: 水平泳道线
-  label_agile_board_sub_columns: 白板子列
-  label_agile_additional_agile_charts: 额外的敏捷图表
-  label_agile_coloured_issue_cards: 彩色的问题卡
-  label_agile_4_more_features: 敏捷4更多功能...
-  label_agile_upgrade_to_pro: 更新到PRO版使用这个功能
-
-  label_agile_day_in_state:  状态
-
-  #1.3.10
-  label_agile_hide_closed_issues_data: 隐藏关闭的问题数据
-  project_module_agile: 敏捷
-
-  #1.3.13
-  label_agile_last_comment: 最后的评论
-
-  #1.4.0
-  label_agile_esitmate_units: 单元评估
-  label_agile_trackers_for_sp: 追踪故事点
-  label_agile_story_points: 故事要点
-  field_story_points: 故事要点
-  label_agile_charts_number_of_story_points: 故事要点数量
-  label_agile_board_columns: 白板列
-  lable_agile_wip_limit_exceeded: 进展中的工作超出限制
-  label_agile_wip_limit: 进展中的工作限制
-  label_agile_add_new_issue: '+ 添加新问题'
-  label_agile_allow_create_cards: 卡片创建
-  label_agile_auto_assign_on_move: 移动自动分配
-  text_agile_create_issue_error: 在创建任务时发生了一个错误
-  label_agile_inline_comment: 内联注释
-  label_agile_hours: 小时
-  field_color: 颜色
diff --git a/plugins/redmine_agile/config/routes.rb b/plugins/redmine_agile/config/routes.rb
deleted file mode 100644
index 21dc7b9..0000000
--- a/plugins/redmine_agile/config/routes.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-# Plugin's routes
-# See: http://guides.rubyonrails.org/routing.html
-
-resources :projects do
-  resources :agile_queries, only: [:new, :create]
-end
-
-resources :issues do
-  get "done_ratio", :to => "agile_journal_details#done_ratio"
-  get "status", :to => "agile_journal_details#status"
-  get "assignee", :to => "agile_journal_details#assignee"
-  member do
-    get "agile_data", :to => "agile_boards#agile_data"
-  end
-end
-
-resources :agile_queries
-
-get '/projects/:project_id/agile/charts', :to => "agile_charts#show", :as => "project_agile_charts"
-get '/agile/charts/', :to => "agile_charts#show", :as => "agile_charts"
-get '/agile/charts/render_chart', :to => "agile_charts#render_chart"
-get '/agile/charts/select_version_chart', :to => "agile_charts#select_version_chart"
-get '/projects/:project_id/agile/board', :to => 'agile_boards#index'
-get '/agile/board', :to => 'agile_boards#index'
-put '/agile/board', :to => 'agile_boards#update', :as => 'update_agile_board'
-get '/agile/issue_tooltip', :to => 'agile_boards#issue_tooltip', :as => 'issue_tooltip'
-get '/agile/inline_comment', :to => 'agile_boards#inline_comment', :as => 'agile_inline_comment'
-post 'projects/:project_id/agile/create_issue', :to => 'agile_boards#create_issue', :as => 'agile_create_issue'
diff --git a/plugins/redmine_agile/db/migrate/001_create_issue_status_orders.rb b/plugins/redmine_agile/db/migrate/001_create_issue_status_orders.rb
deleted file mode 100644
index c345ce3..0000000
--- a/plugins/redmine_agile/db/migrate/001_create_issue_status_orders.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateIssueStatusOrders < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    create_table :issue_status_orders do |t|
-      t.integer :issue_id
-      t.integer :position
-    end
-
-    add_index :issue_status_orders, :issue_id
-    add_index :issue_status_orders, :position
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/002_create_agile_colors.rb b/plugins/redmine_agile/db/migrate/002_create_agile_colors.rb
deleted file mode 100644
index 1e705e8..0000000
--- a/plugins/redmine_agile/db/migrate/002_create_agile_colors.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateAgileColors < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    create_table :agile_colors do |t|
-      t.references :container, :polymorphic => true
-      t.string :color
-    end
-
-    add_index :agile_colors, :container_id
-    add_index :agile_colors, :container_type
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/003_rename_issue_status_orders.rb b/plugins/redmine_agile/db/migrate/003_rename_issue_status_orders.rb
deleted file mode 100644
index c21e129..0000000
--- a/plugins/redmine_agile/db/migrate/003_rename_issue_status_orders.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class RenameIssueStatusOrders < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def up
-    remove_index :issue_status_orders, :issue_id
-    remove_index :issue_status_orders, :position
-
-    rename_table :issue_status_orders, :agile_ranks
-
-    add_index :agile_ranks, :issue_id
-    add_index :agile_ranks, :position
-  end
-
-  def down
-    remove_index :agile_ranks, :issue_id
-    remove_index :agile_ranks, :position
-
-    rename_table :agile_ranks, :issue_status_orders
-
-    add_index :issue_status_orders, :issue_id
-    add_index :issue_status_orders, :position
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/004_rename_agile_ranks.rb b/plugins/redmine_agile/db/migrate/004_rename_agile_ranks.rb
deleted file mode 100644
index de7b86f..0000000
--- a/plugins/redmine_agile/db/migrate/004_rename_agile_ranks.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class RenameAgileRanks < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def up
-    remove_index :agile_ranks, :issue_id if index_exists? :agile_ranks, :issue_id
-    remove_index :agile_ranks, :position if index_exists? :agile_ranks, :position
-
-    rename_table :agile_ranks, :agile_data
-
-    add_index :agile_data, :issue_id
-    add_index :agile_data, :position
-  end
-
-  def down
-    remove_index :agile_data, :issue_id
-    remove_index :agile_data, :position
-
-    rename_table :agile_data, :agile_ranks
-
-    add_index :agile_ranks, :issue_id
-    add_index :agile_ranks, :position
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/005_add_story_points_to_agile_ranks.rb b/plugins/redmine_agile/db/migrate/005_add_story_points_to_agile_ranks.rb
deleted file mode 100644
index 16ef93d..0000000
--- a/plugins/redmine_agile/db/migrate/005_add_story_points_to_agile_ranks.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddStoryPointsToAgileRanks < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    add_column :agile_data, :story_points, :integer
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/006_create_agile_sprints.rb b/plugins/redmine_agile/db/migrate/006_create_agile_sprints.rb
deleted file mode 100644
index 59cac7f..0000000
--- a/plugins/redmine_agile/db/migrate/006_create_agile_sprints.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateAgileSprints < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    create_table :agile_sprints do |t|
-      t.references :project
-      t.string :name, null: false
-      t.text :description
-      t.integer :status, null: false, default: 0
-      t.date :start_date, null: false
-      t.date :end_date, null: false
-
-      t.timestamps null: false
-    end
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/007_add_sprint_id_to_agile_data.rb b/plugins/redmine_agile/db/migrate/007_add_sprint_id_to_agile_data.rb
deleted file mode 100644
index 5fc4159..0000000
--- a/plugins/redmine_agile/db/migrate/007_add_sprint_id_to_agile_data.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddSprintIdToAgileData < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    add_column :agile_data, :agile_sprint_id, :integer, index: true
-  end
-end
diff --git a/plugins/redmine_agile/db/migrate/008_add_sharing_to_agile_sprint.rb b/plugins/redmine_agile/db/migrate/008_add_sharing_to_agile_sprint.rb
deleted file mode 100644
index 0df6426..0000000
--- a/plugins/redmine_agile/db/migrate/008_add_sharing_to_agile_sprint.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddSharingToAgileSprint < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    add_column :agile_sprints, :sharing, :integer, default: 0, null: false, index: true
-  end
-end
diff --git a/plugins/redmine_agile/doc/CHANGELOG b/plugins/redmine_agile/doc/CHANGELOG
deleted file mode 100644
index 35be743..0000000
--- a/plugins/redmine_agile/doc/CHANGELOG
+++ /dev/null
@@ -1,346 +0,0 @@
-== Redmine Agile plugin changelog
-
-Redmine Agile plugin - Agile board plugin for redmine
-Copyright (C) 2011-2021 RedmineUP
-http://www.redmineup.com/
-
-== 2021-05-04 v1.6.1
-
-* Redmine 4.2 support
-* Added assignee group board filter
-* Added past Sprints
-* Added reset sprint on project change
-* Fixed missied table SQL error
-* Fixed empty data error
-* Fixed FCSV warning
-* Dropped Redmine <3.0 support
-
-== 2021-02-15 v1.6.0
-
-* Added Agile Sprint sharing
-* Fixed sprint/story points copy
-* Fixed sprint for on-board created sprints
-* Fixed initial install error
-* Fixed Sprint query save bug
-* Fixed chart dates interval
-* Fixed for all-projects query bug
-* Fixed chart empty dates bug
-* Fixed chart version bug
-* Fixed Backlog load-more bug
-* Fixed Agile board remarks
-* Fixed selected sprint bug
-* Fixed Agile board issues display bug
-* Fixed missed filters for old Redmine versions
-* Fixed empty watcher filter bug
-* Fixed workflow issue creation bug
-* Updated BR locale (Adriano J. Baptistella)
-* Updated pt-BR locale (Adriano J. Baptistella)
-
-== 2020-07-24 v1.5.4
-
-* Added None for Sprint in issue context menu
-* Updated zh-tw locale (Hsiao Chung Chiang)
-* Updated es locale (Manuel Alba Ortega)
-* Fixed agile sprint remaining bug
-* Fixed issue copy error
-* Fixed submit error for issue search field
-* Fixed future data in the charts
-* Fixed error with all closed issues
-* Fixed full screen board update bug
-* Fixed first day for Agile chart
-* Fixed chart query visibility bug
-* Fixed no version column bug
-* Fixed sub project sprint assignment
-* Fixed backlog column saving
-* Fixed "For all projects" chart bug
-
-== 2020-03-18 v1.5.3
-
-* Added grouping for agine status changes view
-* Added issue list sprint filter
-* German translation updated (Peter Schossig)
-* Added Italian translation (Marco Congia)
-* Fixed bug with context menu story points
-* Added validation for sprint open issues
-* Backlog tab default menu
-
-== 2020-02-05 v1.5.2
-
-* Agile Backlog as a different module
-* Fixed between dates chart bug
-* Fixed context menu edit bug
-* Fixed sprint cards load bug
-
-== 2019-12-10 v1.5.1
-
-* Added Sprint view permissions
-* Redmine 4.1 styles support
-* New Story points board setting
-* Hide Sprint field without available sprints
-* Modal edit styles cleanup
-* Fixed sprint charts bug
-* Fixed MySQL order by bug
-
-== 2019-10-22 v1.5.0
-
-* Agile sprints
-* New Backlog tab
-* Board types: Scrum and Kanban
-* New lead time chart
-* Totals for board and swimlanes
-* Added board units
-* Added board default chart
-* Fixed chart caclulation bug
-* Fixed custom field js error
-
-== 2019-06-14 v1.4.12
-
-* Fixed light version Redmine 4.0.3+ bug
-* Fixed swilanes sorting
-* Fixed version planing Load more bug
-
-== 2019-05-15 v1.4.11
-
-* Fixed compatibility issues
-
-== 2019-04-25 v1.4.10
-
-* Fixed light version compatibility bug
-
-== 2019-04-15 v1.4.9
-
-* Redmine 4.0.3 support
-* Agile chart units setting
-* Charts end date fixes
-* Fixed expand all board bug
-* Fixed interval size for old user sessions
-* Fixed charts with current interval
-
-== 2019-02-08 v1.4.8
-
-* Added new Version planner
-* Added saving for Agile charts
-* Fixed "Related to" filter
-* Fixed "Parent task" filter
-* Fixed search sensitive bug
-* Fixed empty current version bug
-
-== 2018-09-25 v1.4.7
-
-* Added missing filters: Issue, Description, Private, Watcher
-* Added preloading of colors for issues
-* Fixed tags render on a card
-* Fixed public board permission bug
-* Fixed agile board adaptability
-* Fixed fullscreen link displaying
-* Fixed filtering by Company custom field
-
-== 2018-03-20 v1.4.6
-
-* Redmine 4 support
-* Quick seach on the board
-* Issue tags field on cards
-* Story Points available values setting
-* Fixed story point showing bug
-* Fixed makeup on issue edit form
-* Fixed light version dropable bug
-* Fixed custom fields bug with charts
-
-== 2017-09-06 v1.4.5
-
-* Agile charts moved to Chartjs
-* Fixed current version filter value
-* Fixed issue sorting bug with active story points
-
-== 2017-07-06 v1.4.4
-
-* Redmine 3.4 support
-* Color attribute for users
-* Agile board <Current version> query filter
-* Added initional state for status and assignee history
-* Chinese translation update
-* Fixed checklist items order
-
-== 2017-03-20 v1.4.3
-
-* Added assignee, status and % done history urls
-* Created and Updated dates card fields
-* Fixed version from future bug
-* Fixed Agile board z-index bug
-* Fixed blocked query filter error
-* Fixed bug with zero divide for spent time color
-* Added trendline first point
-
-== 2016-11-16 v1.4.2
-
-* Trendlines for lead time and velocity charts
-* Current active version filter
-* Chinese translation (Zuofeng Zhang)
-* Issue order for swimlanes
-* Fixed bug with session storage overload
-* Story points chart data calculation bug fixed
-* Firefox and IE bug with on board comments fixed
-
-== 2016-06-20 v1.4.1
-
-* Agile board header height fixed for IE
-* Auto assign user on move card
-* Burndown/burnup charts fixes for story points and hours
-* Context menu for fullscreen board
-* Separate charts for SP and hours
-* Lock board on autorefresh
-
-== 2016-02-09 v1.4.0
-
-* Story points estimation
-* Card assignment error messages
-* Cleanup WIP limits option styles
-* Highligh inline created cards
-* Inline comments board lock
-* Fixed version planning access right
-* Fixed unicode letters in locale files
-* Fixed performance issues with board rendering
-
-== 2016-01-20 v1.3.13
-
-* Inline issue creation
-* Work-in-progress limits
-* Colored by project
-* Adding notes inline
-* Checklist on card view
-* Last comment card field
-* French locale by Olivier Houdas
-* Fixed bug with sorting cards in redmine < 3
-
-== 2015-11-03 v1.3.12
-
-* Estimated time sum in column header
-* Issue relations filter
-* Fixed bug with Mysql migration
-* Fixed bug with global board cards view
-* Fixed issue context menu bug
-
-== 2015-08-18 v1.3.11
-
-* Setting for closed cards view
-* Colorized by assignee
-
-== 2015-08-06 v1.3.10
-
-* Fixed bug with sticky headers after fullscreen auto update
-* Colored by spent time
-* Fixed bug with version planner unassigned issues
-* Added translation for module
-* Days in state card field
-
-== 2015-05-20 v1.3.9
-
-* Chinese translation (zhoutt)
-* Fixed print media styles for board
-* Parent task filter allowed commas
-* Version planner filters
-
-== 2015-03-06 v1.3.8
-
-* Redmine 3.0 support fixes
-* Autoupdate board on fullscreen view
-* N+1 agile color fixes
-* New filter Parent issue tracker
-* Total hours on version planning columns
-* Sub issues card field
-* Issue history for color changes
-
-== 2015-02-10 v1.3.6
-
-* Sticky headers in fullscreen mode (Dariusz Kowalski)
-* Ajax error messages
-* Fixed bug in version planner with wrong column ID
-* Fixed 404 when enter hit in version planning form
-* Portuguese (Brazil) translation (Marcelo de A. Fernandes)
-
-== 2014-10-28 v1.3.5
-
-* Default boards for projects roles and users
-* Sub-projects issues in version planner
-
-== 2014-10-16 v1.3.4
-
-* Added filters for Assignee's role and Assignee's group
-* Shared versions support
-* Assignee history log
-
-== 2014-09-28 v1.3.3
-
-* German translation (Jan Schulz-Hofen)
-* Assignable users on agile board sidebar
-* Fixed bug with saving boards for non admin roles for Redmine 2.3
-* Fixed bug with authors swimlanes
-* Fixed bug in swimlanes with empty versions list
-
-== 2014-06-27 v1.3.2
-
-* Default desc sorting for priority swimlanes
-* Rank sorting for parent task swimlanes
-* Koren translation (김기원)
-* Fixed XSS Vulnerability (Felix Schäfer)
-* Fixed Issue status count starting with empty not updated (Felix Schäfer)
-* Fixed bug with "Is not" status filter
-
-== 2014-05-05 v1.3.1
-
-* Status Sub-Columns with colon delimiter
-* Fixes for SQL Server
-
-== 2014-04-24 v1.3.0
-
-* Swim lanes
-* Weekends for burnup and burndown charts
-* Burnup charts cleanup
-* New board card fields setting
-
-== 2014-04-18 v1.2.0
-
-* Colors
-* Version planning
-* Touch devices support
-* Fullscreen mode
-* Spanish translation by (Leandro Russo)
-* Created/Closed chart renamed to Issues burnup
-* Work burnup chart
-* First period effort for budrndown charst
-* Fixes in cumulative flow chart
-* Fixes with load_more duplications
-
-== 2014-04-09 v1.1.2
-
-* Compatibility fixes
-
-== 2014-04-09 v1.1.1
-
-* New scale divisions for charts
-* Fixes for work burndown with subtasks
-* Fixed Gantt and Caledar issues
-
-== 2014-04-07 v1.1.0
-
-* Save and manage agile boards
-* Select issue card fields
-* Permissions for agile boards
-* Default issue card columns setting
-* Issue card context menu
-* Project column
-* Issue done ratio and status flows
-* Charts (Work burndown chart, Issues burndown chart, Cumulative flow chart, Trackers cumulative flow chart, Velocity chart, Lead time chart, Average lead time chart, Created/Closed chart)
-* Fixed bug with load more filters
-
-== 2014-03-18 v1.0.1
-
-* Sorting issues inside status
-* Issues lazy loading
-
-== 2014-02-28 v1.0.0
-
-* Initial release
-* Draggable issues
-* Draggable assignees
-* Issue description and attached image preview
diff --git a/plugins/redmine_agile/doc/COPYING b/plugins/redmine_agile/doc/COPYING
deleted file mode 100644
index 63e41a4..0000000
--- a/plugins/redmine_agile/doc/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/plugins/redmine_agile/doc/LICENSE b/plugins/redmine_agile/doc/LICENSE
deleted file mode 100644
index e2e50b5..0000000
--- a/plugins/redmine_agile/doc/LICENSE
+++ /dev/null
@@ -1,26 +0,0 @@
-LICENSING
-
-RedmineUP Licencing
-
-This End User License Agreement is a binding legal agreement between you and RedmineUP. Purchase, installation or use of RedmineUP Extensions provided on redmineup.com signifies that you have read, understood, and agreed to be bound by the terms outlined below.
-
-RedmineUP GPL Licencing
-
-All Redmine Extensions produced by RedmineUP are released under the GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html). Specifically, the Ruby code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript are NOT GPL, and are released under the RedmineUP Proprietary Use License v1.0 (See below) unless specifically authorized by RedmineUP. Elements of the extensions released under this proprietary license may not be redistributed or repackaged for use other than those allowed by the Terms of Service.
-
-RedmineUP Proprietary Use License (v1.0)
-
-The RedmineUP Proprietary Use License covers any images, cascading stylesheets, manuals and JavaScript files in any extensions produced and/or distributed by redmineup.com. These files are copyrighted by redmineup.com (RedmineUP) and cannot be redistributed in any form without prior consent from redmineup.com (RedmineUP)
-
-Usage Terms
-
-You are allowed to use the Extensions on one or many "production" domains, depending on the type of your license
-You are allowed to make any changes to the code, however modified code will not be supported by us.
-
-Modification Of Extensions Produced By RedmineUP.
-
-You are authorized to make any modification(s) to RedmineUP extension Ruby code. However, if you change any Ruby code and it breaks functionality, support may not be available to you.
-
-In accordance with the RedmineUP Proprietary Use License v1.0, you may not release any proprietary files (modified or otherwise) under the GPL license. The terms of this license and the GPL v2 prohibit the removal of the copyright information from any file.
-
-Please contact us if you have any requirements that are not covered by these terms.
\ No newline at end of file
diff --git a/plugins/redmine_agile/init.rb b/plugins/redmine_agile/init.rb
deleted file mode 100644
index 8cf0285..0000000
--- a/plugins/redmine_agile/init.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-requires_redmine_crm version_or_higher: '0.0.43' rescue raise "\n\033[31mRedmine requires newer redmine_crm gem version.\nPlease update with 'bundle update redmine_crm'.\033[0m"
-
-require 'redmine'
-
-AGILE_VERSION_NUMBER = '1.6.1'
-AGILE_VERSION_TYPE = "Light version"
-
-if ActiveRecord::VERSION::MAJOR >= 4 && !defined?(FCSV)
-  require 'csv'
-  FCSV = CSV
-end
-
-Redmine::Plugin.register :redmine_agile do
-  name "Redmine Agile plugin (#{AGILE_VERSION_TYPE})"
-  author 'RedmineUP'
-  description 'Scrum and Agile project management plugin for redmine'
-  version AGILE_VERSION_NUMBER
-  url 'http://redmineup.com/pages/plugins/agile'
-  author_url 'mailto:support@redmineup.com'
-
-  requires_redmine version_or_higher: '3.0'
-
-  settings default: { 'default_columns' => %w(tracker assigned_to) },
-           partial: 'settings/agile/general'
-
-  menu :application_menu, :agile,
-       { controller: 'agile_boards', action: 'index' },
-       caption: :label_agile,
-       if: Proc.new { User.current.allowed_to?(:view_agile_queries, nil, global: true) }
-  menu :project_menu, :agile, { controller: 'agile_boards', action: 'index' }, caption: :label_agile,
-                                                                               after: :gantt,
-                                                                               param: :project_id
-
-  menu :admin_menu, :agile, { controller: 'settings', action: 'plugin', id: 'redmine_agile' }, caption: :label_agile, html: { class: 'icon' }
-
-  project_module :agile do
-    permission :manage_public_agile_queries, { agile_queries: [:new, :create, :edit, :update, :destroy] }, require: :member
-    permission :add_agile_queries, { agile_queries: [:new, :create, :edit, :update, :destroy] }, require: :loggedin
-    permission :view_agile_queries, { agile_boards: [:index,
-                                                     :update,
-                                                     :create_issue,
-                                                     :issue_tooltip,
-                                                     :inline_comment,
-                                                     :agile_data,
-                                                     :backlog_load_more,
-                                                     :backlog_autocomplete],
-                                      agile_queries: :index }, read: true
-    permission :view_agile_charts, { agile_charts: [:show, :render_chart, :select_version_chart] }, read: true
-  end
-end
-
-require 'redmine_agile'
diff --git a/plugins/redmine_agile/lib/redmine_agile.rb b/plugins/redmine_agile/lib/redmine_agile.rb
deleted file mode 100644
index 9e292d4..0000000
--- a/plugins/redmine_agile/lib/redmine_agile.rb
+++ /dev/null
@@ -1,133 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-
-
-require 'redmine_agile/hooks/views_layouts_hook'
-require 'redmine_agile/hooks/views_issues_hook'
-require 'redmine_agile/hooks/views_versions_hook'
-require 'redmine_agile/hooks/controller_issue_hook'
-require 'redmine_agile/patches/issue_patch'
-
-require 'redmine_agile/helpers/agile_helper'
-
-require 'redmine_agile/charts/agile_chart'
-require 'redmine_agile/charts/burndown_chart'
-require 'redmine_agile/charts/work_burndown_chart'
-require 'redmine_agile/charts/charts'
-require 'redmine_agile/patches/issue_drop_patch'
-
-module RedmineAgile
-
-  ISSUES_PER_COLUMN = 10
-  TIME_REPORTS_ITEMS = 1000
-  BOARD_ITEMS = 500
-
-  ESTIMATE_HOURS        = 'hours'.freeze
-  ESTIMATE_STORY_POINTS = 'story_points'.freeze
-  ESTIMATE_UNITS        = [ESTIMATE_HOURS, ESTIMATE_STORY_POINTS].freeze
-
-  class << self
-    def time_reports_items_limit
-      by_settigns = Setting.plugin_redmine_agile['time_reports_items_limit'].to_i
-      by_settigns > 0 ? by_settigns : TIME_REPORTS_ITEMS
-    end
-
-    def board_items_limit
-      by_settigns = Setting.plugin_redmine_agile['board_items_limit'].to_i
-      by_settigns > 0 ? by_settigns : BOARD_ITEMS
-    end
-
-    def issues_per_column
-      by_settigns = Setting.plugin_redmine_agile['issues_per_column'].to_i
-      by_settigns > 0 ? by_settigns : ISSUES_PER_COLUMN
-    end
-
-    def default_columns
-      Setting.plugin_redmine_agile['default_columns'].to_a
-    end
-
-    def default_chart
-      Setting.plugin_redmine_agile['default_chart'] || Charts::BURNDOWN_CHART
-    end
-
-    def estimate_units
-      Setting.plugin_redmine_agile['estimate_units'] || 'hours'
-    end
-
-    def use_story_points?
-      if Setting.plugin_redmine_agile.key?('story_points_on')
-        Setting.plugin_redmine_agile['story_points_on'] == '1'
-      else
-        estimate_units == ESTIMATE_STORY_POINTS
-      end
-    end
-
-    def trackers_for_sp
-      Setting.plugin_redmine_agile['trackers_for_sp']
-    end
-
-    def use_story_points_for?(tracker)
-      return true if trackers_for_sp.blank? && use_story_points?
-      tracker = tracker.is_a?(Tracker) ? tracker.id.to_s : tracker
-      trackers_for_sp == tracker && use_story_points?
-    end
-
-    def use_colors?
-      false
-          end
-
-    def color_base
-      "none"
-          end
-
-    def minimize_closed?
-      Setting.plugin_redmine_agile['minimize_closed'].to_i > 0
-    end
-
-    def exclude_weekends?
-      Setting.plugin_redmine_agile['exclude_weekends'].to_i > 0
-    end
-
-    def auto_assign_on_move?
-      Setting.plugin_redmine_agile['auto_assign_on_move'].to_i > 0
-    end
-
-    def status_colors?
-      false
-          end
-
-    def hide_closed_issues_data?
-      Setting.plugin_redmine_agile['hide_closed_issues_data'].to_i > 0
-    end
-
-    def use_checklist?
-      @@chcklist_plugin_installed ||= (Redmine::Plugin.installed?(:redmine_checklists))
-    end
-
-    def allow_create_card?
-      false
-    end
-
-    def allow_inline_comments?
-      Setting.plugin_redmine_agile['allow_inline_comments'].to_i > 0
-    end
-  end
-
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/charts/agile_chart.rb b/plugins/redmine_agile/lib/redmine_agile/charts/agile_chart.rb
deleted file mode 100644
index f152dc3..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/charts/agile_chart.rb
+++ /dev/null
@@ -1,278 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  class AgileChart
-    include Redmine::I18n
-    include Redmine::Utils::DateCalculation
-
-    DAY_INTERVAL     = 'day'.freeze
-    WEEK_INTERVAL    = 'week'.freeze
-    MONTH_INTERVAL   = 'month'.freeze
-    QUARTER_INTERVAL = 'quarter'.freeze
-    YEAR_INTERVAL    = 'year'.freeze
-
-    TIME_INTERVALS = [DAY_INTERVAL, WEEK_INTERVAL, MONTH_INTERVAL, QUARTER_INTERVAL, YEAR_INTERVAL].freeze
-
-    attr_reader :line_colors
-
-    def initialize(data_scope, options = {})
-      @options = options
-      @data_scope = data_scope
-      @data_from ||= options[:data_from]
-      @data_to ||= options[:data_to]
-      @interval_size = options[:interval_size] || DAY_INTERVAL
-      initialize_chart_periods
-      @step_x_labels = @period_count > 18 ? @period_count / 12 + 1 : 1
-      @fields = chart_fields_by_period
-      @weekend_periods = weekend_periods
-      @estimated_unit = options[:estimated_unit] || ESTIMATE_HOURS
-      @line_colors = {}
-    end
-
-    def data
-      { title: '', y_title: '', labels: [], datasets: [] }
-    end
-
-    def self.data(data_scope, options = {})
-      new(data_scope, options).data
-    end
-
-    protected
-
-    def current_date_period
-      return @current_date_period if @current_date_period
-
-      date_period = (@date_to <= Date.today || @options[:date_to].present? ? @period_count : (@period_count - (@date_to - Date.today).to_i / @scale_division) + 1).round
-      @current_date_period ||= date_period > 0 ? date_period : 0
-    end
-
-    def due_date_period
-      @date_from = @date_from.to_date
-      @date_to = @date_to.to_date
-      due_date = (@due_date && @due_date > @date_from) ? @due_date : @date_from
-      @due_date_period ||= (@due_date ? @period_count - (@date_to - due_date.to_date).to_i : @period_count - 1) + 1
-      @due_date_period = @due_date_period > 0 ? @due_date_period : 1
-    end
-
-    def date_short_period?
-      (@date_to.to_date - @date_from.to_date).to_i <= 31
-    end
-
-    def date_effort(issues, effort_date)
-      cumulative_left = 0
-      total_left = 0
-      total_done = 0
-      issues.each do |issue|
-        done_ratio_details = issue.journals.map(&:details).flatten.select { |detail| 'done_ratio' == detail.prop_key }
-        details_today_or_earlier = done_ratio_details.select { |a| a.journal.created_on.localtime.to_date <= effort_date }
-
-        last_done_ratio_change = details_today_or_earlier.sort_by { |a| a.journal.created_on }.last
-        ratio = if issue.closed? && issue.closed_on.localtime.to_date <= effort_date
-                  100
-                elsif last_done_ratio_change
-                  last_done_ratio_change.value
-                elsif (done_ratio_details.size > 0) || (issue.closed? && issue.closed_on > effort_date)
-                  0
-                else
-                  issue.done_ratio.to_i
-                end
-
-        if @estimated_unit == 'hours'
-          cumulative_left += (issue.estimated_hours.to_f * ratio.to_f / 100.0)
-          total_left += (issue.estimated_hours.to_f * (100 - ratio.to_f) / 100.0)
-          total_done += (issue.estimated_hours.to_f * ratio.to_f / 100.0)
-        else
-          cumulative_left += (issue.story_points.to_f * ratio.to_f / 100.0)
-          total_left += (issue.story_points.to_f * (100 - ratio.to_f) / 100.0)
-          total_done += (issue.story_points.to_f * ratio.to_f / 100.0)
-        end
-      end
-      [total_left, cumulative_left, total_done]
-    end
-
-    def use_subissue_done_ratio
-      !Setting.respond_to?(:parent_issue_done_ratio) || Setting.parent_issue_done_ratio == 'derived' || Setting.parent_issue_done_ratio.nil?
-    end
-
-    private
-
-    def scope_by_created_date
-      @data_scope.
-        where("#{Issue.table_name}.created_on >= ?", @date_from).
-        where("#{Issue.table_name}.created_on < ?", @date_to.to_date + 1).
-        where("#{Issue.table_name}.created_on IS NOT NULL").
-        group("#{Issue.table_name}.created_on").
-        count
-    end
-
-    def scope_by_closed_date
-      @data_scope.
-        open(false).
-        where("#{Issue.table_name}.closed_on >= ?", @date_from).
-        where("#{Issue.table_name}.closed_on < ?", @date_to.to_date + 1).
-        where("#{Issue.table_name}.closed_on IS NOT NULL").
-        group("#{Issue.table_name}.closed_on").
-        count
-    end
-
-    # options
-    # color    - Line color in RGB format (e.g '255,255,255') (random)
-    # fill     - Fille background under line (false)
-    # dashed   - Draw dached line (solid)
-    # nopoints - Doesn't show points on line (false)
-
-    def dataset(dataset_data, label, options = {})
-      color = options[:color] || [rand(255), rand(255), rand(255)].join(',')
-      dataset_color = "rgba(#{color}, 1)"
-      {
-        type: (options[:type] || 'line'),
-        data: dataset_data,
-        label: label,
-        fill: (options[:fill] || false),
-        backgroundColor: "rgba(#{color}, 0.2)",
-        borderColor: dataset_color,
-        borderDash: (options[:dashed] ? [5, 5] : []),
-        borderWidth: (options[:dashed] ? 1.5 : 2),
-        pointRadius: (options[:nopoints] ? 0 : 3),
-        pointBackgroundColor: dataset_color,
-        tooltips: { enable: false }
-      }
-    end
-
-    def initialize_chart_periods
-      raise Exception "Dates can't be blank" if [@date_to, @date_from].any?(&:blank?)
-      period_count
-      scale_division
-    end
-
-    def issues_count_by_period(issues_scope)
-      data = [0] * @period_count
-      issues_scope.each do |c|
-        next if c.first.localtime.to_date > @date_to.to_date
-        period_num = ((@date_to.to_date - c.first.localtime.to_date).to_i / @scale_division).to_i
-        data[period_num] += c.last unless data[period_num].blank?
-      end
-      data.reverse
-    end
-
-    def issues_avg_count_by_period(issues_scope)
-      count_by_date = {}
-      issues_scope.each {|x, y| count_by_date[x.localtime.to_date] = count_by_date[x.localtime.to_date].to_i + y }
-      data = [0] * @period_count
-      count_by_date.each do |x, y|
-        next if x.to_date > @date_to.to_date
-        period_num = ((@date_to.to_date - x.to_date).to_i / @scale_division).to_i
-        if data[period_num]
-          data[period_num] = y unless data[period_num].to_i > 0
-          data[period_num] = (data[period_num] + y) / 2.0
-        end
-      end
-      data.reverse
-    end
-
-    def chart_fields_by_period
-      chart_dates_by_period.map { |d| chart_field_by_date(d) }
-    end
-
-    def chart_field_by_date(date)
-      case @interval_size
-      when YEAR_INTERVAL
-        date.year
-      when QUARTER_INTERVAL, MONTH_INTERVAL
-        month_abbr_name(date.month) + ' ' + date.year.to_s
-      else
-        date.day.to_s + ' ' + month_name(date.month)
-      end
-    end
-
-    def weekend_periods
-      periods = []
-      @period_count.times do |m|
-        period_date = ((@date_to.to_date - 1 - m * @scale_division) + 1)
-        periods << @period_count - m - 1 if non_working_week_days.include?(period_date.cwday)
-      end
-      periods.compact
-    end
-
-    def chart_data_pairs(chart_data)
-      chart_data.inject([]) { |accum, value| accum << value }
-      data_pairs = []
-      for i in 0..chart_data.count - 1
-        data_pairs << [chart_dates_by_period[i], chart_data[i]]
-      end
-      data_pairs
-    end
-
-    def chart_dates_by_period
-      return @chart_dates_by_period if @chart_dates_by_period
-
-      period = period_count > 1 ? period_count - 1 : period_count
-      @chart_dates_by_period ||= period.times.inject([]) do |accum, m|
-        period_date = ((@date_to.to_date - 1 - m * @scale_division) + 1)
-        accum << if @interval_size == WEEK_INTERVAL
-                   period_date.at_beginning_of_week.to_date
-                 else
-                   period_date.to_date
-                 end
-      end.reverse
-    end
-
-    def month_abbr_name(month)
-      l('date.abbr_month_names')[month]
-    end
-
-    def trendline(y_values)
-      size = y_values.size
-      x_values = (1..size).to_a
-      sum_x = 0
-      sum_y = 0
-      sum_xx = 0
-      sum_xy = 0
-      y_values.zip(x_values).each do |y, x|
-        sum_xy += x * y
-        sum_xx += x * x
-        sum_x  += x
-        sum_y  += y
-      end
-
-      slope = 1.0 * ((size * sum_xy) - (sum_x * sum_y)) / ((size * sum_xx) - (sum_x * sum_x))
-      intercept = 1.0 * (sum_y - (slope * sum_x)) / size
-
-      line_values = x_values.map { |x| predict(x, slope, intercept) }
-      line_values.select { |val| val >= 0 }
-    end
-
-    def predict(x, slope, intercept)
-      slope * x + intercept
-    end
-
-    def period_count
-      @period_count ||= ((@date_to.to_time - @date_from.to_time) / time_divider).round + 1
-    end
-
-    def scale_division
-      @scale_division ||= time_divider / 1.day
-    end
-
-    def time_divider
-      @interval_size == QUARTER_INTERVAL ? 3.months : 1.send(@interval_size)
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/charts/burndown_chart.rb b/plugins/redmine_agile/lib/redmine_agile/charts/burndown_chart.rb
deleted file mode 100644
index 6a21a57..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/charts/burndown_chart.rb
+++ /dev/null
@@ -1,112 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  class BurndownChart < AgileChart
-    attr_accessor :burndown_data, :cumulative_burndown_data
-
-    def initialize(data_scope, options = {})
-      @date_from = options[:date_from] && options[:date_from].to_date ||
-                   [data_scope.minimum("#{Issue.table_name}.created_on"),
-                    data_scope.minimum("#{Issue.table_name}.start_date")].compact.map(&:to_date).min
-
-      @date_to = options[:date_to] && options[:date_to].to_date ||
-                 [options[:due_date],
-                  data_scope.maximum("#{Issue.table_name}.updated_on")].compact.map(&:to_date).max
-
-      @due_date = options[:due_date].to_date if options[:due_date]
-      @show_ideal_effort = options[:date_from] && options[:date_to]
-
-      super data_scope, options
-
-      @fields = [''] + @fields
-      @y_title = l(:label_agile_charts_number_of_issues)
-      @graph_title = l(:label_agile_charts_issues_burndown)
-      @line_colors = { :work => '80,122,170', :ideal => '102,102,102', :total => '80,122,170' }
-    end
-
-    def data
-      return false unless calculate_burndown_data.any?
-
-      datasets = [dataset(@burndown_data, l(:label_agile_actual_work_remaining), :fill => true, :color => line_colors[:work])]
-      if @show_ideal_effort
-        datasets << dataset(ideal_effort(@cumulative_burndown_data.first), l(:label_agile_ideal_work_remaining),
-                            :color => line_colors[:ideal], :dashed => true, :nopoints => true)
-      end
-      if @show_ideal_effort && (@cumulative_burndown_data != @burndown_data)
-        datasets << dataset(@cumulative_burndown_data, l(:label_agile_total_work_remaining),
-                            :color => line_colors[:total], :dashed => true)
-      end
-
-      {
-        :title    => @graph_title,
-        :y_title  => @y_title,
-        :labels   => @fields,
-        :datasets => datasets,
-        :show_tooltips => [0, 2]
-      }
-    end
-
-    def self.data(data_scope, options = {})
-      if options[:chart_unit] == Charts::UNIT_HOURS
-        WorkBurndownChart.new(data_scope, options.merge(estimated_unit: ESTIMATE_HOURS)).data
-      elsif options[:chart_unit] == Charts::UNIT_STORY_POINTS
-        WorkBurndownChart.new(data_scope, options.merge(estimated_unit: ESTIMATE_STORY_POINTS)).data
-      else
-        super
-      end
-    end
-
-    protected
-
-    def ideal_effort(start_remaining)
-      data = [0] * (due_date_period - 1)
-      active_periods = (RedmineAgile.exclude_weekends? && date_short_period?) ? due_date_period - @weekend_periods.select { |p| p < due_date_period }.count : due_date_period
-      avg_remaining_velocity = start_remaining.to_f / active_periods.to_f
-      sum = start_remaining.to_f
-      data[0] = sum
-      (1..due_date_period - 1).each do |i|
-        sum -= avg_remaining_velocity unless (RedmineAgile.exclude_weekends? && date_short_period?) && @weekend_periods.include?(i - 1)
-        data[i] = (sum * 100).round / 100.0
-      end
-      data[due_date_period] = 0
-      data
-    end
-
-    def calculate_burndown_data
-      created_by_period = issues_count_by_period(scope_by_created_date)
-      closed_by_period = issues_count_by_period(scope_by_closed_date)
-
-      total_issues = @data_scope.count
-      total_issues_before = @data_scope.where("#{Issue.table_name}.created_on < ?", @date_from).count
-      total_closed_before = @data_scope.open(false).where("#{Issue.table_name}.closed_on < ?", @date_from).count
-
-      sum = total_issues_before
-      cumulative_created_by_period = created_by_period.first(current_date_period).map { |x| sum += x }
-      sum = total_closed_before
-      cumulative_closed_by_period = closed_by_period.first(current_date_period).map { |x| sum += x }
-
-      burndown_by_period = [0] * (current_date_period)
-      cumulative_created_by_period.each_with_index { |e, i| burndown_by_period[i] = e - cumulative_closed_by_period[i] }
-      first_day_open_issues = @data_scope.where("#{Issue.table_name}.created_on < ?", @date_from + 1).count - total_closed_before
-      @cumulative_burndown_data = [total_issues - total_closed_before] + cumulative_closed_by_period.map { |c| total_issues - c }
-      @burndown_data = [first_day_open_issues] + burndown_by_period
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/charts/charts.rb b/plugins/redmine_agile/lib/redmine_agile/charts/charts.rb
deleted file mode 100644
index a2a478e..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/charts/charts.rb
+++ /dev/null
@@ -1,98 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Charts
-    BURNDOWN_CHART                 = 'burndown_chart'.freeze
-    ISSUES_BURNDOWN_CHART          = 'issues_burndown'.freeze
-    WORK_BURNDOWN_SP_CHART         = 'work_burndown_sp'.freeze
-    WORK_BURNDOWN_HOURS_CHART      = 'work_burndown_hours'.freeze
-
-    AGILE_CHARTS = {
-      BURNDOWN_CHART =>                 { name: :label_agile_chart_burndown, class: BurndownChart,
-                                          aliases: [ISSUES_BURNDOWN_CHART, WORK_BURNDOWN_HOURS_CHART, WORK_BURNDOWN_SP_CHART] },
-    }.freeze
-
-    CHARTS_WITH_UNITS = [
-      BURNDOWN_CHART,
-    ].freeze
-
-    UNIT_ISSUES = 'issues'.freeze
-    UNIT_STORY_POINTS = 'story_points'.freeze
-    UNIT_HOURS = 'hours'.freeze
-
-    CHART_UNITS = {
-      UNIT_ISSUES => :label_issue_plural,
-      UNIT_STORY_POINTS => :label_agile_story_points,
-      UNIT_HOURS => :label_agile_hours
-    }.freeze
-
-    CHART_UNIT_BY_ALIAS = {
-      ISSUES_BURNDOWN_CHART => UNIT_ISSUES,
-      WORK_BURNDOWN_HOURS_CHART => UNIT_HOURS,
-      WORK_BURNDOWN_SP_CHART => UNIT_STORY_POINTS,
-    }
-
-    def self.valid_chart?(name) !!AGILE_CHARTS[name] end
-
-    def self.chart_by_alias(alias_name)
-      chart_name = nil
-      AGILE_CHARTS.each do |chart, value|
-        if value[:aliases] && value[:aliases].include?(alias_name)
-          chart_name = chart
-          break
-        end
-      end
-      chart_name
-    end
-
-    def self.valid_chart_name_by(old_chart_name)
-      if valid_chart?(old_chart_name)
-        old_chart_name
-      elsif (chart_by_alias = chart_by_alias(old_chart_name))
-        chart_by_alias
-      else
-        BURNDOWN_CHART
-      end
-    end
-
-    def self.valid_chart_unit?(name) !!CHART_UNITS[name] end
-
-    def self.chart_with_units?(old_chart_name)
-      CHARTS_WITH_UNITS.include? valid_chart_name_by(old_chart_name)
-    end
-
-    def self.valid_chart_unit_by(old_chart_name, chart_unit)
-      if chart_with_units?(old_chart_name)
-        if chart_by_alias(old_chart_name)
-          CHART_UNIT_BY_ALIAS[old_chart_name]
-        elsif valid_chart_unit?(chart_unit)
-          chart_unit
-        else
-          UNIT_ISSUES
-        end
-      end
-    end
-
-    def self.chart_unit_label_by(alias_name)
-      chart_unit = CHART_UNIT_BY_ALIAS[alias_name]
-      CHART_UNITS[chart_unit]
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/charts/work_burndown_chart.rb b/plugins/redmine_agile/lib/redmine_agile/charts/work_burndown_chart.rb
deleted file mode 100644
index 0c8019e..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/charts/work_burndown_chart.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  class WorkBurndownChart < BurndownChart
-    def initialize(data_scope, options = {})
-      super data_scope, options
-      if @estimated_unit == 'hours'
-        @y_title = l(:label_agile_charts_number_of_hours)
-        @graph_title = l(:label_agile_charts_work_burndown_hours)
-      else
-        @y_title = l(:label_agile_charts_number_of_story_points)
-        @graph_title = l(:label_agile_charts_work_burndown_sp)
-      end
-
-      @line_colors = { work: '0,153,0', ideal: '102,102,102', total: '0,153,0' }
-    end
-
-    protected
-
-    def calculate_burndown_data
-      data_scope = @data_scope
-      data_scope = data_scope.where("#{Issue.table_name}.rgt - #{Issue.table_name}.lft = 1") if use_subissue_done_ratio && @estimated_unit == 'hours'
-
-      if @estimated_unit == 'hours'
-        all_issues = data_scope.where("#{Issue.table_name}.estimated_hours IS NOT NULL").
-                     eager_load([:journals, :status, { journals: { details: :journal } }])
-        cumulative_total_hours = data_scope.sum("#{Issue.table_name}.estimated_hours").to_f
-      else
-        all_issues = data_scope.where("#{AgileData.table_name}.story_points IS NOT NULL").
-                     joins(:agile_data).eager_load([:journals, :status, { journals: { details: :journal } }])
-        cumulative_total_hours = data_scope.joins(:agile_data).sum("#{AgileData.table_name}.story_points").to_f
-      end
-
-      data = chart_dates_by_period.select { |d| d <= Date.today }.map do |date|
-        issues = all_issues.select { |issue| issue.created_on.localtime.to_date <= date }
-        total_hours_left, cumulative_total_hours_left = date_effort(issues, date)
-        [total_hours_left, cumulative_total_hours - cumulative_total_hours_left]
-      end
-      tail_values = data.last ? [data.last] * (current_date_period - data.size) : []
-      data = first_period_effort(all_issues, chart_dates_by_period.first, cumulative_total_hours) + data + tail_values
-      @burndown_data, @cumulative_burndown_data = data.transpose
-    end
-
-    private
-
-    def first_period_effort(issues_scope, start_date, cumulative_total_hours)
-      issues = issues_scope.select { |issue| issue.created_on.localtime.to_date <= start_date }
-      total_left, cumulative_left = date_effort(issues, start_date - 1)
-      [[total_left, cumulative_total_hours - cumulative_left]]
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/helpers/agile_helper.rb b/plugins/redmine_agile/lib/redmine_agile/helpers/agile_helper.rb
deleted file mode 100644
index cdc4be9..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/helpers/agile_helper.rb
+++ /dev/null
@@ -1,153 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module AgileHelper
-
-    def retrieve_agile_query_from_session
-      if session[:agile_query]
-        if session[:agile_query][:id]
-          @query = AgileQuery.find_by_id(session[:agile_query][:id])
-          return unless @query
-        else
-          @query = AgileQuery.new(get_query_attributes_from_session)
-        end
-        if session[:agile_query].has_key?(:project_id)
-          @query.project_id = session[:agile_query][:project_id]
-        else
-          @query.project = @project
-        end
-        @query
-      else
-        @query = AgileQuery.new(:name => "_")
-      end
-    end
-
-    def retrieve_agile_query
-      if !params[:query_id].blank?
-        cond = "project_id IS NULL"
-        cond << " OR project_id = #{@project.id}" if @project
-        @query = AgileQuery.where(cond).find(params[:query_id])
-        raise ::Unauthorized unless @query.visible?
-        @query.project = @project
-        session[:agile_query] = {:id => @query.id, :project_id => @query.project_id}
-        sort_clear
-      elsif api_request? || params[:set_filter] || session[:agile_query].nil? || session[:agile_query][:project_id] != (@project ? @project.id : nil)
-        unless @query
-          @query = AgileQuery.new(:name => "_", :project => @project)
-          @query.build_from_params(params)
-        else
-          @query.project = @project if @project
-        end
-        save_query_attribures_to_session(@query)
-      else
-        # retrieve from session
-        @query = nil
-        if session[:agile_query] && !session[:agile_query][:id] && !params[:project_id]
-          @query = AgileQuery.new(get_query_attributes_from_session)
-        end
-
-        @query ||= AgileQuery.find_by_id(session[:agile_query][:id]) if session[:agile_query][:id]
-        @query ||= AgileQuery.new(get_query_attributes_from_session)
-        @query.project = @project
-        save_query_attribures_to_session(@query)
-      end
-    end
-
-    def options_card_colors_for_select(selected, options={})
-      color_base = [[l(:label_agile_color_no_colors), "none"],
-        [l(:label_issue), "issue"],
-        [l(:label_tracker), "tracker"],
-        [l(:field_priority), "priority"],
-        [l(:label_spent_time), "spent_time"],
-        [l(:field_assigned_to), "user"]]
-      color_base << [l(:field_project), 'project'] if (@project && @project.children.any?) || !@project
-      options_for_select(color_base.compact, selected)
-    end
-
-    def options_charts_for_select(selected)
-      container = []
-      RedmineAgile::Charts::AGILE_CHARTS.each { |k, v| container << [l(v[:name]), k] }
-      selected_chart = RedmineAgile::Charts.chart_by_alias(selected) || selected
-      options_for_select(container, selected_chart)
-    end
-
-    def grouped_options_charts_for_select(selected)
-      grouped_options = {}
-      container = []
-
-      RedmineAgile::Charts::AGILE_CHARTS.each do |chart, value|
-        if RedmineAgile::Charts::CHARTS_WITH_UNITS.include?(chart)
-          group = l(value[:name])
-          grouped_options[group] = []
-          value[:aliases].each do |alias_name|
-            grouped_options[group] << ["#{group} (#{l(RedmineAgile::Charts.chart_unit_label_by(alias_name))})", alias_name]
-          end
-        else
-          container << [l(value[:name]), chart]
-        end
-      end
-
-      grouped_options_for_select(grouped_options, selected) + options_for_select(container, selected)
-    end
-
-    def options_chart_units_for_select(selected = nil)
-      container = []
-      RedmineAgile::Charts::CHART_UNITS.each { |k, v| container << [l(v), k] }
-      selected_unit = RedmineAgile::Charts::CHART_UNIT_BY_ALIAS[selected] || selected
-      options_for_select(container, selected_unit)
-    end
-
-    def render_agile_chart(chart_name, issues_scope)
-      render partial: "agile_charts/chart",
-             locals: { chart: chart_name, issues_scope: issues_scope, chart_unit: params[:chart_unit] }
-    end
-
-    def upgrade_to_pro_agile_chart_link(chart_name, query = @query, current_chart = @chart)
-      link_to l("label_agile_charts_#{chart_name}"), '#',
-              onclick: "showModal('upgrade-to-pro', '557px');",
-              class: ('selected' if query.is_a?(AgileChartsQuery) && query.new_record? && current_chart == chart_name)
-    end
-
-    private
-
-    def get_query_attributes_from_session
-      attributes = { name: '_',
-                     filters: session[:agile_query][:filters],
-                     group_by: session[:agile_query][:group_by],
-                     column_names: session[:agile_query][:column_names],
-                     color_base: session[:agile_query][:color_base] }
-      (attributes[:options] = session[:agile_query][:options] || {}) if Redmine::VERSION.to_s > '2.4'
-      attributes
-    end
-
-    def save_query_attribures_to_session(query)
-      session[:agile_query] = { project_id: query.project_id,
-                                filters: query.filters,
-                                group_by: query.group_by,
-                                color_base: (query.respond_to?(:color_base) && query.color_base),
-                                column_names: query.column_names }
-      (session[:agile_query][:options] = query.options) if Redmine::VERSION.to_s > '2.4'
-    end
-  end
-end
-
-ActionView::Base.send :include, RedmineAgile::AgileHelper
diff --git a/plugins/redmine_agile/lib/redmine_agile/hooks/controller_issue_hook.rb b/plugins/redmine_agile/lib/redmine_agile/hooks/controller_issue_hook.rb
deleted file mode 100644
index 06cc964..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/hooks/controller_issue_hook.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Hooks
-    class ControllerIssueHook < Redmine::Hook::ViewListener
-
-      def controller_issues_edit_before_save(context={})
-        add_agile_journal_details(context)
-      end
-
-      def controller_issues_bulk_edit_before_save(context={})
-        add_agile_journal_details(context)
-      end
-
-      private
-
-      def add_agile_journal_details(context)
-        return false unless context[:issue].project.module_enabled?(:agile)
-        # return false unless context[:issue].color
-        old_value = Issue.where(id: context[:issue].id).first || context[:issue]
-        # save changes for story points to journal
-        old_sp = old_value.story_points
-        new_sp = context[:issue].story_points
-        if !((new_sp == old_sp) || context[:issue].current_journal.blank?)
-          context[:issue].current_journal.details << JournalDetail.new(:property => 'attr',
-          :prop_key => 'story_points',
-          :old_value => old_sp,
-          :value => new_sp)
-        end
-      end
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/hooks/views_issues_hook.rb b/plugins/redmine_agile/lib/redmine_agile/hooks/views_issues_hook.rb
deleted file mode 100644
index d4d7ab2..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/hooks/views_issues_hook.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Hooks
-    class ViewsIssuesHook < Redmine::Hook::ViewListener
-      def view_issues_sidebar_issues_bottom(context = {})
-        context[:controller].send(:render_to_string, partial: 'agile_charts/agile_charts', locals: context)
-      end
-
-      render_on :view_issues_form_details_bottom, :partial => 'issues/agile_data_fields'
-      render_on :view_issues_show_details_bottom, :partial => 'issues/agile_data_labels'
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/hooks/views_layouts_hook.rb b/plugins/redmine_agile/lib/redmine_agile/hooks/views_layouts_hook.rb
deleted file mode 100644
index ef723bc..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/hooks/views_layouts_hook.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Hooks
-    class ViewsLayoutsHook < Redmine::Hook::ViewListener
-      def view_layouts_base_html_head(context={})
-        return stylesheet_link_tag(:redmine_agile, :plugin => 'redmine_agile')
-      end
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/hooks/views_versions_hook.rb b/plugins/redmine_agile/lib/redmine_agile/hooks/views_versions_hook.rb
deleted file mode 100644
index 67af1e1..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/hooks/views_versions_hook.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Hooks
-    class ViewsVersionsHook < Redmine::Hook::ViewListener
-      render_on :view_versions_show_bottom, :partial => "agile_charts/versions_show"
-    end
-  end
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/patches/issue_drop_patch.rb b/plugins/redmine_agile/lib/redmine_agile/patches/issue_drop_patch.rb
deleted file mode 100644
index db476e5..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/patches/issue_drop_patch.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Patches
-    module IssueDropPatch
-
-      def self.included(base)
-        base.class_eval do
-          base.send(:include, InstanceMethods)
-        end
-      end
-
-      module InstanceMethods
-        def time_in_statuses
-          statuses_data = AgileStatusesCollector.new(@issue).grouped_by('status')
-          statuses = Hash[IssueStatus.where(id: statuses_data.keys).map { |s| [s.id.to_s, s.name] }]
-          Hash[statuses_data.map { |sid, data| [statuses[sid], (data.map(&:duration).sum / 1.days).round] }]
-        end
-      end
-    end
-
-  end
-end
-
-unless RedmineCrm::Liquid::IssueDrop.included_modules.include?(RedmineAgile::Patches::IssueDropPatch)
-  RedmineCrm::Liquid::IssueDrop.send(:include, RedmineAgile::Patches::IssueDropPatch)
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/patches/issue_patch.rb b/plugins/redmine_agile/lib/redmine_agile/patches/issue_patch.rb
deleted file mode 100644
index 8caca54..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/patches/issue_patch.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'issue'
-require_dependency 'agile_data'
-
-module RedmineAgile
-  module Patches
-
-    module IssuePatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-        base.class_eval do
-          unloadable
-          has_one :agile_data, :dependent => :destroy
-          delegate :position, :to => :agile_data, :allow_nil => true
-          scope :sorted_by_rank, lambda { eager_load(:agile_data).
-                                          order(Arel.sql("COALESCE(#{AgileData.table_name}.position, 999999  )")) }
-          safe_attributes 'agile_data_attributes', :if => lambda { |issue, user| issue.new_record? || user.allowed_to?(:edit_issues, issue.project) }
-          accepts_nested_attributes_for :agile_data, :allow_destroy => true
-
-          alias_method :agile_data_without_default, :agile_data
-          alias_method :agile_data, :agile_data_with_default
-        end
-      end
-
-      module InstanceMethods
-        def agile_data_with_default
-          agile_data_without_default || build_agile_data
-        end
-
-        def day_in_state
-          change_time = journals.joins(:details).where(:journals => { :journalized_id => id, :journalized_type => 'Issue' },
-                                                       :journal_details => { :prop_key => 'status_id' }).order('created_on DESC').first
-          change_time.created_on
-        rescue
-          created_on
-        end
-
-        def last_comment
-          journals.where("notes <> ''").order("#{Journal.table_name}.id ASC").last
-        end
-
-        def story_points
-          @story_points ||= agile_data.story_points
-        end
-
-        def sub_issues
-          descendants
-        end
-      end
-    end
-
-  end
-end
-
-unless Issue.included_modules.include?(RedmineAgile::Patches::IssuePatch)
-  Issue.send(:include, RedmineAgile::Patches::IssuePatch)
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/patches/issues_controller_patch.rb b/plugins/redmine_agile/lib/redmine_agile/patches/issues_controller_patch.rb
deleted file mode 100644
index 5e4d94c..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/patches/issues_controller_patch.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Patches
-    module IssuesControllerPatch
-      def self.included(base) # :nodoc:
-        base.class_eval do
-        end
-      end
-    end
-  end
-end
-
-unless IssuesController.included_modules.include?(RedmineAgile::Patches::IssuesControllerPatch)
-  IssuesController.send(:include, RedmineAgile::Patches::IssuesControllerPatch)
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/patches/project_patch.rb b/plugins/redmine_agile/lib/redmine_agile/patches/project_patch.rb
deleted file mode 100644
index 2f4a628..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/patches/project_patch.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Patches
-    module ProjectPatch
-
-      def self.included(base)
-        base.class_eval do
-          base.send(:include, InstanceMethods)
-          safe_attributes 'agile_color_attributes',
-            if: lambda { |project, user| user.allowed_to?(:edit_project, project) && user.allowed_to?(:view_agile_queries, project) && RedmineAgile.use_colors? }
-        end
-      end
-
-      module InstanceMethods
-      end
-    end
-
-  end
-end
-
-unless Project.included_modules.include?(RedmineAgile::Patches::ProjectPatch)
-  Project.send(:include, RedmineAgile::Patches::ProjectPatch)
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/patches/projects_helper_patch.rb b/plugins/redmine_agile/lib/redmine_agile/patches/projects_helper_patch.rb
deleted file mode 100644
index 653c009..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/patches/projects_helper_patch.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'queries_helper'
-
-module RedmineAgile
-  module Patches
-    module ProjectsHelperPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-          unloadable
-        end
-      end
-
-      module InstanceMethods
-      end
-    end
-  end
-end
-
-unless ProjectsHelper.included_modules.include?(RedmineAgile::Patches::ProjectsHelperPatch)
-  ProjectsHelper.send(:include, RedmineAgile::Patches::ProjectsHelperPatch)
-end
diff --git a/plugins/redmine_agile/lib/redmine_agile/patches/queries_controller_patch.rb b/plugins/redmine_agile/lib/redmine_agile/patches/queries_controller_patch.rb
deleted file mode 100644
index 085b7d6..0000000
--- a/plugins/redmine_agile/lib/redmine_agile/patches/queries_controller_patch.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineAgile
-  module Patches
-    module QueriesControllerPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-        base.class_eval do
-          alias_method :query_class_without_agile, :query_class
-          alias_method :query_class, :query_class_with_agile
-        end
-      end
-
-      module InstanceMethods
-        def query_class_with_agile
-          return AgileChartsQuery if params[:type] == 'AgileChartsQuery'
-          return AgileVersionsQuery if params[:type] == 'AgileVersionsQuery'
-          query_class_without_agile
-        end
-      end
-    end
-  end
-end
-
-unless QueriesController.included_modules.include?(RedmineAgile::Patches::QueriesControllerPatch)
-  QueriesController.send(:include, RedmineAgile::Patches::QueriesControllerPatch)
-end
diff --git a/plugins/redmine_agile/test/fixtures/agile_data.yml b/plugins/redmine_agile/test/fixtures/agile_data.yml
deleted file mode 100644
index bcd268a..0000000
--- a/plugins/redmine_agile/test/fixtures/agile_data.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-agile_data_1:
-  id: 1
-  issue_id: 1
-  position: 1
-  story_points: 1.1
-  agile_sprint_id: nil
-agile_data_2:
-  id: 2
-  issue_id: 2
-  position: 1
-  story_points: 2.2
-  agile_sprint_id: 1
-agile_data_3:
-  id: 3
-  issue_id: 3
-  position: 3
-  story_points: nil
-  agile_sprint_id: nil
diff --git a/plugins/redmine_agile/test/fixtures/queries.yml b/plugins/redmine_agile/test/fixtures/queries.yml
deleted file mode 100644
index 7e33abb..0000000
--- a/plugins/redmine_agile/test/fixtures/queries.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-agile_query_101:
-  id: 101
-  type: AgileQuery
-  project_id: 1
-  <% if Redmine::VERSION.to_s < '2.4' %>
-  is_public: false
-  <% else %>
-  visibility: 2
-  <% end %>
-  name: Board for specific project
-  filters: |
-    ---
-    tracker_id:
-      :values:
-      - "3"
-      :operator: "="
-  user_id: 1
-  column_names: []
-
-agile_query_102:
-  id: 102
-  type: AgileQuery
-  project_id: nil
-  <% if Redmine::VERSION.to_s < '2.4' %>
-  is_public: true
-  <% else %>
-  visibility: 2
-  <% end %>
-  name: Board for all projects
-  filters: {}
-  user_id: 1
-  column_names: []
diff --git a/plugins/redmine_agile/test/functional/agile_boards_controller_test.rb b/plugins/redmine_agile/test/functional/agile_boards_controller_test.rb
deleted file mode 100644
index 6619a26..0000000
--- a/plugins/redmine_agile/test/functional/agile_boards_controller_test.rb
+++ /dev/null
@@ -1,819 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-module RedmineAgile
-  module AgileBoardsControllerTest
-    module SpecificTestCase
-      def test_get_index_with_filter_issue_id
-        compatible_request :get, :index, {
-          project_id: 'ecookbook',
-          set_filter: '1',
-          f: %w(issue_id),
-          op: { 'issue_id' => '<=' },
-          v: { 'issue_id' => ['2'] },
-          c: %w(tracker assigned_to)
-        }
-
-        assert_response :success
-        assert_equal [1, 2], agile_issues_in_list.map(&:id).sort
-      end
-
-      def test_get_index_with_filter_is_private
-        project = Project.find(3)
-        emodule = EnabledModule.create(project_id: project.id, name: 'agile')
-
-        compatible_request :get, :index, {
-          project_id: 'ecookbook',
-          set_filter: '1',
-          f: %w(is_private),
-          op: { 'is_private' => '=' },
-          v: { 'is_private' => ['1'] },
-          c: %w(tracker assigned_to)
-        }
-
-        assert_response :success
-        assert_equal [14], agile_issues_in_list.map(&:id)
-      ensure
-        emodule.destroy
-      end
-
-      def test_get_index_with_filter_watcher_id
-        issues(:issues_001).set_watcher(users(:users_002))
-
-        compatible_request :get, :index, {
-          project_id: 'ecookbook',
-          set_filter: '1',
-          f: %w(watcher_id),
-          op: { 'watcher_id' => '=' },
-          v: { 'watcher_id' => ['2'] },
-          c: %w(tracker assigned_to)
-        }
-
-        assert_response :success
-        assert_equal [1], agile_issues_in_list.map(&:id)
-      end
-    end
-  end
-end
-
-
-class AgileBoardsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :issue_relations,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-  fixtures :email_addresses if Redmine::VERSION.to_s > '3.0'
-
-  include(RedmineAgile::AgileBoardsControllerTest::SpecificTestCase) if Redmine::VERSION.to_s > '2.4'
-
-  def setup
-    RedmineAgile::TestCase.prepare
-    @project_1 = Project.find(1)
-    @project_2 = Project.find(5)
-    @project_3 = Project.find(3)
-    EnabledModule.create(:project => @project_1, :name => 'agile')
-    EnabledModule.create(:project => @project_2, :name => 'agile')
-    EnabledModule.create(:project => @project_3, :name => 'agile')
-    @request.session[:user_id] = 1
-  end
-
-  def test_get_index
-    # global board
-    compatible_request :get, :index
-    assert_response :success
-    assert_equal Issue.open.map(&:id).sort, agile_issues_in_list.map(&:id).sort
-    assert_select '.issue-card', Issue.open.count
-  end
-
-  def test_get_index_with_project
-    compatible_request :get, :index, project_id: @project_1
-    issues = Issue.where(project_id: [@project_1] + Project.where(parent_id: @project_1.id)
-                                                           .select {|p| p.module_enabled?('agile') }.to_a,
-                         status_id: IssueStatus.where(is_closed: false))
-    assert_equal issues.map(&:id).sort, agile_issues_in_list.map(&:id).sort
-    assert_select '.issue-card', issues.count
-    assert_select '.issue-card span.fields p.issue-id strong', issues.count
-    assert_select '.issue-card span.fields p.name a', issues.count
-  end
-
-  def test_get_index_truncated
-    with_agile_settings 'board_items_limit' => 1 do
-      compatible_request :get, :index, agile_query_params
-      assert_response :success
-      assert_select 'div#content p.warning', 1
-      assert_select 'td.issue-status-col .issue-card', 1
-    end
-  end
-
-  def test_limit_for_truncated
-    expected_issues = Issue.where(:project_id => [@project_1] + Project.where(:parent_id => @project_1.id).to_a,
-                                  :status_id => IssueStatus.where(:is_closed => false))
-    with_agile_settings 'board_items_limit' => (expected_issues.count + 1) do
-      compatible_request :get, :index, agile_query_params.merge(:f_status => IssueStatus.where(:is_closed => false).pluck(:id))
-      assert_response :success
-      assert_select 'div#content p.warning', 0
-    end
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_get_index_with_filters
-    if Redmine::VERSION.to_s > '2.4'
-      compatible_request :get, :index, agile_query_params.merge(:f_status => IssueStatus.where('id != 1').pluck(:id))
-    else
-      compatible_request :get, :index, agile_query_params.merge(:op => { :status_id => '!' }, :v => { :status_id => ['1'] })
-    end
-    assert_response :success
-    expected_issues = Issue.where(:project_id => [@project_1] + Project.where(:parent_id => @project_1.id).to_a,
-                                  :status_id => IssueStatus.where('id != 1'))
-    assert_equal expected_issues.map(&:id).sort, agile_issues_in_list.map(&:id).sort
-  end
-
-  def test_get_index_with_filter_on_assignee_role
-    assignee_params = { :set_filter => '1',
-                        :f => ['assigned_to_role', ''],
-                        :op => { :assigned_to_role => '=' },
-                        :v => { 'assigned_to_role' => ['2'] },
-                        :c => ['assigned_to'],
-                        :project_id => 'ecookbook' }
-    compatible_request :get, :index, assignee_params
-    assert_response :success
-    members = Member.joins(:roles).where(:project_id => [@project_1]).where('member_roles.role_id = 2').map(&:user_id).uniq
-    expected_issues = Issue.where(:project_id => [@project_1]).where(:assigned_to_id => members)
-    assert_equal expected_issues.map(&:id).sort, agile_issues_in_list.map(&:id).sort
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def create_subissue
-    @issue1 = Issue.find(1)
-    @subissue = Issue.create!(
-      :subject         => 'Sub issue',
-      :project         => @issue1.project,
-      :tracker         => @issue1.tracker,
-      :author          => @issue1.author,
-      :parent_issue_id => @issue1.id,
-      :fixed_version   => Version.last
-    )
-  end
-
-  def test_get_index_with_filter_on_parent_tracker
-    create_subissue
-    compatible_request :get, :index, agile_query_params.merge(
-      :op => { :parent_issue_tracker_id => '=' },
-      :v => { :parent_issue_tracker_id => [Tracker.find(1).name] },
-      :f => [:parent_issue_tracker_id],
-      :project_id => Project.order(:id).first.id
-    )
-    assert_response :success
-    assert_equal [@subissue.id], agile_issues_in_list.map(&:id)
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_get_index_with_filter_on_two_parent_id
-    create_subissue
-    issue2 = Issue.generate!
-    child2 = Issue.generate!(:parent_issue_id => issue2.id)
-
-    compatible_request :get, :index, agile_query_params.merge(
-      :op => { :parent_issue_id => '=' },
-      :v => { :parent_issue_id => ["#{@issue1.id}, #{issue2.id}"] },
-      :f => [:parent_issue_id],
-      :project_id => Project.order(:id).first.id
-    )
-    assert_response :success
-    assert_equal [@subissue.id, child2.id].sort, agile_issues_in_list.map(&:id).sort
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_get_index_with_filter_on_parent_tracker_inversed
-    create_subissue
-    compatible_request :get, :index, agile_query_params.merge(
-      :op => { :parent_issue_tracker_id => '!' },
-      :v => { :parent_issue_tracker_id => [Tracker.find(1).name] },
-      :f => [:parent_issue_tracker_id],
-      :project_id => Project.order(:id).first.id
-    )
-    assert_response :success
-    assert_not_include @subissue.id, agile_issues_in_list.map(&:id)
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_get_index_with_filter_on_has_subissues
-    create_subissue
-    compatible_request :get, :index, agile_query_params.merge(
-      :op => { :has_sub_issues => '=' },
-      :v => { :has_sub_issues => ['yes'] },
-      :f => [:has_sub_issues],
-      :project_id => Project.order(:id).first.id
-    )
-    assert_response :success
-    assert_equal [@issue1.id], agile_issues_in_list.map(&:id)
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_get_index_with_filter_and_field_time_in_state
-    create_subissue
-    columns_group_by = AgileQuery.new.groupable_columns
-    columns_group_by.each do |col|
-      compatible_request :get, :index, agile_query_params.merge(
-        :project_id => Project.order(:id).first.id,
-        :group_by => col.name.to_s
-      )
-      assert_response :success, "Error with group by #{col.name}"
-    end
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_put_update_status
-    status_id = 1
-    first_issue_id = 1
-    second_issue_id = 3
-    first_pos = 1
-    second_pos = 2
-    positions = { first_issue_id.to_s => { 'position' => first_pos }, second_issue_id.to_s => { 'position' => second_pos } }
-    compatible_xhr_request :put, :update, :id => first_issue_id, :issue => { :status_id => status_id }, :positions => positions
-    assert_response :success
-    assert_equal status_id, Issue.find(first_issue_id).status_id
-    assert_equal first_pos, Issue.find(first_issue_id).agile_data.position
-    assert_equal second_pos, Issue.find(second_issue_id).agile_data.position
-    # check js code for update board header
-    assert_match '$("table.issues-board thead").html(', @response.body
-  end
-
-  def test_put_update_version
-    fixed_version_id = 3
-    first_issue_id = 1
-    second_issue_id = 3
-    first_pos = 1
-    second_pos = 2
-    positions = { first_issue_id.to_s => { 'position' => first_pos }, second_issue_id.to_s => { 'position' => second_pos } }
-    compatible_xhr_request :put, :update, :id => first_issue_id, :issue => { :fixed_version_id => fixed_version_id }, :positions => positions
-    assert_response :success
-    assert_equal fixed_version_id, Issue.find(first_issue_id).fixed_version_id
-    assert_equal first_pos, Issue.find(first_issue_id).agile_data.position
-    assert_equal second_pos, Issue.find(second_issue_id).agile_data.position
-  end
-
-  def test_put_update_assigned
-    assigned_to_id = 3
-    issue_id = 1
-    compatible_xhr_request :put, :update, :id => issue_id, :issue => { :assigned_to_id => assigned_to_id }
-    assert_response :success
-    assert_equal assigned_to_id, Issue.find(issue_id).assigned_to_id
-  end
-
-  def test_get_index_with_all_fields
-    compatible_request :get, :index, agile_query_params.merge(:f => AgileQuery.available_columns.map(&:name))
-    assert_response :success
-  end
-
-  def test_short_card_for_closed_issue
-    with_agile_settings 'hide_closed_issues_data' => '1' do
-      closed_status = IssueStatus.where(:is_closed => true).pluck(:id)
-      closed_issues = Issue.where(:status_id => closed_status)
-      project = closed_issues.first.project
-
-      # get :index, agile_query_params.merge(:f_status => closed_status)
-      if Redmine::VERSION.to_s > '2.4'
-        compatible_request :get, :index, agile_query_params.merge(:f_status => closed_status)
-      else
-        compatible_request :get, :index, agile_query_params.merge('f' => [''])
-      end
-
-      assert_response :success
-      assert_select '.closed-issue', project.issues.where(:status_id => IssueStatus.where(:is_closed => true)).count
-    end
-  end
-
-  def test_get_tooltip_for_issue
-    issue = Issue.where(:status_id => IssueStatus.where(:is_closed => true)).first
-    compatible_request :get, :issue_tooltip, :id => issue.id
-    assert_response :success
-    assert_select 'a.issue', 1
-    assert_select 'strong', 6
-    assert_match issue.status.name, @response.body
-  end
-
-  def test_empty_node_for_tooltip
-    with_agile_settings 'hide_closed_issues_data' => '1' do
-      closed_status = IssueStatus.where(:is_closed => true).pluck(:id)
-      if Redmine::VERSION.to_s > '2.4'
-        compatible_request :get, :index, agile_query_params.merge(:f_status => closed_status)
-      else
-        compatible_request :get, :index, agile_query_params.merge('f' => [''])
-      end
-      assert_select 'span.tip', { :text => '' }
-    end
-  end
-
-  def test_setting_for_closed_issues
-    with_agile_settings 'hide_closed_issues_data' => '0' do
-      closed_issues = Issue.where(:status_id => IssueStatus.where(:is_closed => true))
-      project = closed_issues.first.project
-      compatible_request :get, :index, agile_query_params.merge('f' => [''])
-      assert_response :success
-      assert_select '.closed-issue', 0
-    end
-  end
-
-  def test_index_with_js_format
-    with_agile_settings 'hide_closed_issues_data' => '1' do
-      closed_issues = Issue.where(:status_id => IssueStatus.where(:is_closed => true))
-      project = closed_issues.first.project
-      compatible_xhr_request :get, :index, agile_query_params.merge('f' => [''], :format => :js)
-      assert_response :success
-      assert_match "$('.tooltip').mouseenter(callGetToolTipInfo)", @response.body
-    end
-  end
-
-  def test_get_index_with_day_in_state_and_parent_group
-    compatible_request :get, :index, agile_query_params.merge(:c => ['day_in_state'], :group_by => 'parent')
-    assert_response :success
-  end
-
-  def test_assinged_to_and_in_state_in_index
-    issue1 = Issue.find(1)
-    issue2 = Issue.create!(
-      :subject         => 'Test assigned_to with day in state',
-      :project         => issue1.project,
-      :tracker         => issue1.tracker,
-      :author          => issue1.author,
-      :fixed_version   => Version.last
-    )
-    compatible_request :get, :index, agile_query_params.merge(:c => ['day_in_state'], :group_by => 'parent')
-    assigned_to_id = 3
-    issue_id = issue2.id
-    compatible_xhr_request :put, :update, :id => issue_id, :issue => { :assigned_to_id => assigned_to_id }
-    assert_response :success
-    issue2.reload
-    assert_equal assigned_to_id, issue2.assigned_to_id
-  end
-
-  def test_index_with_relations_relates
-    create_issue_relation
-    compatible_request :get, :index, agile_query_params.merge(:f_status => IssueStatus.pluck(:id), :op => { :status_id => '*', :relates => '*' }, :f => ['relates'])
-    assert_response :success
-    assert_equal [1, 7, 8], agile_issues_in_list.map(&:id).sort
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_index_with_relations_blocked
-    create_issue_relation
-
-    compatible_request :get, :index, agile_query_params.merge(:f_status => IssueStatus.pluck(:id), :op => { :status_id => '*', :blocked => '*' }, :f => ['blocked'])
-    assert_response :success
-    assert_equal [2, 11], agile_issues_in_list.map(&:id).sort
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_list_of_attributes_on_update_status
-    params = agile_query_params.merge(:c => ['project', 'day_in_state'], :group_by => 'parent')
-    params.delete(:project_id)
-    compatible_request :get, :index, params
-    assert_response :success
-    assert_select 'p.project'
-    compatible_request :put, :update, :issue => { :status_id => 2 }, :id => 1
-    assert_select 'p.project', { :text => @project_1.to_s }
-  end
-
-  def test_day_in_state_when_change_status
-    @request.session[:agile_query] = {}
-    @request.session[:agile_query][:column_names] = ['project', 'day_in_state']
-    issue = Issue.find(1)
-    compatible_request :put, :update, :issue => { :status_id => 2 }, :id => 1
-    issue.reload
-    assert_response :success
-    assert_equal 2, issue.status_id
-    assert_select 'p.attributes', /0.hours/
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_global_query_and_project_board
-    query = AgileQuery.create(:name => 'global', :column_names => ['project'], :visibility => 2, :options => { :is_default => true })
-    compatible_request :get, :index, :project_id => 1
-    assert_select 'p.project', { :count => 0, :text => Project.find(2).to_s }
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_total_estimated_hours_for_status
-    Setting.stubs(:display_subprojects_issues?).returns(false) if Redmine::VERSION.to_s >= '4.0'
-    Issue.find(1, 2, 3).each do |issue|
-      issue.estimated_hours = 10
-      issue.save
-    end
-
-    compatible_request :get, :index, agile_query_params.merge(c: ['estimated_hours'],
-                                                              f: [:issue_id],
-                                                              op: { issue_id: '><' },
-                                                              v: { issue_id: [1, 3] })
-
-    assert_response :success
-
-    assert_select 'thead tr th span.hours', { count: 1, text: '20.00h' } # status_id == 1
-    assert_select 'thead tr th span.hours', { count: 1, text: '10.00h' } # status_id == 2
-  end
-
-  def test_get_index_with_checklist
-    # global board
-    issue1 = issue_with_checklist
-
-    compatible_request :get, :index, agile_query_params.merge(:c => ['checklists'], :project_id => nil)
-    assert_response :success
-    # check checklist nodes
-    assert_select "#checklist_#{issue1.id}"
-    issue1.checklists.each do |checklist|
-      assert_select "#checklist_item_#{checklist.id}", :text => checklist.subject
-    end
-  end if RedmineAgile.use_checklist?
-
-  def test_get_index_without_checklist
-    issue1 = issue_with_checklist
-    compatible_request :get, :index, :c => []
-    assert_response :success
-    # check checklist nodes
-    assert_select "#checklist_#{issue1.id}", :count => 0
-    issue1.checklists.each do |checklist|
-      assert_select "#checklist_item_#{checklist.id}", :count => 0
-    end
-  end if RedmineAgile.use_checklist?
-
-  def test_get_index_with_project_with_checklist
-    issue1 = issue_with_checklist
-    compatible_request :get, :index, agile_query_params.merge(:c => ['checklists'], :project_id => issue1.project)
-    assert_response :success
-    # check checklist nodes
-    assert_select "#checklist_#{issue1.id}"
-    issue1.checklists.each do |checklist|
-      assert_select "#checklist_item_#{checklist.id}", :text => checklist.subject
-    end
-  end if RedmineAgile.use_checklist?
-
-  def test_get_index_with_project_without_checklist
-    issue1 = issue_with_checklist
-    compatible_request :get, :index, agile_query_params.merge(:project_id => issue1.project, :c => [])
-    assert_response :success
-    # check checklist nodes
-    assert_select "#checklist_#{issue1.id}", :count => 0
-    issue1.checklists.each do |checklist|
-      assert_select "#checklist_item_#{checklist.id}", :count => 0
-    end
-  end if RedmineAgile.use_checklist?
-
-  def test_get_index_check_quick_edit_without_permission
-    role = Role.find(2)
-    role.permissions << :veiw_issues
-    role.permissions << :view_agile_queries
-    role.permissions.delete(:edit_issues)
-    role.save
-    @request.session[:user_id] = 3
-
-    compatible_request :get, :index, :project_id => @project_1
-    issues = Issue.where(:project_id => [@project_1], :status_id => IssueStatus.where(:is_closed => false))
-    assert_response :success
-    assert_select '.issue-card', agile_issues_in_list.count
-    assert_select '.issue-card .quick-edit-card a', :count => 0
-  end
-
-  def test_last_comment_on_issue_cart
-    issue = @project_1.issues.open.first
-    text_comment = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in blandit ex. Donec vitae urna quis tortor tempor mollis.'
-    comment = Journal.new(:notes => text_comment, :user_id => 1)
-    issue.journals << comment
-    params = agile_query_params.merge(:c => ['project', 'last_comment'], :group_by => 'parent')
-    compatible_request :get, :index, params
-    assert_response :success
-    assert_select 'span.last-comment', :text => text_comment.truncate(100)
-    compatible_request :put, :update, :issue => { :status_id => 2 }, :id => issue.id
-    assert_select 'span.last-comment', :text => text_comment.truncate(100)
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_show_sp_value_on_issue_cart
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      issues = @project_1.issues.open.first(3)
-      issues.each do |issue|
-        issue.agile_data.story_points = issue.id * 10
-        issue.save
-      end
-      params = agile_query_params.merge(:c => ['story_points'])
-      compatible_request :get, :index, params
-      IssueStatus.where(:id => @project_1.issues.open.joins(:status).pluck(:status_id).uniq).each do |status|
-        sp_sum = @project_1.issues.eager_load(:agile_data).where(:status_id => status.id).sum("#{AgileData.table_name}.story_points")
-        next unless sp_sum.to_i > 0
-        assert_select "th[data-column-id='#{status.id}'] span.hours", :text =>"#{sp_sum}sp"
-      end
-      issues.each do |issue|
-        assert_select ".issue-card[data-id='#{issue.id}'] span.fields p.issue-id span.hours", :text =>"(#{issue.story_points}sp)"
-      end
-      # check story_points in available_columns for query
-      assert_select 'input[value="story_points"]'
-    end
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_show_sp_with_estimated_hours_on_issue_cart
-    Setting.stubs(:display_subprojects_issues?).returns(false)
-
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      issues = @project_1.issues.open.first(3)
-      issues.each do |issue|
-        issue.agile_data.story_points = issue.id * 10
-        issue.estimated_hours = issue.id * 2
-        issue.save
-      end
-
-      compatible_request :get, :index, agile_query_params.merge(c: %w(story_points estimated_hours))
-
-      # Should show estimated time and story points in the board header
-      IssueStatus.where(id: @project_1.issues.open.joins(:status).pluck(:status_id).uniq).each do |status|
-        column_issues = @project_1.issues.eager_load(:agile_data).where(status_id: status.id)
-        sp_sum = column_issues.to_a.sum { |issue| issue.story_points.to_i }
-        estimated_hours = column_issues.to_a.sum { |issue| issue.estimated_hours.to_i }
-        values = []
-        values.push('%.2fh' % estimated_hours) if estimated_hours.to_i > 0
-        values.push("#{sp_sum}sp") if sp_sum.to_i > 0
-        if values.present?
-          assert_select "th[data-column-id='#{status.id}'] span.hours", text: values.join('/')
-        end
-      end
-
-      # Should show estimated time and story points on a card
-      issues.each do |issue|
-        assert_select ".issue-card[data-id='#{issue.id}'] span.fields p.issue-id span.hours",
-                      text: "(#{"%.2fh" % issue.estimated_hours.to_f}/#{issue.story_points}sp)"
-      end
-    end
-  end
-
-  def test_index_for_estimated_values_by_default
-    prepare_issues_with_points_and_estimated_hours
-    compatible_request :get, :index
-    should_not_show_estimated_hours
-    should_not_show_story_points
-  end
-
-  def test_index_for_estimated_values_with_enabled_options
-    prepare_issues_with_points_and_estimated_hours
-    compatible_request :get, :index, agile_query_params.merge(c: %w(story_points estimated_hours))
-    should_show_estimated_hours
-    should_not_show_story_points
-  end
-
-  def test_index_for_estimated_values_with_estimate_units
-    with_agile_settings 'estimate_units' => RedmineAgile::ESTIMATE_STORY_POINTS do
-      prepare_issues_with_points_and_estimated_hours
-      compatible_request :get, :index
-      should_not_show_estimated_hours
-      should_not_show_story_points
-    end
-  end
-
-  def test_index_for_estimated_values_with_estimate_units_and_enabled_options
-    with_agile_settings 'estimate_units' => RedmineAgile::ESTIMATE_STORY_POINTS, 'story_points_on' => '1' do
-      prepare_issues_with_points_and_estimated_hours
-      compatible_request :get, :index, agile_query_params.merge(c: %w(story_points estimated_hours))
-      should_show_estimated_hours
-      should_show_story_points
-    end
-  end
-
-  def test_index_for_estimated_values_with_story_points_off
-    with_agile_settings 'story_points_on' => '0' do
-      prepare_issues_with_points_and_estimated_hours
-      compatible_request :get, :index
-      should_not_show_estimated_hours
-      should_not_show_story_points
-    end
-  ensure
-    Setting.plugin_redmine_agile.delete('story_points_on')
-  end
-
-  def test_index_for_estimated_values_with_story_points_off_and_enabled_options
-    with_agile_settings 'story_points_on' => '0' do
-      prepare_issues_with_points_and_estimated_hours
-      compatible_request :get, :index, agile_query_params.merge(c: %w(story_points estimated_hours))
-      should_show_estimated_hours
-      should_not_show_story_points
-    end
-  ensure
-    Setting.plugin_redmine_agile.delete('story_points_on')
-  end
-
-  def test_index_for_estimated_values_with_story_points_on
-    with_agile_settings 'story_points_on' => '1' do
-      prepare_issues_with_points_and_estimated_hours
-      compatible_request :get, :index
-      should_not_show_estimated_hours
-      should_not_show_story_points
-    end
-  ensure
-    Setting.plugin_redmine_agile.delete('story_points_on')
-  end
-
-  def test_index_for_estimated_values_with_story_points_on_and_enabled_options
-    with_agile_settings 'story_points_on' => '1' do
-      prepare_issues_with_points_and_estimated_hours
-      compatible_request :get, :index, agile_query_params.merge(c: %w(story_points estimated_hours))
-      should_show_estimated_hours
-      should_show_story_points
-    end
-  ensure
-    Setting.plugin_redmine_agile.delete('story_points_on')
-  end
-
-  def test_quick_add_comment_button
-    with_agile_settings 'allow_inline_comments' => 1 do
-      compatible_request :get, :index, agile_query_params
-      assert_response :success
-      assert_select '.quick-edit-card img[alt="Comment"]'
-    end
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_quick_add_comment_form
-    compatible_request :get, :inline_comment, :id => @project_1.issues.open.first
-    assert_response :success
-    assert_select 'textarea'
-    assert_select 'button'
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_quick_add_comment_update
-    issue = @project_1.issues.open.first
-    compatible_request :put, :update, :issue => { :notes => 'new comment!!!' }, :id => issue
-    assert_response :success
-    assert_select '.last_comment', :text => 'new comment!!!'
-  end if Redmine::VERSION.to_s > '2.4'
-
-  
-  def test_card_for_new_issue
-  with_agile_settings "allow_create_card" => 1 do
-  statuses = IssueStatus.all
-  compatible_request :get, :index, {
-  "set_filter"=>"1", :project_id => @project_1, :f_status => statuses.map(&:id) }
-  assert_select '.add-issue input.new-card__input', 0
-  end
-  end if Redmine::VERSION.to_s > '2.4'
-  
-
-  def test_on_auto_assign_on_move
-    with_agile_settings 'auto_assign_on_move' => '1' do
-      @request.session[:user_id] = 2
-      issue = Issue.find(1)
-
-      user = issue.project.users.first
-      @request.session[:user_id] = user.id
-
-      assert_nil issue.assigned_to
-      compatible_request :put, :update, :issue => { :status_id => 2 }, :id => 1
-      issue.reload
-      assert_response :success
-      assert_equal 2, issue.status_id
-      assert_equal user, issue.assigned_to
-    end
-  end
-
-  def test_off_auto_assign_on_move
-    with_agile_settings 'auto_assign_on_move' => '0' do
-      issue = Issue.find(1)
-
-      user = issue.project.users.first
-      @request.session[:user_id] = user.id
-
-      assert_nil issue.assigned_to
-      compatible_request :put, :update, :issue => { :status_id => 2 }, :id => 1
-      issue.reload
-      assert_response :success
-      assert_equal 2, issue.status_id
-      assert_nil issue.assigned_to
-    end
-  end
-
-  def test_off_auto_assign_on_move_by_sorting
-    with_agile_settings 'auto_assign_on_move' => '1' do
-      @request.session[:user_id] = 2
-      issue = Issue.find(1)
-
-      user = issue.project.users.first
-      @request.session[:user_id] = user.id
-
-      assert_nil issue.assigned_to
-      compatible_request :put, :update, :issue => { :status_id => issue.status_id }, :id => 1
-      issue.reload
-      assert_response :success
-      assert_nil issue.assigned_to
-    end
-  end
-
-  def test_option_for_select_current_version
-    @request.session[:user_id] = 1
-    compatible_request :get, :index, :project_id => @project_1
-    assert_response :success
-    assert_match 'current_version', response.body
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_filter_by_current_version
-    @request.session[:user_id] = 1
-    compatible_request :get, :index, :project_id => @project_1, 'v' => { 'fixed_version_id' => ['current_version'] },
-                                                                'set_filter' => '1', 'f' => ['fixed_version_id'],
-                                                                'op' => { 'fixed_version_id' => '=' }
-    assert_response :success
-    current_version = @project_1.shared_versions.order(:effective_date).first
-    issue = @project_1.issues.first
-    issue.fixed_version = current_version
-    issue.save
-    assert agile_issues_in_list.all? { |i| i.fixed_version == current_version }
-  end if Redmine::VERSION.to_s > '2.4'
-
-  def test_filter_by_current_version_closed
-    @request.session[:user_id] = 1
-    current_version = @project_1.shared_versions.order(:effective_date).first
-    current_version.status = 'closed'
-    current_version.save
-
-    compatible_request :get, :index, :project_id => @project_1, 'v' => { 'fixed_version_id' => ['current_version'] },
-                                                                'set_filter' => '1', 'f' => ['fixed_version_id'],
-                                                                'op' => { 'fixed_version_id' => '=' }
-    assert_response :success
-    issue = @project_1.issues.first
-    issue.fixed_version = current_version
-    issue.save
-    assert agile_issues_in_list.all?{ |i| i.fixed_version != current_version }
-    # check set filter for current version
-    assert_match 'addFilter("fixed_version_id", "=", ["current_version"])', response.body
-  end if Redmine::VERSION.to_s > '2.4'
-
-  private
-
-  def agile_query_params
-    { :set_filter => '1', :f => ['status_id', ''], :op => { :status_id => 'o' }, :c => ['tracker', 'assigned_to'], :project_id => 'ecookbook' }
-  end
-
-  def create_issue_relation
-    IssueRelation.delete_all
-    IssueRelation.create!(:relation_type => 'relates', :issue_from => Issue.find(1), :issue_to => Issue.find(7))
-    IssueRelation.create!(:relation_type => 'relates', :issue_from => Issue.find(8), :issue_to => Issue.find(1))
-    IssueRelation.create!(:relation_type => 'blocks', :issue_from => Issue.find(1), :issue_to => Issue.find(11))
-    IssueRelation.create!(:relation_type => 'blocks', :issue_from => Issue.find(12), :issue_to => Issue.find(2))
-  end
-
-  def issue_with_checklist
-    issue1 = Issue.find(1)
-    chk1 = issue1.checklists.create(:subject => 'TEST1', :position => 1)
-    chk2 = issue1.checklists.create(:subject => 'TEST2', :position => 2)
-    issue1
-  end if RedmineAgile.use_checklist?
-
-  def prepare_issues_with_points_and_estimated_hours
-    issues = @project_1.issues.open.first(3)
-    issues.each do |issue|
-      issue.agile_data.story_points = issue.id * 10
-      issue.estimated_hours = issue.id * 2
-      issue.save
-    end
-  end
-
-  def should_show_estimated_hours
-    assert_select "th span.hours", text: /.+h/
-    assert_select ".issue-card span.fields p.issue-id span.hours", text: /.+h/
-  end
-
-  def should_not_show_estimated_hours
-    assert_select "th span.hours", { count: 0, text: /.+h/ }
-    assert_select ".issue-card span.fields p.issue-id span.hours", { count: 0, text: /.+h/ }
-  end
-
-  def should_show_story_points
-    assert_select "th span.hours", text: /.+sp/
-    assert_select ".issue-card span.fields p.issue-id span.hours", text: /.+sp/
-  end
-
-  def should_not_show_story_points
-    assert_select "th span.hours", { count: 0, text: /.+sp/ }
-    assert_select ".issue-card span.fields p.issue-id span.hours", { count: 0, text: /.+sp/ }
-  end
-end
diff --git a/plugins/redmine_agile/test/functional/agile_charts_controller_test.rb b/plugins/redmine_agile/test/functional/agile_charts_controller_test.rb
deleted file mode 100644
index 0752633..0000000
--- a/plugins/redmine_agile/test/functional/agile_charts_controller_test.rb
+++ /dev/null
@@ -1,195 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AgileChartsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  def setup
-    @request.session[:user_id] = 1
-    @project = Project.find(1)
-    @issue = @project.issues.first
-
-    EnabledModule.create(project: @project, name: 'agile')
-
-    @charts = RedmineAgile::Charts::AGILE_CHARTS.keys
-    @charts_with_units = RedmineAgile::Charts::CHARTS_WITH_UNITS
-  end
-
-  def test_get_show
-    should_get_show
-    should_get_show project_id: @project.identifier
-  end
-
-  def test_get_show_with_period
-    should_get_show({ f: ['issue_id', ''], op: { 'issue_id' => '*' } })
-    should_get_show({ f: ['issue_id', ''], op: { 'issue_id' => '*' }, project_id: @project.identifier })
-  end
-
-  def test_charts_by_default_params
-    @charts.each { |chart| check_chart(chart: chart, project_id: @project.identifier) }
-  end
-
-  def test_charts_with_chart_unit
-    @charts_with_units.each do |chart|
-      RedmineAgile::Charts::CHART_UNITS.each do |chart_unit, label|
-        check_chart chart: chart, project_id: @project.identifier, chart_unit: chart_unit
-      end
-    end
-  end
-
-  def test_charts_by_different_time_intervals
-    @charts.each do |chart|
-      RedmineAgile::AgileChart::TIME_INTERVALS.each do |interval|
-        check_chart chart: chart, project_id: @project.identifier, interval_size: interval
-      end
-    end
-  end
-
-  def test_charts_by_different_periods_and_time_intervals
-    @charts.each do |chart|
-      RedmineAgile::AgileChart::TIME_INTERVALS.each do |interval|
-        params = {
-          chart: chart,
-          project_id: @project.identifier,
-          interval_size: interval,
-          set_filter: 1,
-          f: ['chart_period']
-        }
-
-        check_chart params.merge(op: { chart_period: '=' }, v: { chart_period: ['2014-01-01'] })
-        check_chart params.merge(op: { chart_period: '>=' }, v: { chart_period: ['2014-01-01'] })
-        check_chart params.merge(op: { chart_period: '<=' }, v: { chart_period: ['2019-01-01'] })
-        check_chart params.merge(op: { chart_period: '><' }, v: { chart_period: ['2014-01-01', '2018-12-31'] })
-        check_chart params.merge(op: { chart_period: '>t-' }, v: { chart_period: [99] })
-        check_chart params.merge(op: { chart_period: '<t-' }, v: { chart_period: [99] })
-        check_chart params.merge(op: { chart_period: '><t-' }, v: { chart_period: [99] })
-        check_chart params.merge(op: { chart_period: 't-' }, v: { chart_period: [99] })
-        check_chart params.merge(op: { chart_period: 't' })
-        check_chart params.merge(op: { chart_period: 'ld' })
-        check_chart params.merge(op: { chart_period: 'w' })
-        check_chart params.merge(op: { chart_period: 'lw' })
-        check_chart params.merge(op: { chart_period: 'l2w' })
-        check_chart params.merge(op: { chart_period: 'm' })
-        check_chart params.merge(op: { chart_period: 'lm' })
-        check_chart params.merge(op: { chart_period: 'y' })
-        check_chart params.merge(op: { chart_period: '!*' })
-        check_chart params.merge(op: { chart_period: '*' })
-      end
-    end
-  end
-
-  def test_render_charts
-    @charts.each do |chart|
-      should_get_render_chart chart: chart, chart_unit: 'issues'
-    end
-  end
-
-  def test_charts_with_version
-    @charts.each do |chart|
-      should_get_render_chart chart: chart, version_id: 2
-      should_get_render_chart chart: chart, version_id: 2, project_id: @project.identifier
-    end
-  end
-
-  def test_charts_with_version_and_chart_unit
-    @charts_with_units.each do |chart|
-      RedmineAgile::Charts::CHART_UNITS.each do |chart_unit, label|
-        should_get_render_chart chart: chart, version_id: 2, chart_unit: chart_unit
-      end
-    end
-  end
-
-  def test_issues_burndown_chart_when_first_issue_later_then_due_date
-    new_version = Version.create!(name: 'Some new vesion', effective_date: (Date.today - 10.days), project_id: @project.id)
-    issue = Issue.create!(
-      project_id: @project.id,
-      tracker_id: 1,
-      subject: 'test_issues_burndown_chart_when_first_issue_later_then_due_date',
-      author_id: 2,
-      start_date: Date.today
-    )
-    new_version.fixed_issues << issue.reload
-
-    should_get_render_chart chart: RedmineAgile::Charts::BURNDOWN_CHART, project_id: @project.identifier, version_id: new_version.id
-  end
-
-  def test_get_show_chart_with_open_target_version
-    current_version = @issue.fixed_version
-    @issue.update(fixed_version: Version.open.first)
-
-    should_get_render_chart project_id: @project.identifier, chart: 'burndown_chart',
-                                                             f: ['version_status'],
-                                                             op: { 'version_status' => '=' },
-                                                             v: { 'version_status' => ['open'] }
-    ensure
-    @issue.update(fixed_version: current_version)
-  end
-
-  private
-
-  def should_get_show(parameters = {})
-    compatible_request :get, :show, parameters
-    assert_response :success
-    assert_select 'canvas#agile-chart', 1
-  end
-
-  def should_get_render_chart(parameters = {})
-    compatible_xhr_request :get, :render_chart, parameters
-    assert_response :success
-    assert_match 'application/json', response.content_type
-
-    json = ActiveSupport::JSON.decode(response.body)
-    assert_kind_of Hash, json
-    assert_equal parameters[:chart], json['chart']
-    if parameters[:chart_unit]
-      assert_equal parameters[:chart_unit], json['chart_unit']
-    end
-  end
-
-  def check_chart(parameters = {})
-    should_get_show parameters
-    should_get_render_chart parameters.slice(:chart, :project_id)
-  end
-end
diff --git a/plugins/redmine_agile/test/functional/agile_journal_details_controller_test.rb b/plugins/redmine_agile/test/functional/agile_journal_details_controller_test.rb
deleted file mode 100644
index 5d3db81..0000000
--- a/plugins/redmine_agile/test/functional/agile_journal_details_controller_test.rb
+++ /dev/null
@@ -1,95 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AgileJournalDetailsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :issue_relations,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-  fixtures :email_addresses if Redmine::VERSION.to_s > '3.0'
-
-  def setup
-    @project = Project.find(1)
-    EnabledModule.create(:project => @project, :name => 'agile')
-    @request.session[:user_id] = 1
-  end
-
-  def test_get_done_ratio
-    compatible_request :get, :done_ratio, issue_id: 1
-    assert_response :success
-    assert_match /% Done/, @response.body
-    assert_match /Bug #1/, @response.body
-    assert_select 'table.progress', 2
-  end
-
-  def test_get_status
-    compatible_request :get, :status, issue_id: 1
-    assert_response :success
-    assert_match /Issue statuses/, @response.body
-    assert_match /Bug #1/, @response.body
-    assert_select '.list td.name', 2
-  end
-
-  def test_get_status_with_group
-    compatible_request :get, :status, issue_id: 1, group_by: 'status'
-    assert_response :success
-    assert_match /Issue statuses/, @response.body
-    assert_match /Bug #1/, @response.body
-    assert_select 'tr.group'
-  end
-
-  def test_get_status_csv
-    compatible_request :get, :status, issue_id: 1, format: :csv
-    assert_response :success
-    assert_match 'text/csv', @response.content_type
-    assert_match /#,Created/, @response.body
-  end
-
-  def test_get_done_assignee
-    compatible_request :get, :assignee, issue_id: 1
-    assert_response :success
-    assert_match /Assignee/, @response.body
-    assert_match /Bug #1/, @response.body
-    assert_select '.list td a.user', 1
-  end
-end
diff --git a/plugins/redmine_agile/test/functional/issues_controller_test.rb b/plugins/redmine_agile/test/functional/issues_controller_test.rb
deleted file mode 100644
index f124644..0000000
--- a/plugins/redmine_agile/test/functional/issues_controller_test.rb
+++ /dev/null
@@ -1,125 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class IssuesControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  def setup
-    @project_1 = Project.find(1)
-    @project_2 = Project.find(5)
-    EnabledModule.create(:project => @project_1, :name => 'agile')
-    EnabledModule.create(:project => @project_2, :name => 'agile')
-    @request.session[:user_id] = 1
-  end
-
-  def test_new_issue_with_sp_value
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      compatible_request :get, :new, :project_id => 1
-      assert_response :success
-      assert_select 'input#issue_agile_data_attributes_story_points'
-    end
-  end
-
-  def test_new_issue_without_sp_value
-    with_agile_settings 'estimate_units' => 'hours' do
-      compatible_request :get, :new, :project_id => 1
-      assert_response :success
-      assert_select 'input#issue_agile_data_attributes_story_points', :count => 0
-    end
-  end
-
-  def test_create_issue_with_sp_value
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      assert_difference 'Issue.count' do
-        compatible_request :post, :create, :project_id => 1, :issue => {
-          :subject => 'issue with sp',
-          :tracker_id => 3,
-          :status_id => 1,
-          :priority_id => IssuePriority.first.id,
-          :agile_data_attributes => { :story_points => 50 }
-        }
-      end
-      issue = Issue.last
-      assert_equal 'issue with sp', issue.subject
-      assert_equal 50, issue.story_points
-    end
-  end
-
-  def test_post_issue_journal_story_points
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      compatible_request :put, :update, :id => 1, :issue => { :agile_data_attributes => { :story_points => 100 } }
-      issue = Issue.find(1)
-      assert_equal 100, issue.story_points
-      sp_history = JournalDetail.where(:property => 'attr', :prop_key => 'story_points', :journal_id => issue.journals).last
-      assert sp_history
-      assert_equal 100, sp_history.value.to_i
-    end
-  end
-
-  def test_show_issue_with_story_points
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      compatible_request :get, :show, :id => 1
-      assert_response :success
-      assert_select '#issue-form .attributes', :text => /Story points/, :count => 1
-    end
-  end
-
-  def test_show_issue_with_order_by_story_points
-    session[:issue_query] = { :project_id => Issue.find(1).project_id,
-                              :filters => { 'status_id' => { :operator => 'o', :values => [''] } },
-                              :group_by => '',
-                              :column_names => [:tracker, :status, :story_points],
-                              :totalable_names => [],
-                              :sort => [['story_points', 'asc'], ['id', 'desc']]
-                            }
-    with_agile_settings 'estimate_units' => 'story_points', 'story_points_on' => '1' do
-      compatible_request :get, :show, :id => 1
-      assert_response :success
-      assert_select '#issue-form .attributes', :text => /Story points/, :count => 1
-    end
-  ensure
-    session[:issue_query] = {}
-  end
-end
diff --git a/plugins/redmine_agile/test/functional/projects_controller_test.rb b/plugins/redmine_agile/test/functional/projects_controller_test.rb
deleted file mode 100644
index 67d3a32..0000000
--- a/plugins/redmine_agile/test/functional/projects_controller_test.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class ProjectsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles
-
-
-  def setup
-    @project_1 = Project.find(1)
-    @project_2 = Project.find(5)
-    EnabledModule.create(:project => @project_1, :name => 'agile')
-    EnabledModule.create(:project => @project_2, :name => 'agile')
-    @request.session[:user_id] = 1
-  end
-end
diff --git a/plugins/redmine_agile/test/functional/users_controller_test.rb b/plugins/redmine_agile/test/functional/users_controller_test.rb
deleted file mode 100644
index 71aa90c..0000000
--- a/plugins/redmine_agile/test/functional/users_controller_test.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class UsersControllerTest < ActionController::TestCase
-  fixtures :users,
-           :roles,
-           :members,
-           :member_roles
-
-  fixtures :email_addresses if Redmine::VERSION.to_s > '3.0'
-
-  def setup
-    @user = User.find(1)
-    @request.session[:user_id] = @user.id
-  end
-end
diff --git a/plugins/redmine_agile/test/integration/api_test/agile_data_test.rb b/plugins/redmine_agile/test/integration/api_test/agile_data_test.rb
deleted file mode 100644
index bae9bcd..0000000
--- a/plugins/redmine_agile/test/integration/api_test/agile_data_test.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
-
-class Redmine::ApiTest::AgileDataTest < ActiveRecord::VERSION::MAJOR >= 4 ? Redmine::ApiTest::Base : ActionController::IntegrationTest
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  RedmineAgile::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_agile).directory + '/test/fixtures/', [:agile_data])
-
-  def setup
-    Setting.rest_api_enabled = '1'
-    EnabledModule.create(:project => Project.find(1), :name => 'agile')
-    RedmineAgile::TestCase.prepare
-  end
-
-  test 'GET agile_data' do
-    if ActiveRecord::VERSION::MAJOR < 4
-      Redmine::ApiTest::Base.should_allow_api_authentication(:get, '/issues/1/agile_data.xml')
-    end
-    compatible_api_request :get, '/issues/1/agile_data.xml', {}, credentials('admin')
-
-    assert_match 'application/xml', @response.content_type
-    assert_equal '200', @response.code
-  end
-
-  test 'GET missied id' do
-    missied_id = Issue.order(:id).last.id
-    if ActiveRecord::VERSION::MAJOR < 4
-      Redmine::ApiTest::Base.should_allow_api_authentication(:get, "/issues/#{missied_id}/agile_data.xml")
-    end
-    compatible_api_request :get, "/issues/#{missied_id}/agile_data.xml", {}, credentials('admin')
-
-    assert_match 'application/xml', @response.content_type
-    assert ['401', '403'].include?(@response.code)
-  end
-end
diff --git a/plugins/redmine_agile/test/integration/common_views_test.rb b/plugins/redmine_agile/test/integration/common_views_test.rb
deleted file mode 100644
index eb3936c..0000000
--- a/plugins/redmine_agile/test/integration/common_views_test.rb
+++ /dev/null
@@ -1,87 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-require File.expand_path(File.dirname(__FILE__) + '/../../../../test/test_helper')
-
-class RedmineAgile::CommonViewsTest < ActionDispatch::IntegrationTest
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  def setup
-    @project_1 = Project.find(1)
-    EnabledModule.create(:project => @project_1, :name => 'agile')
-    EnabledModule.create(:project => @project_1, :name => 'gantt')
-    EnabledModule.create(:project => @project_1, :name => 'calendar')
-  end
-
-  test 'View issues' do
-    log_user('admin', 'admin')
-    compatible_request :get, '/issues'
-    assert_response :success
-  end
-
-  test 'View Gantt chart' do
-    log_user('admin', 'admin')
-    compatible_request :get, '/projects/ecookbook/issues/gantt'
-    assert_response :success
-  end
-
-  test 'View Calendar' do
-    log_user('admin', 'admin')
-    compatible_request :get, '/projects/ecookbook/issues/calendar'
-    assert_response :success
-  end
-
-  test 'View agile settings' do
-    log_user('admin', 'admin')
-    compatible_request :get, '/settings/plugin/redmine_agile'
-    assert_response :success
-  end
-
-  test 'View version' do
-    log_user('admin', 'admin')
-    compatible_request :get, '/versions/2'
-    assert_response :success
-  end
-
-end
diff --git a/plugins/redmine_agile/test/test_helper.rb b/plugins/redmine_agile/test/test_helper.rb
deleted file mode 100644
index 73e3b83..0000000
--- a/plugins/redmine_agile/test/test_helper.rb
+++ /dev/null
@@ -1,368 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-# Load the Redmine helper
-require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper')
-
-def with_agile_settings(options, &block)
-  saved_settings = options.keys.inject({}) do |h, k|
-    h[k] = case Setting.plugin_redmine_agile[k]
-      when Symbol, false, true, nil
-        Setting.plugin_redmine_agile[k]
-      else
-        Setting.plugin_redmine_agile[k].dup
-      end
-    h
-  end
-  options.each {|k, v| Setting.plugin_redmine_agile[k] = v}
-  yield
-ensure
-  saved_settings.each {|k, v| Setting.plugin_redmine_agile[k] = v} if saved_settings
-end
-
-def log_user(login, password)
-  User.anonymous
-  compatible_request :get, '/logout'
-  compatible_request :get, '/login'
-  assert_nil session[:user_id]
-  assert_response :success
-  compatible_request :post, '/login', :username => login, :password => password
-  assert_equal login, User.find(session[:user_id]).login
-end
-
-def wait_for_ajax
-  counter = 0
-  while page.execute_script('return $.active').to_i > 0
-    counter += 1
-    sleep(0.1)
-    raise 'AJAX request took longer than 5 seconds.' if counter >= 50
-  end
-end
-
-def credentials(user, password=nil)
-  {'HTTP_AUTHORIZATION' => ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)}
-end
-
-module RedmineAgile
-  module TestHelper
-    def compatible_request(type, action, parameters = {})
-      return send(type, action, parameters) if Redmine::VERSION.to_s < '3.5' && Redmine::VERSION::BRANCH == 'stable'
-      send(type, action, :params => parameters)
-    end
-
-    def compatible_xhr_request(type, action, parameters = {})
-      return xhr type, action, parameters if Redmine::VERSION.to_s < '3.5' && Redmine::VERSION::BRANCH == 'stable'
-      send(type, action, :params => parameters, :xhr => true)
-    end
-
-    def compatible_api_request(type, action, parameters = {}, headers = {})
-      return send(type, action, :params => parameters, :headers => headers) if Rails.version >= '5.1'
-      send(type, action, parameters, headers)
-    end
-
-    def agile_issues_in_list
-      ids = css_select('p.issue-id input').map { |tag| tag.to_s.to_s[/.*?value=\"(\d+)".*?/, 1] }.map(&:to_i)
-      Issue.where(:id => ids).sort_by { |issue| ids.index(issue.id) }
-    end
-  end
-
-  module Demo
-    # create_issue(10.days.ago, 4.days.ago, version)
-    # 100.times{|i| create_issue(100.days.ago + i, 90.days.ago + i, version)}
-    class << self
-      def create_issue(from, to, options={})
-        version = options[:version] || Version.last
-        tracker = options[:tracker] || version.project.trackers.select{|t| t.issue_statuses.any?}.sample
-        return false unless tracker
-        status = options[:status] || tracker.issue_statuses.sample
-        issue = Issue.create(:subject => "New issue #{rand(1000)}",
-                          :fixed_version => version,
-                          :project => version.project,
-                          :tracker => tracker,
-                          :start_date => from,
-                          :created_on => from,
-                          :updated_on => to,
-                          :due_date => to,
-                          :closed_on => (status.is_closed? ? to : nil),
-                          :status => status,
-                          :author => version.project.members.map(&:user).flatten.sample)
-      end
-
-      def change_issue_done_ratio(issue, change_date, value)
-        # journal = issue.init_journal(User.current)
-        issue.done_ratio = value
-        issue.save
-        issue.update(:updated_on => change_date)
-        Journal.last.update(:created_on => change_date)
-      end
-
-      def close_issue(issue, closed_on)
-        journal = issue.init_journal(User.current)
-        done_status = IssueStatus.where(:name => "Closed", :is_closed => true).first
-        in_status = IssueStatus.where(:name => "In progress", :is_closed => false)
-        days_count = (issue.due_date - issue.created_on).to_i
-        change_date = issue.created_on
-        change_date = change_date + rand((issue.due_date - days_count).to_i)
-        issue.update(:status_id => in_status.id, :updated_on => change_date)
-        journal.update(:created_on => change_date)
-        change_date = change_date + rand((issue.due_date - days_count).to_i)
-        issue.update(:status_id => done_status.id, :updated_on => change_date)
-        journal.update(:created_on => change_date)
-        issue
-      end
-
-      def create_version_issue(from, to, version, done_ratio=[])
-        to = from + 1 if to < from
-        issue = create_issue(from, to, :version => version, :status => IssueStatus.where(:name => "New", :is_closed => false).first)
-        days_count = (to - from).to_i
-        if done_ratio.empty?
-          change_issue_done_ratio(issue, from + rand(days_count), rand(100))
-          change_issue_done_ratio(issue.reload, to.to_time - 2.hours , 100)
-        else
-          change_date = from
-          done_ratio.each do |ratio|
-            change_date = change_date + rand((to - change_date).to_i)
-            change_issue_done_ratio(issue, change_date, ratio)
-          end
-        end
-      end
-
-      # create_version_issue("2012-03-10".to_date, "2012-03-14".to_date, version)
-      # create_version_issue("2012-03-10".to_date, "2012-03-14".to_date, version, done_ratio=[30, 100])
-
-    end
-  end
-
-  def self.create_issues
-  [ # BackLog
-    {
-    :project_id => 2,
-    :priority_id => 1,
-    :subject => "Issue 100",
-    :id => 100,
-    :fixed_version_id => 7,
-    :category_id => 1,
-    :description => "Unable to print recipes",
-    :tracker_id => 1,
-    :assigned_to_id => 1,
-    :author_id => 1,
-    :status_id => 4,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 3,
-    :agile_data_attributes => { :story_points => 10 }
-    },
-    {
-    :project_id => 2,
-    :priority_id => 1,
-    :subject => "Issue 101",
-    :id => 101,
-    :fixed_version_id => 7,
-    :category_id => 3,
-    :description => "Unable to print recipes",
-    :tracker_id => 2,
-    :assigned_to_id => 3,
-    :author_id => 3,
-    :status_id => 3,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 1,
-    },
-    {
-    :project_id => 2,
-    :priority_id => 3,
-    :subject => "Issue 102",
-    :id => 102,
-    :fixed_version_id => 7,
-    :category_id => 1,
-    :description => "Unable to print recipes",
-    :tracker_id => 3,
-    :assigned_to_id => 2,
-    :author_id => 3,
-    :status_id => 2,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 12
-    },
-    {
-    :project_id => 2,
-    :priority_id => 3,
-    :subject => "Issue 103",
-    :id => 103,
-    :fixed_version_id => 7,
-    :category_id => 1,
-    :description => "Unable to print recipes",
-    :tracker_id => 1,
-    :assigned_to_id => 2,
-    :author_id => 1,
-    :status_id => 1,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 55,
-    },
-    # Current Version
-    {
-    :project_id => 2,
-    :priority_id => 2,
-    :subject => "Issue 104",
-    :id => 104,
-    :fixed_version_id => 5,
-    :category_id => 3,
-    :description => "Unable to print recipes",
-    :tracker_id => 2,
-    :assigned_to_id => nil,
-    :author_id => 1,
-    :status_id => 4,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 3,
-    },
-    {
-    :project_id => 2,
-    :priority_id => 2,
-    :subject => "Issue 105",
-    :id => 105,
-    :fixed_version_id => 5,
-    :category_id => 3,
-    :description => "Unable to print recipes",
-    :tracker_id => 2,
-    :assigned_to_id => 2,
-    :author_id => 1,
-    :status_id => 5,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 4,
-    },
-    {
-    :project_id => 2,
-    :priority_id => 2,
-    :subject => "Issue 106",
-    :id => 106,
-    :fixed_version_id => 5,
-    :category_id => 3,
-    :description => "Unable to print recipes",
-    :tracker_id => 2,
-    :assigned_to_id => 2,
-    :author_id => 1,
-    :status_id => 5,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 8,
-    },
-    # No Version
-    {
-    :project_id => 2,
-    :priority_id => 2,
-    :subject => "Blaa",
-    :id => 107,
-    # fixed_version_id =>
-    :category_id => 3,
-    :description => "Unable to print recipes",
-    :tracker_id => 2,
-    :assigned_to_id => 2,
-    :author_id => 1,
-    :status_id => 4,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 3,
-    },
-    {
-    :project_id => 2,
-    :priority_id => 2,
-    :subject => "No Version Issue 108",
-    :id => 108,
-    # fixed_version_id =>
-    :category_id => 3,
-    :description => "No Version Issue 108",
-    :tracker_id => 2,
-    :assigned_to_id => 2,
-    :author_id => 1,
-    :status_id => 5,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 4
-    },
-    {
-    :project_id => 2,
-    :priority_id => 2,
-    :subject => "Blaaa",
-    :id => 109,
-    # fixed_version_id =>
-    :category_id => 3,
-    :description => "Unable to print recipes",
-    :tracker_id => 2,
-    :assigned_to_id => 2,
-    :author_id => 1,
-    :status_id => 5,
-    :start_date => 1.day.ago.to_date.to_s(:db),
-    :due_date => 10.day.from_now.to_date.to_s(:db),
-    :root_id => 1,
-    :lock_version => 3,
-    :estimated_hours => 8
-    }].each do |issue|
-      i = Issue.new(issue)
-      i.id = issue[:id]
-      i.save
-    end
-
-  end
-
-end
-
-class RedmineAgile::TestCase
-  def self.create_fixtures(fixtures_directory, table_names, class_names = {})
-    if ActiveRecord::VERSION::MAJOR >= 4
-      ActiveRecord::FixtureSet.create_fixtures(fixtures_directory, table_names, class_names = {})
-    else
-      ActiveRecord::Fixtures.create_fixtures(fixtures_directory, table_names, class_names = {})
-    end
-  end
-
-  def self.prepare
-    Role.find(1, 2, 3, 4).each do |r|
-      r.permissions << :manage_public_agile_queries
-      r.permissions << :add_agile_queries
-      r.permissions << :view_agile_queries
-      r.permissions << :agile_versions
-      r.save
-    end
-  end
-end
-
-include RedmineAgile::TestHelper
diff --git a/plugins/redmine_agile/test/ui/agile_board_ui_test.rb b/plugins/redmine_agile/test/ui/agile_board_ui_test.rb
deleted file mode 100644
index b27389f..0000000
--- a/plugins/redmine_agile/test/ui/agile_board_ui_test.rb
+++ /dev/null
@@ -1,99 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-if ENV["UI_TESTS"]
-
-  require File.expand_path('../../../../../test/ui/base', __FILE__)
-
-  class Redmine::UiTest::AgileBoardUiTest < Redmine::UiTest::Base
-    fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles,
-             :trackers, :projects_trackers, :enabled_modules, :issue_statuses, :issues,
-             :enumerations, :custom_fields, :custom_values, :custom_fields_trackers,
-             :watchers, :journals, :journal_details
-
-    def setup
-      project = Project.find(1)
-      EnabledModule.create(:project => project, :name => 'agile')
-      Issue.find_each do |issue|
-        issue.agile_data.position = issue.id
-        issue.agile_data.save!
-      end
-    end
-
-    def test_move_issue_to_resolved_column
-      log_user('admin', 'admin')
-      visit '/projects/ecookbook/agile/board'
-
-      first_issue = Issue.first
-      issue = first(:css, '.issue-card[data-id="1"]')
-      feedback_col = first(:css, '.issue-status-col[data-id="3"]')
-      assert_equal 'New', first_issue.status.name
-      issue.drag_to(feedback_col)
-      wait_for_ajax
-      assert_equal 'Resolved', first_issue.reload.status.name
-    end
-
-    def test_reorder_issue_on_board
-      log_user('admin', 'admin')
-      visit '/projects/ecookbook/agile/board'
-
-      first_issue = all(:css, '.issue-status-col[data-id="1"] .issue-card').first
-      last_issue = all(:css, '.issue-status-col[data-id="1"] .issue-card').last
-      issue = Issue.find(last_issue['data-id'].to_i)
-      assert_not_equal 0, issue.reload.agile_data.position
-      last_issue.drag_to(first_issue)
-      wait_for_ajax
-      assert_equal 0, issue.reload.agile_data.position
-    end
-
-    def test_assign_member_on_issue
-      log_user('admin', 'admin')
-      visit '/projects/ecookbook/agile/board'
-
-      first_issue = all(:css, '.issue-status-col[data-id="1"] .issue-card').first
-      last_user = all(:css, '.assignable-user').last
-      issue = Issue.find(first_issue['data-id'].to_i)
-      user = User.find(last_user['data-id'].to_i)
-      assert_nil issue.reload.assigned_to
-      last_user.drag_to(first_issue)
-      wait_for_ajax
-      assert_equal user, issue.reload.assigned_to
-    end
-
-    def test_add_comment_to_issue
-      with_agile_settings 'allow_inline_comments' => 1 do
-        log_user('admin', 'admin')
-        visit '/projects/ecookbook/agile/board'
-
-        first_issue = all(:css, '.issue-status-col[data-id="1"] .issue-card').first
-        issue = Issue.find(first_issue['data-id'].to_i)
-        page.driver.browser.mouse.move_to(first_issue.native)
-        all(:css, '.issue-status-col[data-id="1"] .issue-card .quick-edit-card a').first.click
-        wait_for_ajax
-        fill_in 'issue[notes]', :with => 'Test quick comment'
-        click_button('Submit')
-        wait_for_ajax
-        assert_equal 'Test quick comment', issue.journals.last.notes
-      end
-    end
-  end
-end
diff --git a/plugins/redmine_agile/test/unit/agile_charts_query_test.rb b/plugins/redmine_agile/test/unit/agile_charts_query_test.rb
deleted file mode 100644
index a9fde49..0000000
--- a/plugins/redmine_agile/test/unit/agile_charts_query_test.rb
+++ /dev/null
@@ -1,68 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AgileChartsQueryTest < ActiveSupport::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issue_statuses,
-           :issues,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  def setup
-    RedmineAgile.create_issues
-  end
-
-  def test_query_chart_period_statement_with_between
-    data = [
-      [[(Date.today - 5.days).to_s, (Date.today - 1.days).to_s], [(Date.today - 6.days).to_s, (Date.today - 1.days).to_s]],
-      [[(Date.today - 5.days).to_s, Date.today.to_s], [(Date.today - 6.days).to_s, Date.today.to_s]],
-      [[(Date.today - 5.days).to_s, (Date.today + 5.days).to_s], [(Date.today - 6.days).to_s, (Date.today + 5.days).to_s]],
-      [[Date.today.to_s, (Date.today + 5.days).to_s], [(Date.today - 1.days).to_s, (Date.today + 5.days).to_s]],
-      [['',''], [Date.today - 1.days, Date.today]]
-    ]
-
-    data.each do |values, result|
-      hash = { f: ['chart_period'], op: { 'chart_period' => '><' }, v: { 'chart_period' => values } }
-      query = AgileChartsQuery.new(:name => '_').build_from_params(hash)
-      assert_equal "issues.chart_period > '#{result[0]} 23:59:59.999999' AND issues.chart_period <= '#{result[1]} 23:59:59.999999'", query.send(:chart_period_statement)
-    end
-  end
-end
diff --git a/plugins/redmine_agile/test/unit/agile_data_test.rb b/plugins/redmine_agile/test/unit/agile_data_test.rb
deleted file mode 100644
index 13bf20a..0000000
--- a/plugins/redmine_agile/test/unit/agile_data_test.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AgileDataTest < ActiveSupport::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  # Replace this with your real tests.
-  def test_save_color
-    issue = Issue.find(1)
-    issue.agile_data.position = 1
-    assert issue.save
-    issue.reload
-    assert_equal 1, issue.agile_data.position
-  end
-
-  def test_delete_color
-    issue = Issue.find(1)
-    issue.agile_data.position = 1
-    assert issue.save
-    issue.reload
-    agile_data = issue.agile_data
-    assert issue.destroy
-    assert !AgileData.exists?(agile_data.id)
-  end
-end
diff --git a/plugins/redmine_agile/test/unit/charts/burndown_chart_test.rb b/plugins/redmine_agile/test/unit/charts/burndown_chart_test.rb
deleted file mode 100644
index 9275edd..0000000
--- a/plugins/redmine_agile/test/unit/charts/burndown_chart_test.rb
+++ /dev/null
@@ -1,171 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../../test_helper', __FILE__)
-
-class BurndownChartTest < ActiveSupport::TestCase
-  fixtures :users, :projects, :trackers, :enumerations, :issue_statuses, :issue_categories
-
-  def setup
-    @user = User.first
-    @tracker = Tracker.first
-    @project = Project.first_or_create(name: 'BurndownChartTest', identifier: 'burndowncharttest')
-    @project.trackers << @tracker unless @project.trackers.include?(@tracker)
-    @open_status = IssueStatus.where(is_closed: false).first
-    @closed_status = IssueStatus.where(is_closed: true).first
-  end
-
-  def test_returned_data
-    chart_data_cases.each do |test_case|
-      test_case_issues = test_case[:issues].call
-      test_case[:inerval_data].each do |case_interval|
-        puts "BurndownChartTest case - #{case_interval[:name]}"
-        chart_data = RedmineAgile::BurndownChart.data(test_case_issues, case_interval[:options])
-        assert_equal case_interval[:result], extract_values(chart_data)
-      end
-      test_case_issues.destroy_all
-    end
-  ensure
-    @project.issues.destroy_all
-    @project.destroy
-  end
-
-  private
-
-  def extract_values(chart_data)
-    { title: chart_data[:title], datasets: chart_data[:datasets].map { |data| data.slice(:type, :data, :label) } }
-  end
-
-  def chart_data_cases
-    data_cases = [
-      {
-        name: 'every month issues by issues',
-        issues: Proc.new { Issue.where(id: (1..12).map { |month| create_issue_data(month) }) },
-        title: 'Issues burndown',
-        internals: {
-          day: {
-            dates: { date_from: Date.parse('2019-01-01'), date_to: Date.parse('2019-01-01'), interval_size: 'day' },
-            result: [{ type: 'line', data: [12, 11], label: 'Actual'},
-                     { type: 'line', data: [12, 0], label: 'Ideal' }]
-          },
-          month: {
-            dates: { date_from: Date.parse('2019-03-01'), date_to: Date.parse('2019-03-31'), interval_size: 'week' },
-            result: [{ type: 'line', data: [10, 9, 9, 9, 9, 9], label: 'Actual' },
-                     { type: 'line', data: [10.0, 8.0, 6.0, 4.0, 2.0, 0], label: 'Ideal' }]
-          },
-          year: {
-            dates: { date_from: Date.parse('2019-01-01'), date_to: Date.parse('2019-12-31'), interval_size: 'month' },
-            result: [{ type: 'line', data: [12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 1], label: 'Actual' },
-                     { type: 'line', data: [12.0, 11.08, 10.15, 9.23, 8.31, 7.38, 6.46, 5.54, 4.62, 3.69, 2.77, 1.85, 0.92, 0], label: 'Ideal' }]
-          },
-          between: {
-            dates: { date_from: Date.parse('2019-07-01'), date_to: Date.parse('2019-12-31'), interval_size: 'month' },
-            result: [{ type: 'line', data: [6, 5, 4, 3, 2, 1, 1, 1], label: 'Actual' },
-                     { type: 'line', data: [6.0, 5.14, 4.29, 3.43, 2.57, 1.71, 0.86, 0], label: 'Ideal' }]
-          }
-        }
-      },
-      {
-        name: 'every month issues by SP',
-        issues: Proc.new { Issue.where(id: (1..12).map { |month| create_issue_data(month) }) },
-        title: 'Story points burndown',
-        internals: {
-          day: {
-            dates: { date_from: Date.parse('2018-12-31'), date_to: Date.parse('2019-01-01'), chart_unit: 'story_points', interval_size: 'day' },
-            result: [{ type: 'line', data: [234.0, 231.0, 231.0], label: 'Actual'},
-                     { type: 'line', data: [234.0, 117.0, 0], label: 'Ideal' }]
-          },
-          month: {
-            dates: { date_from: Date.parse('2019-03-01'), date_to: Date.parse('2019-03-31'), chart_unit: 'story_points', interval_size: 'week' },
-            result: [{ type: 'line', data: [216.0, 216.0, 216.0, 216.0, 216.0, 216.0], label: 'Actual' },
-                     { type: 'line', data: [216.0, 172.8, 129.6, 86.4, 43.2, 0], label: 'Ideal' }]
-          },
-          year: {
-            dates: { date_from: Date.parse('2019-01-01'), date_to: Date.parse('2019-12-31'), chart_unit: 'story_points', interval_size: 'month' },
-            result: [{ type: 'line', data: [225.0, 225.0, 216.0, 204.0, 189.0, 171.0, 150.0, 126.0, 99.0, 69.0, 36.0, 36.0, 36.0, 36.0], label: 'Actual' },
-                     { type: 'line', data: [225.0, 207.69, 190.38, 173.08, 155.77, 138.46, 121.15, 103.85, 86.54, 69.23, 51.92, 34.62, 17.31, 0], label: 'Ideal' }]
-          },
-          between: {
-            dates: { date_from: Date.parse('2019-07-01'), date_to: Date.parse('2019-12-31'), chart_unit: 'story_points', interval_size: 'month' },
-            result: [{ type: 'line', data: [126.0, 126.0, 99.0, 69.0, 36.0, 36.0, 36.0, 36.0], label: 'Actual' },
-                     { type: 'line', data: [126.0, 108.0, 90.0, 72.0, 54.0, 36.0, 18.0, 0], label: 'Ideal' }]
-          }
-        }
-      },
-      {
-        name: 'every month issues by Hours',
-        issues: Proc.new { Issue.where(id: (1..12).map { |month| create_issue_data(month) }) },
-        title: 'Hours burndown',
-        internals: {
-          day: {
-            dates: { date_from: Date.parse('2018-12-31'), date_to: Date.parse('2019-01-01'), chart_unit: 'hours', interval_size: 'day' },
-            result: [{ type: 'line', data: [156.0, 154.0, 154.0], label: 'Actual'},
-                     { type: 'line', data: [156.0, 78.0, 0], label: 'Ideal' }]
-          },
-          month: {
-            dates: { date_from: Date.parse('2019-03-01'), date_to: Date.parse('2019-03-31'), chart_unit: 'hours', interval_size: 'week' },
-            result: [{ type: 'line', data: [144.0, 144.0, 144.0, 144.0, 144.0, 144.0], label: 'Actual' },
-                     { type: 'line', data: [144.0, 115.2, 86.4, 57.6, 28.8, 0], label: 'Ideal' }]
-          },
-          year: {
-            dates: { date_from: Date.parse('2019-01-01'), date_to: Date.parse('2019-12-31'), chart_unit: 'hours', interval_size: 'month' },
-            result: [{ type: 'line', data: [150.0, 150.0, 144.0, 136.0, 126.0, 114.0, 100.0, 84.0, 66.0, 46.0, 24.0, 24.0, 24.0, 24.0], label: 'Actual' },
-                     { type: 'line', data: [150.0, 138.46, 126.92, 115.38, 103.85, 92.31, 80.77, 69.23, 57.69, 46.15, 34.62, 23.08, 11.54, 0], label: 'Ideal' }]
-          },
-          between: {
-            dates: { date_from: Date.parse('2019-07-01'), date_to: Date.parse('2019-12-31'), chart_unit: 'hours', interval_size: 'month' },
-            result: [{ type: 'line', data: [84.0, 84.0, 66.0, 46.0, 24.0, 24.0, 24.0, 24.0], label: 'Actual' },
-                     { type: 'line', data: [84.0, 72.0, 60.0, 48.0, 36.0, 24.0, 12.0, 0], label: 'Ideal' }]
-          }
-        }
-      }
-    ]
-
-    test_cases = data_cases.map do |test_case|
-      {
-        issues: test_case[:issues],
-        inerval_data: test_case[:internals].map do |interval_name, interval_data|
-                        {
-                          name: [test_case[:name], 'interval', interval_name].join(' '),
-                          options: { chart_unit: 'issues', interval_size: 'day' }.merge(interval_data[:dates]),
-                          result: { title: test_case[:title], datasets: interval_data[:result] }
-                        }
-                      end
-      }
-    end
-
-    test_cases
-  end
-
-  def create_issue_data(month)
-    mstring = month.to_s.rjust(2, '0')
-    issue = Issue.create!(tracker: @tracker,
-                          project: @project,
-                          author: @user,
-                          subject: "Issue ##{month}",
-                          status: month != 12 ? @closed_status : @open_status,
-                          estimated_hours: month * 2)
-    issue.reload
-    issue.create_agile_data(story_points: month * 3)
-    issue.update(created_on: "2019-01-01 09:00", closed_on: "2019-#{mstring}-01 11:00")
-    issue.id
-  end
-end
diff --git a/plugins/redmine_agile/test/unit/helpers/agile_boards_helper_test.rb b/plugins/redmine_agile/test/unit/helpers/agile_boards_helper_test.rb
deleted file mode 100644
index accb368..0000000
--- a/plugins/redmine_agile/test/unit/helpers/agile_boards_helper_test.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmin Agile (redmine_agile) plugin,
-# Agile board plugin for redmine
-#
-# Copyright (C) 2011-2021 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_agile is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_agile is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_agile.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../../test_helper', __FILE__)
-
-class AgileBoardsHelperTest < ActiveSupport::TestCase
-  fixtures :projects, :trackers, :issue_statuses, :issues, :issue_categories
-
-  include ApplicationHelper
-  include AgileBoardsHelper
-  include CustomFieldsHelper
-  include ActionView::Helpers::TagHelper
-  include Redmine::I18n
-  include ERB::Util
-
-  def setup
-    super
-    set_language_if_valid('en')
-    User.current = nil
-    EnabledModule.create(:project => Project.find(1), :name => 'issue_tracking') if RedmineAgile.use_checklist?
-  end
-
-  def test_time_in_state
-    hour10 = Time.now - 10.hours
-    assert_equal "#{I18n.t('datetime.distance_in_words.x_hours', :count => 10)}", time_in_state(hour10)
-    one_day = Time.now - 25.hours
-    assert_equal "#{I18n.t('datetime.distance_in_words.x_days', :count => 1)}", time_in_state(one_day)
-
-    assert_equal "", time_in_state(nil)
-    assert_equal "", time_in_state("string")
-  end
-
-  def test_show_checklist
-    issue = Issue.first
-    issue.checklists.create(subject: 'TEST1', position: 1)
-    User.current = User.find(1)
-
-    assert show_checklist?(issue), 'Not allowed show checklist for first issue'
-    assert !show_checklist?(Issue.find(3)), 'Allowed show checklist for issue without checklist'
-  end if RedmineAgile.use_checklist?
-end
diff --git a/plugins/redmine_checklists/Gemfile b/plugins/redmine_checklists/Gemfile
deleted file mode 100644
index ffc40a3..0000000
--- a/plugins/redmine_checklists/Gemfile
+++ /dev/null
@@ -1 +0,0 @@
-gem 'redmineup'
diff --git a/plugins/redmine_checklists/app/controllers/checklists_controller.rb b/plugins/redmine_checklists/app/controllers/checklists_controller.rb
deleted file mode 100644
index fc65f24..0000000
--- a/plugins/redmine_checklists/app/controllers/checklists_controller.rb
+++ /dev/null
@@ -1,122 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class ChecklistsController < ApplicationController
-
-  before_action :find_checklist_item, :except => [:index, :create]
-  before_action :find_issue_by_id, :only => [:index, :create]
-  before_action :authorize, :except => [:done]
-  helper :issues
-
-  accept_api_auth :index, :update, :destroy, :create, :show
-
-  def index
-    @checklists = @issue.checklists
-    respond_to do |format|
-      format.api
-    end
-  end
-
-  def show
-    respond_to do |format|
-      format.api
-    end
-  end
-
-  def destroy
-    @checklist_item.destroy
-    respond_to do |format|
-      format.api { render_api_ok }
-    end
-  end
-
-  def create
-    @checklist_item = Checklist.new
-    @checklist_item.safe_attributes = params[:checklist]
-    @checklist_item.issue = @issue
-    respond_to do |format|
-      format.api {
-        if @checklist_item.save
-          recalculate_issue_ratio(@checklist_item)
-          render :action => 'show', :status => :created, :location => checklist_url(@checklist_item)
-        else
-          render_validation_errors(@checklist_item)
-        end
-      }
-    end
-  end
-
-  def update
-    @checklist_item.safe_attributes = params[:checklist]
-    respond_to do |format|
-      format.api {
-        if with_issue_journal { @checklist_item.save }
-          recalculate_issue_ratio(@checklist_item)
-          render_api_ok
-        else
-          render_validation_errors(@checklist_item)
-        end
-      }
-    end
-  end
-
-  def done
-    (render_403; return false) unless User.current.allowed_to?(:done_checklists, @checklist_item.issue.project)
-
-    with_issue_journal do
-      @checklist_item.is_done = params[:is_done] == 'true'
-      if @checklist_item.save
-        recalculate_issue_ratio(@checklist_item)
-        true
-      end
-    end
-    respond_to do |format|
-      format.js
-      format.html { redirect_to :back }
-    end
-  end
-
-  private
-
-  def find_issue_by_id
-    @issue = Issue.find(params[:issue_id])
-    @project = @issue.project
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-
-  def find_checklist_item
-    @checklist_item = Checklist.find(params[:id])
-    @project = @checklist_item.issue.project
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-
-  def with_issue_journal(&block)
-    return unless yield
-    true
-  end
-
-  def recalculate_issue_ratio(checklist_item)
-    if (Setting.issue_done_ratio == 'issue_field') && RedmineChecklists.issue_done_ratio?
-      Checklist.recalc_issue_done_ratio(checklist_item.issue.id)
-      checklist_item.issue.reload
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/app/helpers/checklists_helper.rb b/plugins/redmine_checklists/app/helpers/checklists_helper.rb
deleted file mode 100644
index cb5dfe7..0000000
--- a/plugins/redmine_checklists/app/helpers/checklists_helper.rb
+++ /dev/null
@@ -1,58 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module ChecklistsHelper
-
-  def link_to_remove_checklist_fields(name, f, options={})
-    f.hidden_field(:_destroy) + link_to(name, "javascript:void(0)", options)
-  end
-
-  def new_object(f, association)
-    @new_object ||= f.object.class.reflect_on_association(association).klass.new
-  end
-
-  def checklist_fields(f, association)
-    @fields ||= f.fields_for(association, new_object(f, association), :child_index => "new_#{association}") do |builder|
-      render(association.to_s.singularize + "_fields", :f => builder)
-    end
-  end
-
-  def new_or_show(f)
-    if f.object.new_record?
-      if f.object.subject.present?
-        "show"
-      else
-        "new"
-      end
-    else
-      "show"
-    end
-  end
-
-  def done_css(f)
-    if f.object.is_done
-      "is-done-checklist-item"
-    else
-      ""
-    end
-  end
-
-end
diff --git a/plugins/redmine_checklists/app/models/checklist.rb b/plugins/redmine_checklists/app/models/checklist.rb
deleted file mode 100644
index 3c61da9..0000000
--- a/plugins/redmine_checklists/app/models/checklist.rb
+++ /dev/null
@@ -1,79 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class Checklist < ActiveRecord::Base
-   
-  include Redmine::SafeAttributes
-  belongs_to :issue
-  belongs_to :author, :class_name => "User", :foreign_key => "author_id"
-
-  acts_as_event :datetime => :created_at,
-                :url => Proc.new {|o| {:controller => 'issues', :action => 'show', :id => o.issue_id}},
-                :type => 'issue issue-closed',
-                :title => Proc.new {|o| o.subject },
-                :description => Proc.new {|o| "#{l(:field_issue)}:  #{o.issue.subject}" }
-
-
-  acts_as_activity_provider :type => "checklists",
-                            :permission => :view_checklists,
-                            :scope => preload({:issue => :project})
-  acts_as_searchable :columns => ["#{table_name}.subject"],
-                     :scope => lambda { includes([:issue => :project]).order("#{table_name}.id") },
-                     :project_key => "#{Issue.table_name}.project_id"
-
-
-  up_acts_as_list scope: :issue
-
-  validates_presence_of :subject
-  validates_length_of :subject, maximum: 512
-  validates_presence_of :position
-  validates_numericality_of :position
-
-  def self.recalc_issue_done_ratio(issue_id)
-    issue = Issue.find(issue_id)
-    return false if (Setting.issue_done_ratio != 'issue_field') || !RedmineChecklists.issue_done_ratio? || issue.checklists.reject(&:is_section).empty?
-    done_checklist = issue.checklists.reject(&:is_section).map { |c| c.is_done ? 1 : 0 }
-    done_ratio = (done_checklist.count(1) * 10) / done_checklist.count * 10
-    issue.update(done_ratio: done_ratio)
-  end
-
-  def self.old_format?(detail)
-    (detail.old_value.is_a?(String) && detail.old_value.match(/^\[[ |x]\] .+$/).present?) ||
-      (detail.value.is_a?(String) && detail.value.match(/^\[[ |x]\] .+$/).present?)
-  end
-
-  safe_attributes 'subject', 'position', 'issue_id', 'is_done', 'is_section'
-
-  def editable_by?(usr = User.current)
-    usr && (usr.allowed_to?(:edit_checklists, project) || (author == usr && usr.allowed_to?(:edit_own_checklists, project)))
-  end
-
-  def project
-    issue.project if issue
-  end
-
-  def info
-    "[#{is_done ? 'x' : ' '}] #{subject.strip}"
-  end
-
-  def add_to_list_bottom
-    return unless issue.checklists.select(&:persisted?).map(&:position).include?(self[position_column])
-    self[position_column] = bottom_position_in_list.to_i + 1
-  end
-end
diff --git a/plugins/redmine_checklists/app/models/journal_checklist_history.rb b/plugins/redmine_checklists/app/models/journal_checklist_history.rb
deleted file mode 100644
index a82d84d..0000000
--- a/plugins/redmine_checklists/app/models/journal_checklist_history.rb
+++ /dev/null
@@ -1,127 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class JournalChecklistHistory
-  def self.can_fixup?(journal_details)
-    return false if journal_details.journal.nil?
-
-    issue = journal_details.journal.journalized
-    return false unless issue.is_a?(Issue)
-
-    prev_journal_scope = issue.journals.order('id DESC')
-    prev_journal_scope = prev_journal_scope.where('id <> ?', journal_details.journal_id) if journal_details.journal_id
-    prev_journal = prev_journal_scope.first
-    return false unless prev_journal
-
-    return false if prev_journal.user_id != journal_details.journal.user_id
-    return false if Time.zone.now > prev_journal.created_on + 1.minute
-
-    prev_journal.details.all? { |x| x.prop_key == 'checklist' } &&
-      journal_details.journal.details.all? { |x| x.prop_key == 'checklist' } &&
-      journal_details.journal.notes.blank? &&
-      prev_journal.notes.blank? &&
-      prev_journal.details.select { |x| x.prop_key == 'checklist' }.size == 1
-  end
-
-  def self.fixup(journal_details)
-    issue = journal_details.journal.journalized
-    prev_journal_scope = issue.journals.order('id DESC')
-    prev_journal_scope = prev_journal_scope.where('id <> ?', journal_details.journal_id) if journal_details.journal_id
-    prev_journal = prev_journal_scope.first
-    checklist_details = prev_journal.details.find{ |x| x.prop_key == 'checklist'}
-    if new(checklist_details.old_value, journal_details.value).empty_diff?
-      prev_journal.destroy
-    else
-      checklist_details.update(value: journal_details.value)
-      journal_details.journal.destroy unless journal_details.journal.new_record? && journal_details.journal.details.any?{ |x| x.prop_key != 'checklist'}
-    end
-  end
-
-  def initialize(was, become)
-    @was = force_object(was)
-    @become = force_object(become)
-    @was_ids = @was.map(&:id)
-    @become_ids = @become.map(&:id)
-    @both_ids = @become_ids & @was_ids
-  end
-
-  def diff
-    {
-      :undone => undone,
-      :done => done
-    }
-  end
-
-  def empty_diff?
-    diff.all?{ |_,v| v.empty? }
-  end
-
-  def journal_details(opts = {})
-    JournalDetail.new(opts.merge({
-        :property  => 'attr',
-        :prop_key  => 'checklist',
-        :old_value => @was.map(&:to_h).to_json,
-        :value     => @become.map(&:to_h).to_json
-      }))
-  end
-
-  private
-
-  def undone
-    @both_ids.map do |id|
-      was_is_done = was_by_id(id).is_done
-      become_is_done = become_by_id(id).is_done
-      if was_is_done != become_is_done && was_is_done
-        become_by_id(id)
-      else
-        nil
-      end
-    end.compact
-  end
-
-  def done
-    @both_ids.map do |id|
-      was_is_done = was_by_id(id).is_done
-      become_is_done = become_by_id(id).is_done
-      if was_is_done != become_is_done && become_is_done
-        become_by_id(id)
-      else
-        nil
-      end
-    end.compact
-  end
-
-  def was_by_id(id)
-    @was.find{ |x| x.id == id }
-  end
-
-  def become_by_id(id)
-    @become.find{ |x| x.id == id }
-  end
-
-  def force_object(unk)
-    if unk.is_a?(String)
-      json = JSON.parse(unk)
-      json = [json] unless json.is_a?(Array)
-      json.map{ |x| OpenStruct2.new(x.has_key?('checklist') ? x['checklist'] : x) }
-    else
-      unk.map{ |x| OpenStruct2.new(x.attributes) }
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/app/views/checklists/_checklist_item.html.erb b/plugins/redmine_checklists/app/views/checklists/_checklist_item.html.erb
deleted file mode 100644
index 186d6bd..0000000
--- a/plugins/redmine_checklists/app/views/checklists/_checklist_item.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-<li id="checklist_item_<%= checklist_item.id %>" class="<%= 'is-done-checklist-item' if checklist_item.is_done %> <%= 'checklist-section' if checklist_item.is_section %>">
-  <% unless checklist_item.is_section %>
-    <%= check_box_tag 'checklist_item', '', checklist_item.is_done,
-                      disabled: !User.current.allowed_to?(:done_checklists, checklist_item.issue.project) && !User.current.allowed_to?(:edit_checklists, checklist_item.issue.project),
-                      data_url: url_for({ controller: 'checklists', action: 'done', id: checklist_item.id }),
-                      class: 'checklist-checkbox',
-                      id: "checklist-checkbox-#{checklist_item.id}"
-    %>
-  <% end %>
-  <%= textilizable(checklist_item, :subject).gsub(/<\/?(p|h\d+|li|ul|hr \/)>/, '').strip.html_safe %>
-</li>
diff --git a/plugins/redmine_checklists/app/views/checklists/done.js.erb b/plugins/redmine_checklists/app/views/checklists/done.js.erb
deleted file mode 100644
index ac8b878..0000000
--- a/plugins/redmine_checklists/app/views/checklists/done.js.erb
+++ /dev/null
@@ -1,17 +0,0 @@
-$("#checklist_item_<%= @checklist_item.id %>").toggleClass('is-done-checklist-item');
-$('#checklist_form .checklist-item#<%= @checklist_item.id %> input[type=checkbox]').trigger('click');
-$('.issue .attributes table.progress').parent().html('<%= j(progress_bar(@checklist_item.issue.done_ratio, :width => '80px', :legend => "#{@checklist_item.issue.done_ratio}%")) %>');
-$('#issue_done_ratio').val('<%= @checklist_item.issue.done_ratio %>');
-
-var checkedCheckboxes = $('#checklist_items .checklist-checkbox:checkbox:checked');
-
-if(localStorage.getItem("hide_closed_checklists") === '0' && checkedCheckboxes.length > 0){
-  $("#checklist_item_<%= @checklist_item.id %>").fadeOut(1000).hide(15);
-  $('#switch_link').text('<%= l("label_checklist_show_closed") %>' + '(' + checkedCheckboxes.length + ')');
-}
-if(checkedCheckboxes.length < 1 && localStorage.getItem("hide_closed_checklists") === '1'){
-  $('#switch_link').hide();
-}
-if(checkedCheckboxes.length > 0){
-  $('#switch_link').show();
-}
diff --git a/plugins/redmine_checklists/app/views/checklists/index.api.rsb b/plugins/redmine_checklists/app/views/checklists/index.api.rsb
deleted file mode 100644
index 4dff4f0..0000000
--- a/plugins/redmine_checklists/app/views/checklists/index.api.rsb
+++ /dev/null
@@ -1,15 +0,0 @@
-api.array :checklists, api_meta(:total_count => @checklists.size) do
-  @checklists.each do |checklist|
-    api.checklist do
-      api.id         checklist.id
-      api.issue_id   checklist.issue_id
-      api.subject    checklist.subject
-      api.is_done    checklist.is_done
-      api.position   checklist.position
-      api.is_section checklist.is_section
-
-      api.created_at checklist.created_at
-      api.updated_at checklist.updated_at
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/app/views/checklists/show.api.rsb b/plugins/redmine_checklists/app/views/checklists/show.api.rsb
deleted file mode 100644
index 37987b2..0000000
--- a/plugins/redmine_checklists/app/views/checklists/show.api.rsb
+++ /dev/null
@@ -1,11 +0,0 @@
-api.checklist do
-  api.id         @checklist_item.id
-  api.issue_id   @checklist_item.issue_id
-  api.subject    @checklist_item.subject
-  api.is_done    @checklist_item.is_done
-  api.position   @checklist_item.position
-  api.is_section @checklist_item.is_section
-
-  api.created_at @checklist_item.created_at
-  api.updated_at @checklist_item.updated_at
-end
diff --git a/plugins/redmine_checklists/app/views/issues/_checklist.html.erb b/plugins/redmine_checklists/app/views/issues/_checklist.html.erb
deleted file mode 100644
index 8205892..0000000
--- a/plugins/redmine_checklists/app/views/issues/_checklist.html.erb
+++ /dev/null
@@ -1,19 +0,0 @@
-<%  if !@issue.blank? &&  @issue.checklists.any? && User.current.allowed_to?(:view_checklists, @project) %>
-<hr />
-<div id="checklist">
-  <div class="contextual">
-    <%= link_to l("label_checklist_hide_closed"), '#', id: 'switch_link' %>
-  </div>
-  <p><strong><%=l(:label_checklist_plural)%></strong></p>
-
-  <ul id="checklist_items">
-  <% @issue.checklists.each do |checklist_item| %>
-    <%= render :partial => 'checklists/checklist_item', :object => checklist_item %>
-  <% end %>
-  </ul>
-</div>
-  <%= javascript_tag do %>
-    new Redmine.ChecklistToggle('<%= l("label_checklist_show_closed") %>', '<%= l("label_checklist_hide_closed") %>');
-    $("#checklist_items").checklist();
-  <% end %>
-<% end %>
diff --git a/plugins/redmine_checklists/app/views/issues/_checklist_fields.html.erb b/plugins/redmine_checklists/app/views/issues/_checklist_fields.html.erb
deleted file mode 100644
index ec1a0d4..0000000
--- a/plugins/redmine_checklists/app/views/issues/_checklist_fields.html.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-<span class="checklist-item <%= new_or_show(f) %> <%= 'checklist-section' if f.object.is_section %> existing" id="<%= f.object.id %>">
-  <% unless f.object.is_section %>
-    <span class="checklist-show-only checklist-checkbox"><%= f.check_box :is_done %></span>
-  <% end %>
-
-  <span class="checklist-show checklist-subject <%= done_css(f) %>">
-    <%= f.object.subject.to_s.strip.html_safe %>
-  </span>
-
-  <span class="checklist-edit checklist-new checklist-edit-box">
-    <%= text_field_tag nil, f.object.subject, class: 'edit-box' %>
-    <%= f.hidden_field :subject, class: 'checklist-subject-hidden' %>
-  </span>
-
-  <span class="checklist-edit-only checklist-edit-save-button"><%= submit_tag l(:button_save), type: 'button', class: 'item item-save small' %> </span>
-  <span class="checklist-edit-only checklist-edit-reset-button"><% concat l(:button_cancel) %> </span>
-  <span class="checklist-show-only checklist-remove"><%= link_to_remove_checklist_fields "", f, class: 'icon icon-del' %></span>
-
-  <%= f.hidden_field :position, class: 'checklist-item-position' %>
-  <%= f.hidden_field :is_section, class: 'checklist-item-is_section' %>
-  <%= f.hidden_field :id, class: 'checklist-item-id' %>
-
-  <span class="icon icon-add checklist-new-only save-new-by-button"></span>
-
- <br>
-</span>
diff --git a/plugins/redmine_checklists/app/views/issues/_checklist_form.html.erb b/plugins/redmine_checklists/app/views/issues/_checklist_form.html.erb
deleted file mode 100644
index de1c0b2..0000000
--- a/plugins/redmine_checklists/app/views/issues/_checklist_form.html.erb
+++ /dev/null
@@ -1,23 +0,0 @@
-<% if User.current.allowed_to?(:edit_checklists, @project, :global => true) %>
-  <div class="tabular">
-    <p id="checklist_form">
-      <label><%=l(:label_checklist_plural)%></label>
-      <% @issue.checklists.build if @issue.checklists.blank? || @issue.checklists.last.subject.present? %>
-      <%= fields_for @issue do |f| -%>
-        <span id="checklist_form_items" data-checklist-fields='<%= checklist_fields(f, :checklists) %>'>
-          <%= f.fields_for :checklists do |builder| %>
-            <%= render :partial => 'checklist_fields', :locals => {:f => builder, :checklist => @checklist} %>
-          <% end %>
-        </span>
-      <% end %>
-    </p>
-  </div>
-<% end %>
-
-<%= javascript_tag do %>
-  <% unless User.current.allowed_to?(:done_checklists, @project) %>
-    $("#checklist_items input").attr("disabled", true);
-  <% end %>
-
-  $("span#checklist_form_items").checklist();
-<% end %>
diff --git a/plugins/redmine_checklists/app/views/settings/checklists/_checklists.html.erb b/plugins/redmine_checklists/app/views/settings/checklists/_checklists.html.erb
deleted file mode 100644
index d4307f4..0000000
--- a/plugins/redmine_checklists/app/views/settings/checklists/_checklists.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<% checklist_tabs = [
-  {:name => 'general', :partial => 'settings/checklists/general', :label => :label_general}]
-
- %>
-
-<%= render_tabs checklist_tabs %>
-
-<% html_title(l(:label_settings), l(:label_checklists)) -%>
diff --git a/plugins/redmine_checklists/app/views/settings/checklists/_general.html.erb b/plugins/redmine_checklists/app/views/settings/checklists/_general.html.erb
deleted file mode 100644
index af66755..0000000
--- a/plugins/redmine_checklists/app/views/settings/checklists/_general.html.erb
+++ /dev/null
@@ -1,13 +0,0 @@
-<% if Setting.issue_done_ratio == "issue_field" %>
-<p>
-  <label for="settings_issue_done_ratio"><%= l(:label_checklist_done_ratio) %></label>
-  <%= hidden_field_tag 'settings[issue_done_ratio]', 0, :id => nil %>
-  <%= check_box_tag 'settings[issue_done_ratio]', 1, @settings["issue_done_ratio"].to_i > 0 %>
-</p>
-<% end %>
-
-<p>
-  <label for="settings_block_issue_closing"><%= l(:label_checklist_block_issue_closing) %></label>
-  <%= hidden_field_tag 'settings[block_issue_closing]', 0, :id => nil %>
-  <%= check_box_tag 'settings[block_issue_closing]', 1, @settings["block_issue_closing"].to_i > 0 %>
-</p>
diff --git a/plugins/redmine_checklists/assets/javascripts/checklists.js b/plugins/redmine_checklists/assets/javascripts/checklists.js
deleted file mode 100644
index 84ad103..0000000
--- a/plugins/redmine_checklists/assets/javascripts/checklists.js
+++ /dev/null
@@ -1,485 +0,0 @@
-if(typeof(String.prototype.trim) === "undefined")
-{
-    String.prototype.trim = function()
-    {
-        return String(this).replace(/^\s+|\s+$/g, '');
-    };
-}
-
-/*! jQuery klass v0.2a - Jean-Louis Grall - MIT license - http://code.google.com/p/jquery-klass-plugin */
-
-( function( $, undefined ) {
-
-
-// Function: $.klass( [SuperKlass,] props )
-// Creates and returns a new class.
-// Usages:  MyKlass = $.klass( { init: function() { ... } } )
-//      MyKlass = $.klass( SuperKlass, { } )
-// Arguments:
-//    SuperKlass  (optional) The super class that the new class will extend.
-//    props   Set of methods and other class properties.
-// Special props names:
-//    init    The constructor. If omitted, an implicit init will be created.
-//          Thus all classes have an init method.
-//    _klass    Set of class methods (static methods). They will be added directly to the class.
-// Notes:
-//  - $.klass is the implicit super class, not Object
-    var $klass = $.klass = function( _super, fields ) { // The class factory. It is also the invisible "super class" of all classes. Methods added to its prototype will be available to all classes.
-
-            // If no _super:
-            if ( !fields ) {
-                fields = _super;
-                _super = undefined;
-            }
-
-            var
-            // init is our future class and constructor
-            // If no init is provided, make one (Implicit constructor)
-                klass = fields.init || ( fields.init = function() {
-                    // Automatically calls the superconstructor if there is one.
-                    _super && _super.prototype.init.apply( this, arguments );
-                } ),
-
-            // Used to make the new klass extends its super class
-                protoChainingProxy = function() { },
-
-            // klass.prototype
-                proto,
-
-            // index in loop
-                name;
-
-            // Prepare prototype chaining to the super class
-            // If no super class, use $.klass as implicit super class
-            protoChainingProxy.prototype = (_super || $klass).prototype;
-            // Make the [[prototype]]'s chain from klass to it's super class
-            proto = klass.prototype = new protoChainingProxy; // At the end we have: klass.prototype.[[prototype]] = protoChainingProxy.prototype = _super.prototype. Here the "new" operator creates the new object with the right prototype chain, but doesn't call the constructor because there is no "()". See also: http://brokenliving.blogspot.com/2009/09/simple-javascript-inheritance.html
-            // Now we have: klass.prototype.[[prototype]] = protoChainingProxy.prototype = _super.prototype
-
-            // Accessor for super klass ( can be undefined )
-            klass._super = _super;
-
-            // Add each function to the prototype of the new class (they are our new class methods):
-            for ( name in fields ) {
-                // Add the static variables to the new class:
-                if ( name === "_klass" ) $.extend( klass, fields[name] );
-                // Each new method keeps a reference to its name and its class, allowing us to find its super method dynamically at runtime:
-                else $.isFunction( proto[ name ] = fields[name] ) && ( fields[name]._klass = { klass: klass, name: name } );
-            }
-
-            // Sets the constructor for instanciated objects
-            proto.constructor = klass;
-
-            return klass;
-        },
-        Array_slice = [].slice;
-
-
-    /* $.klass.prototype */
-// Properties assigned to it are available from any instance of a class made by $.klass
-
-// Function: this._super( [ methodName,] arguments, args... )
-// Calls a super method. Finds the super method dynamically.
-// Usages:  this._super( arguments, arg1, arg2, arg3, ... )
-//      this._super( "methodName", arguments, arg1, arg2, arg3, ... )
-// Arguments:
-//    methodName  (optional) Name of the super method.
-//          By default, use the name of the calling method.
-//    arguments You must give the arguments object here.
-//    args...   List of arguments for the super method.
-// Note:
-//  - Super methods are found dynamically by the function in the super class using the method's name.
-    $klass.prototype._super = function( arg0, arg1 ) {
-        var arg0IsArguments = arg0.callee,
-            _klass = ( arg0IsArguments ? arg0 : arg1 ).callee._klass,
-            name = arg0IsArguments ? _klass.name : arg0,
-            superMethod = _klass.klass._super.prototype[ name ];
-        return superMethod.apply( this, Array_slice.call( arguments, 1 + ( !arg0IsArguments ) ) );
-    };
-
-})( jQuery );
-
-var updateChecklistPositions =  function() {
-  $(".checklist-item.existing").each(function(index, element){
-    $(element).children('.checklist-item-position').val(index);
-  });
-}
-
-var Redmine = Redmine || {};
-
-Redmine.Checklist = $.klass({
-
-  preventEvent: function(event) {
-    if (event.preventDefault)
-      event.preventDefault()
-    else
-      event.returnValue = false
-  },
-
-  addChecklistFields: function() {
-    var new_id = new Date().getTime();
-    var regexp = new RegExp("new_checklist", "g");
-    appended = $(this.content.replace(regexp, new_id)).appendTo(this.root);
-    updateChecklistPositions();
-    appended.find('.edit-box').focus();
-  },
-
-  findSpan: function(event) {
-    return $(event.target).closest('.checklist-item')
-  },
-
-  findSpanBefore: function(elem) {
-    return elem.prevAll('span.checklist-item.new')
-  },
-
-  transformItem: function(event, elem, valueToSet, isSection) {
-    var checklistItem;
-    if (event) {
-      checklistItem = this.findSpan(event)
-    } else if (elem) {
-      checklistItem = this.findSpanBefore(elem)
-    } else {
-      checklistItem = this.root.find('span.checklist-item.new')
-    }
-
-    var val;
-    if (valueToSet) {
-      val = valueToSet
-      checklistItem.find('input.edit-box').val(val)
-    } else {
-      val = checklistItem.find('input.edit-box').val()
-    }
-
-    checklistItem.find('.checklist-subject').text(val)
-    checklistItem.find('.checklist-subject-hidden').val(val)
-    checklistItem.removeClass('edit')
-    checklistItem.removeClass('new')
-    checklistItem.addClass('show')
-
-    if (isSection) {
-      checklistItem.addClass('checklist-section');
-      checklistItem.children('.checklist-item-is_section').val(true);
-    }
-  },
-
-  resetItem: function(item) {
-    item.find('input.edit-box').val(item.find('checklist-subject-hidden').val() )
-    item.removeClass('edit')
-    item.addClass('show')
-  },
-
-  addChecklistItem: function(event) {
-    this.preventEvent(event);
-    this.transformItem(event);
-    this.addChecklistFields();
-  },
-
-  canSave: function(span) {
-    return (!span.hasClass('invalid')) && (span.find('input.edit-box').val().length > 0)
-  },
-
-  onEnterInNewChecklistItemForm: function() {
-    this.root.on('keydown', 'input.edit-box', $.proxy(function(event) {
-      if (event.which == 13) {
-        this.preventEvent(event)
-        span = this.findSpan(event)
-        if (this.canSave(span))
-        {
-          if (span.hasClass('edit'))
-            this.transformItem(event)
-          else
-            this.addChecklistItem(event)
-        }
-      }
-    }, this))
-  },
-
-  onClickPlusInNewChecklistItem: function() {
-    this.root.on('click', '.save-new-by-button', $.proxy(function(event){
-      span = this.findSpan(event)
-      if (this.canSave(span))
-        this.addChecklistItem(event)
-    }, this))
-  },
-
-  onClickAddChecklistItemMenuButton: function() {
-    $('#checklist-menu .add-checklist-item').on('click', $.proxy(function(event) {
-      this.preventEvent(event);
-      var span = $('#checklist_form_items > span.checklist-item.new');
-      if (this.canSave(span)) {
-        this.transformItem();
-        this.addChecklistFields();
-        this.$plusButtonMenu.hide();
-      }
-    }, this))
-  },
-
-  onClickNewSectionMenuButton: function() {
-    $('#checklist-menu .add-checklist-section').on('click', $.proxy(function(event) {
-      this.preventEvent(event);
-      var span = $('#checklist_form_items > span.checklist-item.new');
-      if (this.canSave(span)) {
-        this.transformItem(null, null, null, true);
-        this.addChecklistFields();
-        this.$plusButtonMenu.hide();
-      }
-    }, this))
-  },
-
-  onMouseEnterLeavePlusButton: function() {
-    var hideMenuTimer;
-    var $menu = this.$plusButtonMenu;
-
-    this.root.on('mouseenter', '.save-new-by-button', function() {
-      var $plusButton = $(this);
-      var position = $plusButton.position();
-      $menu.css('left', (position.left + 'px'));
-      $menu.css('top', (position.top + $plusButton.height() + 'px'));
-      $menu.show();
-    });
-
-    this.root.on('mouseleave', '.save-new-by-button', function() {
-      hideMenuTimer = setTimeout(function() {
-        $menu.hide();
-      }, 500);
-    });
-
-    $('#checklist-menu').on('mouseenter', function() {
-      clearTimeout(hideMenuTimer);
-    });
-
-    $('#checklist-menu').on('mouseleave', function() {
-      $menu.hide();
-    });
-  },
-
-  onIssueFormSubmitRemoveEmptyChecklistItems: function() {
-    $('body').on('submit', '#issue-form', function(){
-      $('.checklist-subject-hidden').each(function(i, elem) {
-        if ($(elem).val() == "")
-        {
-          $(elem).closest('.checklist-item').remove()
-        }
-      })
-    })
-  },
-
-  onChecklistRemove: function() {
-    this.root.on('click', '.checklist-remove a', $.proxy(function(event){
-      this.preventEvent(event);
-      var itemToRemove = this.findSpan(event);
-      var checkbox = itemToRemove.find(".checklist-remove input[type=hidden]");
-
-      if (checkbox.val() === "false") {
-        checkbox.val("1");
-        itemToRemove.removeClass('existing')
-        itemToRemove.fadeOut(200);
-      }
-
-      updateChecklistPositions();
-    }, this));
-  },
-
-  makeChecklistsSortable: function() {
-    $('#checklist_form_items').sortable({
-      items: '.checklist-item.show',
-      helper: "clone",
-      stop: function (event, ui) {
-        if (ui.item.hasClass("edited-now")) {
-          $( this ).sortable( "cancel" );
-        }
-        if (ui.item.hasClass("edit-active")) {
-          $( this ).sortable( "cancel" );
-        }
-        updateChecklistPositions();
-      }
-    });
-  },
-
-  makeChecklistsEditable: function() {
-    this.root.on('click', '.checklist-subject', $.proxy(function(event) {
-      $('.checklist-item').each($.proxy(function(i, elem) {
-        if ($(elem).hasClass('edit'))
-          this.resetItem($(elem))
-      }, this))
-
-      span = this.findSpan(event)
-      span.addClass('edit')
-      span.removeClass('show')
-      span.find('.edit-box').val(span.find('.checklist-subject-hidden').val())
-      span.find('.edit-box').focus()
-    }, this));
-    this.root.on('click', '.checklist-edit-save-button', $.proxy(function(event){
-      this.transformItem(event)
-    }, this))
-    this.root.on('click', '.checklist-edit-reset-button', $.proxy(function(event){
-      this.resetItem(this.findSpan(event))
-    }, this))
-  },
-
-  onCheckboxChanged: function() {
-    this.root.on('change', 'input[type=checkbox]', $.proxy(function(event){
-      checkbox = $(event.target)
-      subj = this.findSpan(event).find('.checklist-subject')
-      if (checkbox.is(':checked'))
-        subj.addClass('is-done-checklist-item')
-      else
-        subj.removeClass('is-done-checklist-item')
-    }, this))
-  },
-
-  onChangeCheckbox: function(){
-    this.root.on('change', 'input.checklist-checkbox', $.proxy(function(event) {
-      this.darkenCompletedSections();
-      checkbox = $(event.target)
-      url = checkbox.attr('data_url')
-      $.ajax({type: "PUT", url: url, data: { is_done: checkbox.prop('checked') }, dataType: 'script'})
-    }, this))
-  },
-
-  darkenCompletedSections: function() {
-    var isCompletedSection = true;
-    var reversedChecklistItems = $('#checklist_items li').get().reverse();
-
-    $(reversedChecklistItems).each(function(index, element) {
-      var $element = $(element);
-      if ($element.hasClass('checklist-section')) {
-        if (isCompletedSection) {
-          $element.addClass('completed-section')
-        } else {
-          $element.removeClass('completed-section')
-        }
-        isCompletedSection = true;
-      } else {
-        isCompletedSection = isCompletedSection && $element.children('.checklist-checkbox').is(':checked')
-      }
-    })
-  },
-
-  enableUniquenessValidation: function() {
-    this.root.on('input', 'input.edit-box', $.proxy(function(event) {
-      value = $(event.target).val()
-      span = this.findSpan(event)
-      span.removeClass('invalid')
-      $('.checklist-item.existing').each(function(i, elem) {
-        e = $(elem)
-        if (!e.is('.edit') && !e.is('.new'))
-        {
-          if ( (value == e.find('.edit-box').val()) )
-          {
-            span.addClass('invalid')
-          }
-        }
-      })
-    }, this))
-  },
-
-  hasAlreadyChecklistWithName: function(value) {
-    var ret = false;
-    $('.checklist-show.checklist-subject').each(function(i, elem) {
-      e = $(elem)
-      if (value == e.text().trim())
-      {
-        ret = true;
-      }
-    })
-    return ret;
-  },
-
-  assignTemplateSelectedEvent: function() {
-    this.$plusButtonMenu.on('click', 'li a.checklist-template', $.proxy(function(event) {
-      this.preventEvent(event);
-      items = $(event.target).data('template-items').split(/\n/);
-      for(var i = 0; i < items.length; i++) {
-        var item = items[i];
-        var isSection = item.slice(0, 2) === '--';
-        if (isSection) { item = item.slice(2) }
-        if (!this.hasAlreadyChecklistWithName(item)) {
-          this.transformItem(null, null, item, isSection);
-          this.addChecklistFields();
-        }
-      }
-    }, this))
-  },
-
-  init: function(element) {
-    this.root = element
-    this.content = element.data('checklist-fields')
-    this.onEnterInNewChecklistItemForm()
-    this.onClickPlusInNewChecklistItem()
-
-    if (this.content) {
-      this.$plusButtonMenu = $('#checklist-menu').menu();
-      if (this.$plusButtonMenu.length > 0) {
-        this.onMouseEnterLeavePlusButton();
-        this.onClickAddChecklistItemMenuButton();
-        this.assignTemplateSelectedEvent();
-        this.onClickNewSectionMenuButton();
-      }
-    } else {
-      this.darkenCompletedSections()
-    }
-
-    this.onIssueFormSubmitRemoveEmptyChecklistItems()
-    this.onChecklistRemove()
-    this.makeChecklistsSortable()
-    this.makeChecklistsEditable()
-    this.onCheckboxChanged()
-    this.onChangeCheckbox()
-    this.enableUniquenessValidation()
-  }
-
-})
-
-$.fn.checklist = function(element){
-  new Redmine.Checklist(this);
-};
-
-Redmine.ChecklistToggle = $.klass({
-  manageToggling: function (t_val) {
-    var checkedCheckboxes = $('#checklist_items .checklist-checkbox:checkbox:checked');
-
-    if(localStorage.getItem("hide_closed_checklists") === t_val){
-      $($(checkedCheckboxes).closest('li')).hide();
-      $(this.switch_link).text(this.show_text + '(' + checkedCheckboxes.length + ')');
-    } else {
-      $($(checkedCheckboxes).closest('li')).show();
-      $(this.switch_link).text(this.hide_text);
-    }
-  },
-  switch_link_click: function(){
-    var th = $(this)[0];
-    this.switch_link.click(function (e) {
-      e.preventDefault();
-      th.manageToggling("1");
-      var setVal = (localStorage.getItem("hide_closed_checklists") === "1") ? "0" : "1";
-      localStorage.setItem("hide_closed_checklists", setVal);
-    });
-  },
-  hide_switch_link: function(){
-    if($('.checklist-checkbox:checkbox:checked').length < 1){
-      this.switch_link.hide();
-    }
-  },
-  init: function(show_text, hide_text) {
-    this.show_text = show_text;
-    this.hide_text = hide_text;
-    this.switch_link = $('#switch_link');
-    this.manageToggling("0");
-    this.switch_link_click();
-    this.hide_switch_link();
-  }
-});
-
-
-$(document).ready(function () {
-  if (typeof(contextMenuCheckSelectionBox) === 'function') {
-    var originContextMenuCheckSelectionBox = contextMenuCheckSelectionBox;
-    contextMenuCheckSelectionBox = function (tr, checked) {
-      var $td = tr.find('td.checklist_relations');
-      var $checklist = $td.find('.checklist').detach();
-      originContextMenuCheckSelectionBox(tr, checked);
-      $checklist.appendTo($td);
-    };
-  }
-});
diff --git a/plugins/redmine_checklists/assets/stylesheets/checklists.css b/plugins/redmine_checklists/assets/stylesheets/checklists.css
deleted file mode 100644
index 649a8f9..0000000
--- a/plugins/redmine_checklists/assets/stylesheets/checklists.css
+++ /dev/null
@@ -1,145 +0,0 @@
-#checklist_form_items input[type="checkbox"], 
-#checklist_items input[type="checkbox"] {
-  height: initial;
-}
-
-div#checklist ul {
-	list-style: none;
-	padding-left: 0px;
-	margin-bottom: 0px;
-}
-
-div#checklist li {
-  padding-bottom: 10px;
-  margin-left: 10px;
-}
-
-.checklist-checkbox {height: inherit}
-
-#checklist li:hover a.delete {opacity: 1;}
-
-#checklist a.delete {opacity: 0.4;}
-
-span.checklist-item {
-  display: block;
-  margin-bottom: 5px;
-}
-
-span.checklist-subject.is-done-checklist-item, span.checklist-item.is-done-checklist-item, #checklist_items li.is-done-checklist-item  {
-  text-decoration: line-through;
-  color: #999;
-}
-
-span.checklist-remove { margin-left: 2px; opacity: 0.4;}
-
-span.checklist-remove:hover  {opacity: 1;}
-
-span.checklist-edit-box input {
-    margin-right: 6px;
-    width: 40%;
-    -moz-transition: top 0.2s;
-    -o-transition: top 0.2s;
-    -webkit-transition: top 0.2s;
-    transition: top 0.2s;
-}
-
-.invalid span.checklist-edit-box input {
-  border-color: #b94a48;
-  color: #b94a48;
-}
-
-.invalid span.checklist-edit-box input:focus {
-  border-color: #953b39;
-  color: #b94a48;
-}
-
-.invalid .checklist-edit-save-button {
-  display: none;
-}
-
-span.checklist-edit-reset-button {
-    cursor: pointer;
-    color: #2996CC;
-}
-
-span.checklist-subject {cursor: pointer;}
-
-span.checklist-item.show .checklist-edit,
-span.checklist-item.show .checklist-edit-only,
-span.checklist-item.show .checklist-new,
-span.checklist-item.show .checklist-new-only,
-span.checklist-item.edit .checklist-show,
-span.checklist-item.edit .checklist-new-only,
-span.checklist-item.new .checklist-edit-only,
-span.checklist-item.new .checklist-show-or-edit,
-span.checklist-item.new .checklist-show-only,
-span.checklist-item.edit .checklist-show-only {
-  display: none;
-}
-
-div#checklist ol {
-  display: inline-block;
-  padding-left: 0;
-}
-
-.checklist-section {
-  padding-top: 10px;
-  font-weight: bold;
-  border-bottom-width: 1px;
-  border-bottom-style: solid;
-  border-bottom-color: #eee;
-}
-
-.checklist-item.checklist-section > .checklist-checkbox { display: none; }
-
-#checklist_items li.checklist-section {
-  padding-bottom: 5px;
-  margin-bottom: 5px;
-}
-
-.completed-section { color: #999; }
-
-.save-new-by-button { cursor: pointer; }
-
-table.list td.checklist_relations { text-align: left }
-
-/* ========================================================================= */
-/*                        Checklist context menu                             */
-/* ========================================================================= */
-
-#checklist-menu ul, #checklist-menu li, #checklist-menu a {
-  display:block;
-  margin:0;
-  padding:0;
-  border:0;
-}
-
-#checklist-menu {
-  display: none;
-  position: absolute;
-  font-size: 0.9em;
-}
-
-#checklist-menu, #checklist-menu ul {
-  width: 150px;
-  border: 1px solid #ccc;
-  background: white;
-  list-style: none;
-  padding: 2px;
-  border-radius: 2px;
-  z-index: 10;
-}
-
-#checklist-menu li {
-  position: relative;
-  padding: 1px;
-  border: 1px solid white;
-}
-
-#checklist-menu a {
-  text-decoration: none !important;
-  padding: 2px 0px 2px 20px;
-}
-
-#checklist-menu a:hover { color:#2A5685; }
-#checklist-menu li:hover { border:1px solid #628db6; background-color:#eef5fd; border-radius:3px; }
diff --git a/plugins/redmine_checklists/config/locales/bg.yml b/plugins/redmine_checklists/config/locales/bg.yml
deleted file mode 100644
index 888a23b..0000000
--- a/plugins/redmine_checklists/config/locales/bg.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-# encoding: utf-8
-bg:
-  label_checklist_plural: Чеклист
-  field_checklist: Чеклист
-  label_checklist_save_log: Съхраняване на записи в историята на дейността
-  label_checklist_done_ratio: Преизчисляване на процента готовност
-  permission_view_checklists: Разглеждане на чеклисти
-  permission_done_checklists: Изпълнение на чеклисти
-  permission_edit_checklists: Редактиране на чеклисти
diff --git a/plugins/redmine_checklists/config/locales/de.yml b/plugins/redmine_checklists/config/locales/de.yml
deleted file mode 100644
index 6216dd9..0000000
--- a/plugins/redmine_checklists/config/locales/de.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Deutsche Übersetzungen für Rails i18n
-de:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Checklisten-Thema
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Änderungen im Problem-Log speichern
-  label_checklist_done_ratio: Fortschritt des Problems festlegen
-  permission_view_checklists: Checklist anzeigen
-  permission_done_checklists: Erledigte Checklistenelemente
-  permission_edit_checklists: Checklistenelemente bearbeiten
-  label_checklist_template_category_plural: Vorlagenkategorien
-  label_checklist_template_category_new: Neue Checklistenvorlage
-  field_checklist_template_category: Vorlagenelemente
-  label_checklist_templates: Checklistenvorlagen
-  label_checklist_new_checklist_template: Neue Checklistenvorlage
-  field_template_items: Vorlagenelemente
-  label_checklist_template: Checklistenvorlage
-  label_add_checklists_from_template: Von Vorlage hinzufügen
-  label_checklists_from_template: Von Vorlage
-  label_select_template: "-- Nicht angegeben --"
-  label_checklist_category_not_specified: "-- Nicht spezifiziert --"
-  label_checklists_description: Mehrere Werte erlaubt (eine Zeile für jeden Wert)
-  label_checklist_item: Checklistenelement
-  label_checklist_section: Checklistensektion
-  label_checklist_deleted: gelöscht
-  label_checklist_changed_from: geändert von
-  label_checklist_changed_to: zu
-  label_checklist_added: hinzugefügt
-  label_checklist_done: auf Erledigt gesetzt
-  label_checklist_undone: auf Nicht erledigt gesetzt
-  label_checklist_updated: Checklistenelement bearbeitet
-  label_checklist_status: Checklistestatus
-  label_checklist_status_done: Erledigt
-  label_checklist_status_undone: Nicht erledigt
-  label_checklist_is_default: Standardmäßig
-  field_is_for_tracker: Tracker
-  label_checklists_must_be_completed: Alle Checklisten eines Problems müssen erledigt sein, bevor es geschlossen werden kann
-  label_checklist_block_issue_closing: Problemabschluss blockieren
-  label_checklist_show_closed: Geschlossene anzeigen
-  label_checklist_hide_closed: Geschlossene ausblenden
-  label_checklist_new_section: Neue Sektion
diff --git a/plugins/redmine_checklists/config/locales/en.yml b/plugins/redmine_checklists/config/locales/en.yml
deleted file mode 100644
index b60cd28..0000000
--- a/plugins/redmine_checklists/config/locales/en.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# English strings go here for Rails i18n
-en:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Checklist subject
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Save changes to issue log
-  label_checklist_done_ratio: Set issue done ratio
-  permission_view_checklists: View checklist
-  permission_done_checklists: Done checklist items
-  permission_edit_checklists: Edit checklist items
-  label_checklist_template_category_plural: Template categories
-  label_checklist_template_category_new: New category
-  field_checklist_template_category: Category
-  label_checklist_templates: Checklist templates
-  label_checklist_new_checklist_template: New checklist template
-  field_template_items: Template items
-  label_checklist_template: Checklist template
-  label_add_checklists_from_template: Add from template
-  label_checklists_from_template: From template
-  label_select_template: "-- Select template --"
-  label_checklist_category_not_specified: "-- Not specified --"
-  label_checklists_description: 'Multiple values allowed (one line for each value)'
-  label_checklist_item: Checklist item
-  label_checklist_section: Checklist section
-  label_checklist_deleted: deleted
-  label_checklist_changed_from: changed from
-  label_checklist_changed_to: to
-  label_checklist_added: added
-  label_checklist_done: set to Done
-  label_checklist_undone: set to Not done
-  label_checklist_updated: Checklist item edited
-  label_checklist_status: Checklist status
-  label_checklist_status_done: Done
-  label_checklist_status_undone: Undone
-  label_checklist_is_default: Default
-  field_is_for_tracker: Tracker
-  label_checklists_must_be_completed: All checklists of an issue must be done before closing
-  label_checklist_block_issue_closing: Block issue closing
-  label_checklist_show_closed: Show closed
-  label_checklist_hide_closed: Hide closed
-  label_checklist_new_section: New section
diff --git a/plugins/redmine_checklists/config/locales/es.yml b/plugins/redmine_checklists/config/locales/es.yml
deleted file mode 100644
index d129956..0000000
--- a/plugins/redmine_checklists/config/locales/es.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-# Spanish strings go here for Rails i18n
-es:
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Salvar cambios al log de la petición
-  label_checklist_done_ratio: Setear porcentaje de estado de petición
-  permission_view_checklists: Ver checklist
-  permission_done_checklists: Cerrar items de checklist
-  permission_edit_checklists: Editar iterms de checklist
-  label_checklist_template_category_plural: Categorías de plantillas
-  label_checklist_template_category_new: Nueva categoría
-  field_checklist_template_category: Categoría
-  label_checklist_templates: Plantillas de checklists
-  label_checklist_new_checklist_template: Nueva plantilla de checklist
-  field_template_items: Items de la plantilla
-  label_checklist_template: Plantilla de checklist
-  label_add_checklists_from_template: Añadir desde plantilla
-  label_select_template: "-- Seleccionar plantilla --"
-  label_checklist_category_not_specified: "-- No especificada --"
-  label_checklists_description: 'Se permiten múltiples valores (un valor por línea)'
-  label_checklist_item: Item de checklist
-  label_checklist_deleted: borrado
-  label_checklist_changed_from: cambiado de
-  label_checklist_changed_to: a
-  label_checklist_added: añadido
-  label_checklist_done: marcado como Hecho
-  label_checklist_undone: marcado como No hecho
-  label_checklist_updated: Item de checklist modificado
\ No newline at end of file
diff --git a/plugins/redmine_checklists/config/locales/fr.yml b/plugins/redmine_checklists/config/locales/fr.yml
deleted file mode 100755
index 339ca02..0000000
--- a/plugins/redmine_checklists/config/locales/fr.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Traductions en français pour Rails i18n
-fr:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Sujet de la checklist
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Enregistrer les modifications dans le journal des problèmes
-  label_checklist_done_ratio: Définir le taux d'avancement du problème
-  permission_view_checklists: Voir la checklist
-  permission_done_checklists: Éléments de la checklist terminés
-  permission_edit_checklists: Modifier les éléments de la checklist
-  label_checklist_template_category_plural: Catégories de modèles
-  label_checklist_template_category_new: Nouvelle catégorie
-  field_checklist_template_category: Catégorie
-  label_checklist_templates: Modèles de checklist
-  label_checklist_new_checklist_template: Nouveau modèle de checklist
-  field_template_items: Éléments de modèle
-  label_checklist_template: Modèle de checklist
-  label_add_checklists_from_template: Ajouter à partir du modèle
-  label_checklists_from_template: À partir du modèle
-  label_select_template: "-- Sélectionner un modèle --"
-  label_checklist_category_not_specified: "-- Non spécifié --"
-  label_checklists_description: 'Plusieurs valeurs autorisées (une ligne pour chaque valeur)'
-  label_checklist_item: Élément de checklist
-  label_checklist_section: Section de checklist
-  label_checklist_deleted: supprimé
-  label_checklist_changed_from: changé de
-  label_checklist_changed_to: à
-  label_checklist_added: ajouté
-  label_checklist_done: défini comme Terminé
-  label_checklist_undone: défini comme Non terminé
-  label_checklist_updated: Élément de checklist modifié
-  label_checklist_status: Statut de la checklist
-  label_checklist_status_done: Terminé
-  label_checklist_status_undone: Non terminé
-  label_checklist_is_default: Par défaut
-  field_is_for_tracker: Tracker
-  label_checklists_must_be_completed: Toutes les checklists d'un problème doivent être terminées avant la clôture
-  label_checklist_block_issue_closing: Bloquer la clôture du problème
-  label_checklist_show_closed: Afficher les éléments clos
-  label_checklist_hide_closed: Masquer les éléments clos
-  label_checklist_new_section: Nouvelle section
diff --git a/plugins/redmine_checklists/config/locales/hu.yml b/plugins/redmine_checklists/config/locales/hu.yml
deleted file mode 100644
index 917ce27..0000000
--- a/plugins/redmine_checklists/config/locales/hu.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Hungarian translations for redmine_checklists
-# by Lilla Basilides basilides.h.lilla@gmail.com)
-# Hungarian strings go here for Rails i18n
-hu:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Ellenőrző lista tárgya
-  label_checklist_plural: Ellenőrző lista
-  field_checklist: Ellenőrző lista
-  label_checklist_save_log: Változások mentése a jegy naplójába
-  label_checklist_done_ratio: Állítsa be az elkészült jegyek arányát
-  permission_view_checklists: Ellenőrző lista megtekintése
-  permission_done_checklists: Elkészült ellenőrzőlista elemek
-  permission_edit_checklists: Ellenőrzőlista elemeinek szerkesztése
-  label_checklist_template_category_plural: Sablon kategóriák
-  label_checklist_template_category_new: Új kategória
-  field_checklist_template_category: Kategória
-  label_checklist_templates: Ellenőrzőlista sablonok
-  label_checklist_new_checklist_template: Új ellenőrzőlista sablon
-  field_template_items: Sablon elemek
-  label_checklist_template: Ellenőrzőlista sablon
-  label_add_checklists_from_template: Hozzáadás sablonból
-  label_checklists_from_template: A sablonból
-  label_select_template: "-- Sablon kiválasztása --"
-  label_checklist_category_not_specified: "-- Nincs meghatározva --"
-  label_checklists_description: 'Több érték megengedett (értékenként egy sor)'
-  label_checklist_item: Ellenőrzőlista elem
-  label_checklist_section: Ellenőrzőlista szakasz
-  label_checklist_deleted: törölve
-  label_checklist_changed_from: változott a következőből
-  label_checklist_changed_to: a  címre
-  label_checklist_added: hozzáadva
-  label_checklist_done: készre állítva
-  label_checklist_undone: Nem készre állítva
-  label_checklist_updated: Szerkesztett ellenőrzőlista elem
-  label_checklist_status: Ellenőrzőlista állapota
-  label_checklist_status_done: Elkészült
-  label_checklist_status_undone: visszavonva
-  label_checklist_is_default: Alapértelmezett
-  field_is_for_tracker: Nyomkövető
-  label_checklists_must_be_completed: A jegy összes ellenőrző listáját el kell végezni a lezárás előtt.
-  label_checklist_block_issue_closing: Blokkjegy zárás
-  label_checklist_show_closed: Mutasd a zártakat
-  label_checklist_hide_closed: Rejtsd el zártakat
-  label_checklist_new_section: Új szakasz
-  
\ No newline at end of file
diff --git a/plugins/redmine_checklists/config/locales/it.yml b/plugins/redmine_checklists/config/locales/it.yml
deleted file mode 100644
index 79dc3d5..0000000
--- a/plugins/redmine_checklists/config/locales/it.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# encoding: utf-8
-# Italian strings go here for Rails i18n
-it:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Checklist soggetto
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Salva le modifiche nel log delle segnalazioni
-  label_checklist_done_ratio: Imposta ratio checklist segnalazioni completate
-  permission_view_checklists: Visualizza la checklist
-  permission_done_checklists: Elementi checklist completati
-  permission_edit_checklists: Modifica elementi checklist
-  label_checklist_template_category_plural: Categorie di modelli
-  label_checklist_template_category_new: Nuova categoria
-  field_checklist_template_category: Categoria
-  label_checklist_templates: Modelli di checklist
-  label_checklist_new_checklist_template: Nuovo modello di checklist
-  field_template_items: Elementi del modello
-  label_checklist_template: Modello di checklist
-  label_add_checklists_from_template: Aggiungi dal modello
-  label_checklists_from_template: Dal modello
-  label_select_template: "- Seleziona modello -"
-  label_checklist_category_not_specified: "-- Non specificato --"
-  label_checklists_description: "Sono consentiti più valori (una riga per ciascun valore)"
-  label_checklist_item: Elemento della checklist
-  label_checklist_section: Sezione checklist
-  label_checklist_deleted: Eliminato
-  label_checklist_changed_from: Modificato da
-  label_checklist_changed_to: a
-  label_checklist_added: aggiunto
-  label_checklist_done: Impostato su Completato
-  label_checklist_undone: Impostato su Non completato
-  label_checklist_updated: Elemento della checklist aggiornato
-  label_checklist_status: Stato della checklist
-  label_checklist_status_done: Completato
-  label_checklist_status_undone: Non completato
-  label_checklist_is_default: Predefinito
-  field_is_for_tracker: Tracker
-  label_checklists_must_be_completed: Tutte le liste di controllo di una segnalazione devono essere eseguite prima della chiusura
-  label_checklist_block_issue_closing: Blocca segnalazione in chiusura
-  label_checklist_show_closed: Mostra completati
-  label_checklist_hide_closed: Nascondi completati
-  label_checklist_new_section: Nuova sezione
diff --git a/plugins/redmine_checklists/config/locales/ja.yml b/plugins/redmine_checklists/config/locales/ja.yml
deleted file mode 100644
index c81518d..0000000
--- a/plugins/redmine_checklists/config/locales/ja.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-# encoding: utf-8
-ja:
-  label_checklist_plural: "チェックリスト" # Checklist
-  field_checklist: "チェックリスト" # Checklist
-  label_checklist_save_log: "変更をチケットに記録する" # Save changes to issue log
-  label_checklist_done_ratio: "チェック完了率" # Set issue done ratio
-  permission_view_checklists: "チェックリストの参照" # View checklist
-  permission_done_checklists: "チェックリストへ済印" # Done checklist items
-  permission_edit_checklists: "チェックリストの編集" # Edit checklist items
\ No newline at end of file
diff --git a/plugins/redmine_checklists/config/locales/ko.yml b/plugins/redmine_checklists/config/locales/ko.yml
deleted file mode 100644
index aaa94ab..0000000
--- a/plugins/redmine_checklists/config/locales/ko.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Translation by Ki Won Kim (http://x10.iptime.org/redmine, http://xyz37.blog.me, xyz37@naver.com)
-ko:
-  label_checklist_plural: "체크리스트"
-  field_checklist: "체크리스트"
-  label_checklist_save_log: "일감 로그에 변경사항을 저장합니다."
-  label_checklist_done_ratio: "완료 비율 일감 설정"
-  permission_view_checklists: "체크리스트 보기"
-  permission_done_checklists: "체크리스트 완료"
-  permission_edit_checklists: "체크리스트 수정"
-  label_checklists_must_be_completed: "일감을 완료하려면 모든 체크리스트가 완료되어야 합니다."
-  label_checklist_block_issue_closing: "일감이 종료되는 것을 방지합니다."
diff --git a/plugins/redmine_checklists/config/locales/nl.yml b/plugins/redmine_checklists/config/locales/nl.yml
deleted file mode 100644
index 359fb1e..0000000
--- a/plugins/redmine_checklists/config/locales/nl.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-nl:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Onderwerp van de checklist
-  label_checklist_plural: Checklists
-  field_checklist: Checklist
-  label_checklist_save_log: Wijzigingen in probleemlogboek opslaan
-  label_checklist_done_ratio: Stel voltooiingspercentage in
-  permission_view_checklists: View checklist
-  permission_done_checklists: Voltooide checklistitems
-  permission_edit_checklists: Bewerk checklistitems
-  label_checklist_template_category_plural: Sjabloonscategorieën
-  label_checklist_template_category_new: Nieuwe categorie
-  field_checklist_template_category: Categorie
-  label_checklist_templates: Checklistsjablonen
-  label_checklist_new_checklist_template: Nieuw checklistsjabloon
-  field_template_items: Sjabloonitems
-  label_checklist_template: Checklistsjabloon
-  label_add_checklists_from_template: Toevoegen vanuit sjabloon
-  label_checklists_from_template: Van sjabloon
-  label_select_template: -- Selecteer sjabloon --
-  label_checklist_category_not_specified: -- Niet gespecificeerd --
-  label_checklists_description: Meerdere waarden toegestaan (één regel voor elke waarde)
-  label_checklist_item: Checklistitem
-  label_checklist_section: Checklistsectie
-  label_checklist_deleted: verwijderd
-  label_checklist_changed_from: veranderd van
-  label_checklist_changed_to: naar
-  label_checklist_added: toegevoegd
-  label_checklist_done: ingesteld op Voltooid
-  label_checklist_undone: ingesteld op Niet voltooid
-  label_checklist_updated: Checklistitem bewerkt
-  label_checklist_status: Checkliststatus
-  label_checklist_status_done: Voltooid
-  label_checklist_status_undone: Niet voltooid
-  label_checklist_is_default: Standaard
-  field_is_for_tracker: Tracker
-  label_checklists_must_be_completed: Alle checklists van een probleem moeten voltooid zijn voordat het gesloten wordt
-  label_checklist_block_issue_closing: Blokkeer het sluiten van het probleem
-  label_checklist_show_closed: Gesloten weergeven
-  label_checklist_hide_closed: Gesloten verbergen
-  label_checklist_new_section: Nieuwe sectie
diff --git a/plugins/redmine_checklists/config/locales/pl.yml b/plugins/redmine_checklists/config/locales/pl.yml
deleted file mode 100644
index d91b76f..0000000
--- a/plugins/redmine_checklists/config/locales/pl.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-# English strings go here for Rails i18n
-pl:
-  label_checklist_plural: Lista
-  field_checklist: Checklista
-  label_checklist_save_log: Zapisuj zmiany w historii
-  label_checklist_done_ratio: Ustawia wskaźnik wykonania dla zgłoszeń
-  permission_view_checklists: Zobacz listę
-  permission_done_checklists: Ustaw jako ukończone elementy checklisty
-  permission_edit_checklists: Edytuj elementy checklisty
-  label_checklist_template_category_plural: Kategorie szablonów
-  label_checklist_template_category_new: Nowa kategoria
-  field_checklist_template_category: Kategoria
-  label_checklist_templates: Szablony checklist
-  label_checklist_new_checklist_template: New checklist template
-  field_template_items: Elementy szablonu
-  label_checklist_template: Szablon checklisty
-  label_add_checklists_from_template: Dodaj z szablonu
-  label_select_template: "-- Wybierz szablon --"
-  label_checklist_category_not_specified: "-- Nie wybrano --"
-  label_checklists_description: 'Dozwolone wiele wartości (po jednej linii dla każdej wartości)'
-  label_checklist_item: Element checklisty
-  label_checklist_deleted: usunięty
-  label_checklist_changed_from: zmieniony z
-  label_checklist_changed_to: na
-  label_checklist_added: dodany
-  label_checklist_done: ustaw jako Wykonane
-  label_checklist_undone: ustaw jako Niewykonane
-  label_checklist_updated: Zmieniono element checklisty
diff --git a/plugins/redmine_checklists/config/locales/pt-BR.yml b/plugins/redmine_checklists/config/locales/pt-BR.yml
deleted file mode 100644
index b185ee7..0000000
--- a/plugins/redmine_checklists/config/locales/pt-BR.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-#Portuguese Brazilian strings go here for Rails i18n
-pt-BR:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Checklist conteúdo
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Salvar alterações nas notas
-  label_checklist_done_ratio: Atribuir % conclusão
-  permission_view_checklists: Ver checklist
-  permission_done_checklists: Prontos do checklist
-  permission_edit_checklists: Editar checklist
-  label_checklist_template_category_plural: Categoria de templates
-  label_checklist_template_category_new: Nova categoria
-  field_checklist_template_category: Categoria
-  label_checklist_templates: Checklist templates
-  label_checklist_new_checklist_template: Novo checklist template
-  field_template_items: Template items
-  label_checklist_template: Checklist template
-  label_add_checklists_from_template: Adicionar do template
-  label_checklists_from_template: Do template
-  label_select_template: "-- Selecione o template --"
-  label_checklist_category_not_specified: "-- Não especificado --"
-  label_checklists_description: 'Permitir multiplos valores'
-  label_checklist_item: Checklist item
-  label_checklist_section: Checklist sessão
-  label_checklist_deleted: deletado
-  label_checklist_changed_from: alterado por
-  label_checklist_changed_to: para
-  label_checklist_added: adicionado
-  label_checklist_done: alterar para concluído
-  label_checklist_undone: alterar para não concluído
-  label_checklist_updated: Checklist item editado
-  label_checklist_status: Checklist status
-  label_checklist_status_done: Pronto
-  label_checklist_status_undone: Não pronto
-  label_checklist_is_default: Padrão
-  field_is_for_tracker: Tipo
-  label_checklists_must_be_completed: Para concluir a tarefa, todos os checklists devem estar prontos
-  label_checklist_block_issue_closing: Bloquear tarefa ao concluir
-  label_checklist_show_closed: Mostrar concluídos
-  label_checklist_hide_closed: Esconder concluídos
-  label_checklist_new_section: Nova sessão
diff --git a/plugins/redmine_checklists/config/locales/pt.yml b/plugins/redmine_checklists/config/locales/pt.yml
deleted file mode 100644
index 1016709..0000000
--- a/plugins/redmine_checklists/config/locales/pt.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-#Portuguese Portugal strings go here for Rails i18n
-pt:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Checklist conteúdo
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Salvar alterações nas notas
-  label_checklist_done_ratio: Atribuir % conclusão
-  permission_view_checklists: Ver checklist
-  permission_done_checklists: Prontos do checklist
-  permission_edit_checklists: Editar checklist
-  label_checklist_template_category_plural: Categoria de templates
-  label_checklist_template_category_new: Nova categoria
-  field_checklist_template_category: Categoria
-  label_checklist_templates: Checklist templates
-  label_checklist_new_checklist_template: Novo checklist template
-  field_template_items: Template items
-  label_checklist_template: Checklist template
-  label_add_checklists_from_template: Adicionar do template
-  label_checklists_from_template: Do template
-  label_select_template: "-- Selecione o template --"
-  label_checklist_category_not_specified: "-- Não especificado --"
-  label_checklists_description: 'Permitir multiplos valores'
-  label_checklist_item: Checklist item
-  label_checklist_section: Checklist sessão
-  label_checklist_deleted: deletado
-  label_checklist_changed_from: alterado por
-  label_checklist_changed_to: para
-  label_checklist_added: adicionado
-  label_checklist_done: alterar para concluído
-  label_checklist_undone: alterar para não concluído
-  label_checklist_updated: Checklist item editado
-  label_checklist_status: Checklist status
-  label_checklist_status_done: Pronto
-  label_checklist_status_undone: Não pronto
-  label_checklist_is_default: Padrão
-  field_is_for_tracker: Tipo
-  label_checklists_must_be_completed: Para concluir a tarefa, todos os checklists devem estar prontos
-  label_checklist_block_issue_closing: Bloquear tarefa ao concluir
-  label_checklist_show_closed: Mostrar concluídos
-  label_checklist_hide_closed: Esconder concluídos
-  label_checklist_new_section: Nova sessão
diff --git a/plugins/redmine_checklists/config/locales/ru.yml b/plugins/redmine_checklists/config/locales/ru.yml
deleted file mode 100644
index 8c7463f..0000000
--- a/plugins/redmine_checklists/config/locales/ru.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-# encoding: utf-8
-ru:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Заголовок чеклиста
-  label_checklist_plural: Чеклист
-  field_checklist: Чеклист
-  label_checklist_save_log: Сохранять изменения в истории
-  label_checklist_done_ratio: Рассчитывать готовность задачи
-  permission_view_checklists: Просматривать чеклисты
-  permission_done_checklists: Выполнять чеклисты
-  permission_edit_checklists: Редактировать чеклисты
-  label_checklist_template_category_plural: Категории шаблонов чеклистов
-  label_checklist_template_category_new: Новая категория шаблонов чеклистов
-  field_checklist_template_category: Категория
-  label_checklist_templates: Шаблоны чеклистов
-  label_checklist_new_checklist_template: Новый шаблон чеклистов
-  field_template_items: Элементы шаблона
-  label_checklist_template: Шаблон чеклистов
-  label_add_checklists_from_template: Добавить из шаблона
-  label_checklists_from_template: Из шаблона
-  label_select_template: "-- Выберите шаблон --"
-  label_checklist_category_not_specified: "-- Без категории --"
-  label_checklists_description: 'Для ввода нескольких значений вводите по одному на строку'
-  label_checklist_item: Пункт чеклиста
-  label_checklist_section: Раздел чеклиста
-  label_checklist_deleted: удалён
-  label_checklist_changed_from: изменён с
-  label_checklist_changed_to: на
-  label_checklist_added: добавлен
-  label_checklist_done: выполнен
-  label_checklist_undone: не выполнен
-  label_checklist_updated: Пункт чеклиста изменен
-  label_checklist_status: Статус пункта чеклиста
-  label_checklist_status_done: Выполнен
-  label_checklist_status_undone: Не выполнен
-  label_checklist_is_default: По умолчанию
-  field_is_for_tracker: Трекер
-  label_checklist_show_closed: Показать закрытые
-  label_checklist_hide_closed: Скрыть закрытые
-  label_checklist_new_section: Новая секция
-  label_checklist_block_issue_closing: Запретить закрытие заявки
-  label_checklists: Чеклист
-  label_checklists_must_be_completed: Чтобы заявка закрылась, должны быть выполнены все пункты чеклиста
-  field_checklists: Чеклист
diff --git a/plugins/redmine_checklists/config/locales/sk.yml b/plugins/redmine_checklists/config/locales/sk.yml
deleted file mode 100644
index 1fe026c..0000000
--- a/plugins/redmine_checklists/config/locales/sk.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-# encoding: utf-8
-# Slovak strings go here for Rails i18n
-sk:
-  label_checklist_plural: Checklist
-  field_checklist: Checklist
-  label_checklist_save_log: Uložiť zmeny do histórie úlohy
-  label_checklist_done_ratio: Nastaviť úlohu ako kompletnú
-  permission_view_checklists: Zobraziť checklist
-  permission_done_checklists: Splnené checklist položky
-  permission_edit_checklists: Upraviť checklist položky
diff --git a/plugins/redmine_checklists/config/locales/sv.yml b/plugins/redmine_checklists/config/locales/sv.yml
deleted file mode 100644
index 797b1e3..0000000
--- a/plugins/redmine_checklists/config/locales/sv.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Swedish strings go here for Rails i18n
-# Translation by Khedron Wilk (khedron.wilk@gmail.com)
-# Created 2014 Dec 14 Based on RedmineUP Checklist plugin (Light) ver 3.0.2
-sv:
-  label_checklist_plural: Checklista
-  field_checklist: Checklista
-  label_checklist_save_log: Spara ändringar i ärendeloggen
-  label_checklist_done_ratio: Använd checklista för att beräkna % klart
-  permission_view_checklists: Visa checklistor
-  permission_done_checklists: Klara checklistepunkter
-  permission_edit_checklists: Redigera checklistepunkter
diff --git a/plugins/redmine_checklists/config/locales/tr.yml b/plugins/redmine_checklists/config/locales/tr.yml
deleted file mode 100644
index 9c56228..0000000
--- a/plugins/redmine_checklists/config/locales/tr.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Turkish strings go here for Rails i18n
-tr:
-  activerecord:
-    attributes:
-      checklists:
-        subject: Kontrol Listesi konusu
-  label_checklist_plural: Kontrol listeleri
-  field_checklist: Kontrol Listesi
-  label_checklist_save_log: Değişiklikleri iş geçmişine kaydet
-  label_checklist_done_ratio: İş tamamlanma oranını ayarla
-  permission_view_checklists: Kontrol listesini görüntüle
-  permission_done_checklists: Kontrol Listesi elemanlarını tamamlandı olarak işaretle
-  permission_edit_checklists: Kontrol Listesini düzenle
-  label_checklist_template_category_plural: Taslak kategorileri
-  label_checklist_template_category_new: Yeni kategori
-  field_checklist_template_category: Kategori
-  label_checklist_templates: Kontrol listesi taslakları
-  label_checklist_new_checklist_template: Yeni kontrol listesi taslağı
-  field_template_items: Taslak elemanları
-  label_checklist_template: Kontrol listesi taslağı
-  label_add_checklists_from_template: Taslaktan ekle
-  label_checklists_from_template: Taslaktan
-  label_select_template: "-- Taslak seç --"
-  label_checklist_category_not_specified: "-- Belirtilmemiş --"
-  label_checklists_description: 'Birden fazla değer kabul edilir (her değer için bir satır)'
-  label_checklist_item: Kontrol listesi elemanı
-  label_checklist_section: Kontrol listesi kısmı
-  label_checklist_deleted: silindi
-  label_checklist_changed_from: ''
-  label_checklist_changed_to: '>>'
-  label_checklist_added: eklendi
-  label_checklist_done: Bitti olarak işaretlendi
-  label_checklist_undone: Bitti işareti kaldırıldı
-  label_checklist_updated: Kontrol listesi elemanı eklendi
-  label_checklist_status: Kontrol listesi durumu
-  label_checklist_status_done: Bitti
-  label_checklist_status_undone: Bitmedi
-  label_checklist_is_default: Varsayılan
-  field_is_for_tracker: İş tipi
-  label_checklists_must_be_completed: İş kapatılmadan önce tüm kontrol listeleri elemanlarının bitti olarak işaretlemesi mecburi olsun.
-  label_checklist_block_issue_closing: Block issue closing
-  label_checklist_show_closed: Kapalıları göster
-  label_checklist_hide_closed: Kapalıları gizle
-  label_checklist_new_section: Yeni kısım
diff --git a/plugins/redmine_checklists/config/locales/uk.yml b/plugins/redmine_checklists/config/locales/uk.yml
deleted file mode 100644
index 5c03945..0000000
--- a/plugins/redmine_checklists/config/locales/uk.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-# encoding: utf-8
-uk:
-  label_checklist_plural: Чекліст
-  field_checklist: Чекліст
-  label_checklist_save_log: Зберегти зміни в історії
-  label_checklist_done_ratio: Розрахувати готовність завдання
-  permission_view_checklists: Переглядати чеклісти
-  permission_done_checklists: Виконувати чеклісти
-  permission_edit_checklists: Редагувати чеклісти
\ No newline at end of file
diff --git a/plugins/redmine_checklists/config/locales/zh-TW.yml b/plugins/redmine_checklists/config/locales/zh-TW.yml
deleted file mode 100644
index f3f377a..0000000
--- a/plugins/redmine_checklists/config/locales/zh-TW.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# encoding: utf-8
-# Simplified Chinese strings go here for Rails i18n
-# Author: Steven.W
-# Based on file: en.yml
-
-zh-TW:
-  label_checklist_plural: 檢查清單
-  field_checklist: 檢查清單
-  label_checklist_save_log: 保存檢查清單的變更到問題日誌
-  label_checklist_done_ratio: 設置列表完成比率
-  permission_view_checklists: 查看檢查清單
-  permission_done_checklists: 完成檢查清單
-  permission_edit_checklists: 編輯檢查清單
-  label_checklist_template_category_plural: 範本類別
-  label_checklist_template_category_new: 新類別
-  field_checklist_template_category: 類別
-  label_checklist_templates: 檢查清單範本
-  label_checklist_new_checklist_template: 新增檢查清單範本
-  field_template_items: 範本項目
-  label_checklist_template: 檢查清單範本
-  label_add_checklists_from_template: 從範本新建
-  label_checklists_from_template: 從範本中新增
-  label_select_template: "-- 選擇範本 --"
-  label_checklist_category_not_specified: "-- 未指定 --"
-  label_checklists_description: '允許多重值 (每一行的值)'
-  label_checklist_item: 檢查清單項目
-  label_checklist_deleted: 刪除
-  label_checklist_changed_from: 改變自
-  label_checklist_changed_to: 到
-  label_checklist_added: 添加
-  label_checklist_done: 設置完成
-  label_checklist_undone: 設置未完成
-  label_checklist_updated: 檢查清單項目編輯
-
-  label_checklist_status: 檢查清單狀態
-  label_checklist_status_done: 已完成
-  label_checklist_status_undone: 未完成
-  label_checklist_is_default: 預設
-  field_is_for_tracker: 追蹤標籤
-  label_checklists_must_be_completed: 議題中的所有檢查清單必須全部完成才能關閉
-  label_checklist_block_issue_closing: 阻擋議題關閉
-  label_checklist_show_closed: 顯示已完成
-  label_checklist_hide_closed: 隱藏已完成
-  label_checklist_new_section: 新增區塊
\ No newline at end of file
diff --git a/plugins/redmine_checklists/config/locales/zh.yml b/plugins/redmine_checklists/config/locales/zh.yml
deleted file mode 100644
index d5fb510..0000000
--- a/plugins/redmine_checklists/config/locales/zh.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# encoding: utf-8
-# Simplified Chinese strings go here for Rails i18n
-# Author: Steven.W
-# Based on file: en.yml
-
-zh:
-  label_checklist_plural: 检查列表
-  field_checklist: 检查列表
-  label_checklist_save_log: 保存检查列表变更到问题日志
-  label_checklist_done_ratio: 设置列表完成比率
-  permission_view_checklists: 查看检查列表
-  permission_done_checklists: 完成检查项
-  permission_edit_checklists: 编辑检查项
-  label_checklist_template_category_plural: 模板类别
-  label_checklist_template_category_new: 新类别
-  field_checklist_template_category: 类别
-  label_checklist_templates: 检查列表模板
-  label_checklist_new_checklist_template: 新检查列表模板
-  field_template_items: 模板项
-  label_checklist_template: 检查列表模板
-  label_add_checklists_from_template: 从模板新建
-  label_select_template: "-- 选择模板 --"
-  label_checklist_category_not_specified: "-- 未指定 --"
-  label_checklists_description: '允许多重值 (每一行的值)'
-  label_checklist_item: 检查列表项
-  label_checklist_deleted: 删除
-  label_checklist_changed_from: 改变自
-  label_checklist_changed_to: 到
-  label_checklist_added: 添加
-  label_checklist_done: 设置完成
-  label_checklist_undone: 设置未完成
-  label_checklist_updated: 检查列表项编辑
diff --git a/plugins/redmine_checklists/config/routes.rb b/plugins/redmine_checklists/config/routes.rb
deleted file mode 100644
index 26f894f..0000000
--- a/plugins/redmine_checklists/config/routes.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-resources :issues do
-  resources :checklists, :only => [:index, :create]
-end
-
-resources :checklists, :only => [:destroy, :update, :show] do
-  member do
-    put :done
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/001_create_checklists.rb b/plugins/redmine_checklists/db/migrate/001_create_checklists.rb
deleted file mode 100644
index 715f822..0000000
--- a/plugins/redmine_checklists/db/migrate/001_create_checklists.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateChecklists < ActiveRecord::Migration[4.2]
-
-  def self.up
-    if ActiveRecord::Base.connection.table_exists? :issue_checklists
-      rename_table :issue_checklists, :checklists
-    else
-      create_table :checklists do |t|
-        t.boolean :is_done, :default => false
-        t.string :subject
-        t.integer :position, :default => 1
-        t.references :issue, :null => false
-      end
-    end
-  end
-
-  def self.down
-    drop_table :checklists
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/002_add_time_stamps_to_checklists.rb b/plugins/redmine_checklists/db/migrate/002_add_time_stamps_to_checklists.rb
deleted file mode 100644
index fd7e02e..0000000
--- a/plugins/redmine_checklists/db/migrate/002_add_time_stamps_to_checklists.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddTimeStampsToChecklists < ActiveRecord::Migration[4.2]
-  def change
-    add_column :checklists, :created_at, :timestamp
-    add_column :checklists, :updated_at, :timestamp
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/003_create_checklist_template_category.rb b/plugins/redmine_checklists/db/migrate/003_create_checklist_template_category.rb
deleted file mode 100644
index ba26d4e..0000000
--- a/plugins/redmine_checklists/db/migrate/003_create_checklist_template_category.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateChecklistTemplateCategory < ActiveRecord::Migration[4.2]
-
-  def self.up
-    create_table :checklist_template_categories do |t|
-      t.string :name
-      t.integer :position, :default => 1
-    end
-  end
-
-  def self.down
-    drop_table :checklist_template_categories
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/004_create_checklist_templates.rb b/plugins/redmine_checklists/db/migrate/004_create_checklist_templates.rb
deleted file mode 100644
index 670f8da..0000000
--- a/plugins/redmine_checklists/db/migrate/004_create_checklist_templates.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateChecklistTemplates < ActiveRecord::Migration[4.2]
-
-  def self.up
-    create_table :checklist_templates do |t|
-      t.string :name
-      t.references :project
-      t.references :category
-      t.references :user
-      t.boolean :is_public
-      t.text :template_items
-    end
-  end
-
-  def self.down
-    drop_table :checklist_templates
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/005_modify_checklist_subject_length.rb b/plugins/redmine_checklists/db/migrate/005_modify_checklist_subject_length.rb
deleted file mode 100644
index 77a6ea5..0000000
--- a/plugins/redmine_checklists/db/migrate/005_modify_checklist_subject_length.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class ModifyChecklistSubjectLength < ActiveRecord::Migration[4.2]
-  def self.up
-    change_column :checklists, :subject, :string, :limit => 512
-  end
-
-  def self.down
-    change_column :checklists, :subject, :string, :limit => 256
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/006_add_fields_to_checklist_template.rb b/plugins/redmine_checklists/db/migrate/006_add_fields_to_checklist_template.rb
deleted file mode 100644
index 922bda5..0000000
--- a/plugins/redmine_checklists/db/migrate/006_add_fields_to_checklist_template.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddFieldsToChecklistTemplate < ActiveRecord::Migration[4.2]
-  def self.up
-    add_column :checklist_templates, :is_default, :boolean, :default => false
-    add_column :checklist_templates, :tracker_id, :integer
-    add_index :checklist_templates, :tracker_id
-  end
-
-  def self.down
-    remove_column :checklist_templates, :is_default
-    remove_column :checklist_templates, :tracker_id
-  end
-end
diff --git a/plugins/redmine_checklists/db/migrate/007_add_is_section_to_checklists.rb b/plugins/redmine_checklists/db/migrate/007_add_is_section_to_checklists.rb
deleted file mode 100644
index 3113511..0000000
--- a/plugins/redmine_checklists/db/migrate/007_add_is_section_to_checklists.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddIsSectionToChecklists < (Rails.version < '5.1') ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
-  def change
-    add_column :checklists, :is_section, :boolean, default: false
-  end
-end
diff --git a/plugins/redmine_checklists/doc/CHANGELOG b/plugins/redmine_checklists/doc/CHANGELOG
deleted file mode 100644
index 6268bcc..0000000
--- a/plugins/redmine_checklists/doc/CHANGELOG
+++ /dev/null
@@ -1,181 +0,0 @@
-== Redmine Checklists plugin changelog
-
-Redmine Checklists plugin - managing issue checklists plugin for Redmine
-Copyright (C) 2011-2024 Kirill Bezrukov (RedmineUP)
-http://www.redmineup.com/
-
-== 2024-02-14 v3.1.23
-
-* Dropped Redmine 3 support
-* Added Taiwanese(Traditional chinese) translation (Tomy)
-* Updated Dutch, French, German locales (Jan Catrysse)
-* Fixed notification bug
-
-== 2023-01-16 v3.1.22
-
-* Added is_section API property
-* Added Hungarian locale (Krisztian Engi, Lilla Basilides)
-* Added Turkish locale (Adnan Topçu)
-* Updated Korean locale (Ki Won Kim)
-* Updated German locale (Joachim Mathes)
-* Fixed name validation for item checkbox
-* Fixed items sorting
-
-== 2022-02-21 v3.1.21
-
-* Redmine 5.0 compatibility fixes
-
-== 2021-10-12 v3.1.20
-
-* Fixed subtask checklists copy
-* Fixed checklist formating error
-
-== 2021-05-21 v3.1.19
-
-* Added Redmine 4.2 compatibility
-* Fixed empty project errors
-* Fixed notification on journal fixup
-* Fixed checklist positions bug
-
-== 2020-08-17 v3.1.18
-
-* Added italian locale
-* Updated zh-tw locale
-* Fixed size() method error
-* Fixed initial install error
-* Fixed checklist ration recalculate
-* Fixed display checklist element with Markdown syntax
-* Fixed done ratio recalculate on checklist API update
-* Fixed API call journalizing
-
-== 2020-01-31 v3.1.17
-
-* Redmine 4.1 compatibility fixes
-* Fixed view permission bug
-* Fixed template permissions bug
-* Fixed context menu conflicts
-* Fixed Agile support
-* Fixed checklist copy bug
-* Fixed locale bug
-* Fixed project copy bug
-
-== 2019-04-29 v3.1.16
-
-* Checklists sections
-
-== 2019-04-15 v3.1.15
-
-* Redmine 4.0.3 support
-* Added Hide link for closed items
-
-== 2018-12-20 v3.1.14
-
-* Hotfix for Redmine 4
-
-== 2018-12-18 v3.1.13
-
-* Redmine 4 saving issue fixes
-
-== 2018-11-26 v3.1.12
-
-* German translation update from Tobias Fischer
-* Fixed diferent authors changes bug
-* Fixed sortable animation bug
-
-== 2018-03-23 v3.1.11
-
-* Redmine 4 support
-* Setting for block issues with undone checklists
-* Fixed bug with default template
-* Fixed email notification bug
-
-== 2017-10-12 v3.1.10
-
-* Fixed email notification bug
-* Fixed empty project issues bug
-
-== 2017-09-23 v3.1.9
-
-* Fixed bug with creating issues without checklist
-
-== 2017-09-21 v3.1.8
-
-* Default templates bug fixed
-
-== 2017-08-30 v3.1.7
-
-* Assigned tracker for checklist template
-* Fixed bug with coping project and issue with subissues
-* Fixed settings saving bug
-* 512 characters in checklist subjects (Ondřej Kudlík)
-* Fixed bug for markdown
-
-== 2017-07-07 v3.1.6
-
-* Redmine 3.4 support
-* New checklists filters for issues table
-* Save log by default
-* Chinese translation update
-* Polish translation update
-* Fixed bug with template editing
-
-== 2016-08-15 v3.1.5
-
-* Fixed bug with project tabs
-
-== 2016-08-10 v3.1.4
-
-* Fixed empty history items for issues with checklists
-* Fixed XSS in journal rendering
-* Fixed error with template search in MSSQL
-* Banner plugin compatibility
-* Fixed for-all-project template option
-* Validation for subject length
-* Hungarian translation by Peter Tabajdi
-* Spanish translation update by Luis Blasco
-* Merge checklists history if less than minute interval changes
-
-== 2015-09-25 v3.1.3
-
-* Bug with attach files history fixed
-* Bug with old checkboxes fixed
-
-== 2015-09-25 v3.1.2
-
-* Issue history details
-* Templates permissions fixes
-
-== 2015-04-08 v3.1.0
-
-* Checklist templates
-
-== 2015-03-06 v3.0.4
-
-* Redmine 3.0 compatibility fixes
-* Fixed checklist styles on read only issue mode
-
-== 2015-02-23 v3.0.3
-
-* Swedish translation update (Khedron Wilk)
-* Portuguese Brazilian translation (Leandro Gehlen)
-* Redmine 3.0 (Rails4) support
-* Copying checklists with project copying (Andrew Reshetov)
-* Fixed bug with unable editing checklist after tracker or status changed
-
-== 2014-12-09 v3.0.2
-
-* Fixed bug wuth empty subject with CKEditor plugin
-
-== 2014-09-15 v3.0.1
-
-* Bulgarian translation (Иван Ценов)
-* Fixed bug with IE browser
-
-== 2014-09-10 v3.0.0
-
-* Editing checklist items
-* REST API for index, create, destroy, update, show
-* Change issues progress in real time
-* Sync checked items with show and edit forms
-* Fixed bug with rejecting new checklist items on update issue status
-* Japan translation (Yukio KANEDA)
diff --git a/plugins/redmine_checklists/doc/COPYING b/plugins/redmine_checklists/doc/COPYING
deleted file mode 100644
index 63e41a4..0000000
--- a/plugins/redmine_checklists/doc/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/plugins/redmine_checklists/doc/LICENSE b/plugins/redmine_checklists/doc/LICENSE
deleted file mode 100644
index e2e50b5..0000000
--- a/plugins/redmine_checklists/doc/LICENSE
+++ /dev/null
@@ -1,26 +0,0 @@
-LICENSING
-
-RedmineUP Licencing
-
-This End User License Agreement is a binding legal agreement between you and RedmineUP. Purchase, installation or use of RedmineUP Extensions provided on redmineup.com signifies that you have read, understood, and agreed to be bound by the terms outlined below.
-
-RedmineUP GPL Licencing
-
-All Redmine Extensions produced by RedmineUP are released under the GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html). Specifically, the Ruby code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript are NOT GPL, and are released under the RedmineUP Proprietary Use License v1.0 (See below) unless specifically authorized by RedmineUP. Elements of the extensions released under this proprietary license may not be redistributed or repackaged for use other than those allowed by the Terms of Service.
-
-RedmineUP Proprietary Use License (v1.0)
-
-The RedmineUP Proprietary Use License covers any images, cascading stylesheets, manuals and JavaScript files in any extensions produced and/or distributed by redmineup.com. These files are copyrighted by redmineup.com (RedmineUP) and cannot be redistributed in any form without prior consent from redmineup.com (RedmineUP)
-
-Usage Terms
-
-You are allowed to use the Extensions on one or many "production" domains, depending on the type of your license
-You are allowed to make any changes to the code, however modified code will not be supported by us.
-
-Modification Of Extensions Produced By RedmineUP.
-
-You are authorized to make any modification(s) to RedmineUP extension Ruby code. However, if you change any Ruby code and it breaks functionality, support may not be available to you.
-
-In accordance with the RedmineUP Proprietary Use License v1.0, you may not release any proprietary files (modified or otherwise) under the GPL license. The terms of this license and the GPL v2 prohibit the removal of the copyright information from any file.
-
-Please contact us if you have any requirements that are not covered by these terms.
\ No newline at end of file
diff --git a/plugins/redmine_checklists/init.rb b/plugins/redmine_checklists/init.rb
deleted file mode 100644
index dea2522..0000000
--- a/plugins/redmine_checklists/init.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-requires_redmineup version_or_higher: '1.0.5' rescue raise "\n\033[31mRedmine requires newer redmineup gem version.\nPlease update with 'bundle update redmineup'.\033[0m"
-
-CHECKLISTS_VERSION_NUMBER = '3.1.23'.freeze
-CHECKLISTS_VERSION_TYPE = "Light version"
-
-Redmine::Plugin.register :redmine_checklists do
-  name "Redmine Checklists plugin (#{CHECKLISTS_VERSION_TYPE})"
-  author 'RedmineUP'
-  description 'This is a issue checklist plugin for Redmine'
-  version CHECKLISTS_VERSION_NUMBER
-  url 'https://www.redmineup.com/pages/plugins/checklists'
-  author_url 'mailto:support@redmineup.com'
-
-  requires_redmine :version_or_higher => '4.0'
-
-  settings :default => {
-    :save_log => true,
-    :issue_done_ratio => false
-  }, :partial => 'settings/checklists/checklists'
-
-  Redmine::AccessControl.map do |map|
-    map.project_module :issue_tracking do |map|
-      map.permission :view_checklists, { :checklists => [:show, :index] }
-      map.permission :done_checklists, { :checklists => :done }
-      map.permission :edit_checklists, { :checklists => [:done, :create, :destroy, :update] }
-    end
-  end
-end
-
-if (Rails.configuration.respond_to?(:autoloader) && Rails.configuration.autoloader == :zeitwerk) || Rails.version > '7.0'
-  Rails.autoloaders.each { |loader| loader.ignore(File.dirname(__FILE__) + '/lib') }
-end
-require File.dirname(__FILE__) + '/lib/redmine_checklists'
diff --git a/plugins/redmine_checklists/lib/redmine_checklists.rb b/plugins/redmine_checklists/lib/redmine_checklists.rb
deleted file mode 100644
index 88425e9..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  def self.settings() Setting.plugin_redmine_checklists.blank? ? {} : Setting.plugin_redmine_checklists end
-
-  def self.block_issue_closing?
-    settings['block_issue_closing'].to_i > 0
-  end
-
-  def self.issue_done_ratio?
-    settings['issue_done_ratio'].to_i > 0
-  end
-end
-
-REDMINE_CHECKLISTS_REQUIRED_FILES = [
-  'redmine_checklists/patches/compatibility/application_helper_patch',
-  'redmine_checklists/hooks/views_issues_hook',
-  'redmine_checklists/hooks/views_layouts_hook',
-  'redmine_checklists/hooks/controller_issues_hook',
-  'redmine_checklists/patches/issue_patch',
-  'redmine_checklists/patches/project_patch',
-  'redmine_checklists/patches/issues_controller_patch',
-  'redmine_checklists/patches/helper_for_checklists_patch',
-  'redmine_checklists/patches/issues_helper_patch',
-  'redmine_checklists/patches/compatibility/open_struct_patch',
-]
-
-base_url = File.dirname(__FILE__)
-REDMINE_CHECKLISTS_REQUIRED_FILES.each { |file| require(base_url + '/' + file) }
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/hooks/controller_issues_hook.rb b/plugins/redmine_checklists/lib/redmine_checklists/hooks/controller_issues_hook.rb
deleted file mode 100644
index fd4d639..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/hooks/controller_issues_hook.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Hooks
-    class ControllerIssuesHook < Redmine::Hook::ViewListener
-      def controller_issues_edit_after_save(context = {})
-
-        if (Setting.issue_done_ratio == 'issue_field') && RedmineChecklists.issue_done_ratio?
-          Checklist.recalc_issue_done_ratio(context[:issue].id)
-        end
-      end
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/hooks/views_issues_hook.rb b/plugins/redmine_checklists/lib/redmine_checklists/hooks/views_issues_hook.rb
deleted file mode 100644
index 8fc562a..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/hooks/views_issues_hook.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Hooks
-    class ViewsIssuesHook < Redmine::Hook::ViewListener
-      render_on :view_issues_show_description_bottom, :partial => "issues/checklist"
-      render_on :view_issues_form_details_bottom, :partial => "issues/checklist_form"
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/hooks/views_layouts_hook.rb b/plugins/redmine_checklists/lib/redmine_checklists/hooks/views_layouts_hook.rb
deleted file mode 100644
index f54450d..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/hooks/views_layouts_hook.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Hooks
-    class ViewsLayoutsHook < Redmine::Hook::ViewListener
-      def view_layouts_base_html_head(context={})
-        return javascript_include_tag(:checklists, :plugin => 'redmine_checklists') +
-          stylesheet_link_tag(:checklists, :plugin => 'redmine_checklists')
-      end
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/application_helper_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/application_helper_patch.rb
deleted file mode 100644
index 4b43930..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/application_helper_patch.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Patches
-    module ApplicationHelperPatch
-      def self.included(base) # :nodoc:
-        base.class_eval do
-          def stocked_reorder_link(object, name = nil, url = {}, method = :post)
-            Redmine::VERSION.to_s > '3.3' ? reorder_handle(object, :param => name) : reorder_links(name, url, method)
-          end
-        end
-      end
-    end
-  end
-end
-
-unless ApplicationHelper.included_modules.include?(RedmineChecklists::Patches::ApplicationHelperPatch)
-  ApplicationHelper.send(:include, RedmineChecklists::Patches::ApplicationHelperPatch)
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/open_struct_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/open_struct_patch.rb
deleted file mode 100644
index dc9900c..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/compatibility/open_struct_patch.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-class OpenStruct2 < OpenStruct
-  undef id if defined?(id)
-
-  def to_h
-    json
-  end
-
-  def [](key)
-    json[key.to_s]
-  end
-
-  def json
-    return @json if @json
-    @json = JSON.parse(to_json)
-    @json = @json['table'] if @json.has_key?('table')
-    @json
-  end
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/helper_for_checklists_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/helper_for_checklists_patch.rb
deleted file mode 100644
index c0777ee..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/helper_for_checklists_patch.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Patches
-    module HelperForChecklistsPatch
-      def self.apply(controller)
-        controller.send(:helper, 'checklists')
-      end
-    end
-  end
-end
-
-[IssuesController].each do |controller|
-  RedmineChecklists::Patches::HelperForChecklistsPatch.apply(controller)
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/issue_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/issue_patch.rb
deleted file mode 100644
index cf136fd..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/issue_patch.rb
+++ /dev/null
@@ -1,93 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'issue'
-
-module RedmineChecklists
-  module Patches
-    module IssuePatch
-      def self.included(base) # :nodoc:
-        base.send(:include, InstanceMethods)
-        base.class_eval do
-          attr_accessor :old_checklists
-          attr_accessor :removed_checklist_ids
-          attr_accessor :checklists_from_params
-          attr_reader :copied_from
-
-          alias_method :copy_without_checklist, :copy
-          alias_method :copy, :copy_with_checklist
-          after_save :copy_subtask_checklists
-
-          has_many :checklists, lambda { order("#{Checklist.table_name}.position") }, :class_name => 'Checklist', :dependent => :destroy, :inverse_of => :issue
-
-          accepts_nested_attributes_for :checklists, :allow_destroy => true, :reject_if => proc { |attrs| attrs['subject'].blank? }
-
-          validate :block_issue_closing_if_checklists_unclosed
-
-          safe_attributes 'checklists_attributes',
-            :if => lambda { |issue, user| (user.allowed_to?(:done_checklists, issue.project) || user.allowed_to?(:edit_checklists, issue.project)) }
-        end
-      end
-
-      module InstanceMethods
-        def copy_checklists(arg)
-          issue = arg.is_a?(Issue) ? arg : Issue.visible.find(arg)
-          return unless issue
-
-          issue.checklists.each do |checklist|
-            Checklist.create(checklist.attributes.except('id', 'issue_id').merge(issue: self))
-          end
-        end
-
-        def copy_subtask_checklists
-          return if checklists_from_params || !copy? || parent_id.nil? || checklists.reload.any?
-
-          copy_checklists(@copied_from)
-        end
-
-        def copy_with_checklist(attributes = nil, copy_options = {})
-          copy = copy_without_checklist(attributes, copy_options)
-          copy.copy_checklists(self)
-          copy
-        end
-
-        def all_checklist_items_is_done?
-          (checklists - checklists.where(id: removed_checklist_ids)).reject(&:is_section).all?(&:is_done)
-        end
-
-        def need_to_block_issue_closing?
-          RedmineChecklists.block_issue_closing? &&
-            checklists.reject(&:is_section).any? &&
-            status.is_closed? &&
-            !all_checklist_items_is_done?
-        end
-
-        def block_issue_closing_if_checklists_unclosed
-          if need_to_block_issue_closing?
-            errors.add(:checklists, l(:label_checklists_must_be_completed))
-          end
-        end
-      end
-    end
-  end
-end
-
-unless Issue.included_modules.include?(RedmineChecklists::Patches::IssuePatch)
-  Issue.send(:include, RedmineChecklists::Patches::IssuePatch)
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/issue_query_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/issue_query_patch.rb
deleted file mode 100644
index 5a768c0..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/issue_query_patch.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'query'
-
-module RedmineChecklists
-  module Patches
-    module IssueQueryPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-      end
-
-      module InstanceMethods
-      end
-    end
-  end
-end
-
-if (ActiveRecord::Base.connection.tables.include?('queries') rescue false) &&
-   IssueQuery.included_modules.exclude?(RedmineChecklists::Patches::IssueQueryPatch)
-  IssueQuery.send(:include, RedmineChecklists::Patches::IssueQueryPatch)
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/issues_controller_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/issues_controller_patch.rb
deleted file mode 100644
index f007eb7..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/issues_controller_patch.rb
+++ /dev/null
@@ -1,87 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Patches
-
-    module IssuesControllerPatch
-      def self.included(base) # :nodoc:
-        base.send(:include, InstanceMethods)
-        base.class_eval do
-          alias_method :build_new_issue_from_params_without_checklist, :build_new_issue_from_params
-          alias_method :build_new_issue_from_params, :build_new_issue_from_params_with_checklist
-          before_action :save_before_state, :only => [:update]
-        end
-      end
-
-      module InstanceMethods
-        def build_new_issue_from_params_with_checklist
-          if params[:id].blank?
-            begin
-              if params[:copy_from].blank?
-              else
-                fill_checklist_attributes
-              end
-            rescue ActiveRecord::RecordNotFound
-              render_404
-              return
-            end
-          end
-          build_new_issue_from_params_without_checklist
-          @issue.checklists_from_params = true
-        end
-
-        def save_before_state
-          @issue.old_checklists = @issue.checklists.to_json
-          checklists_params = params[:issue].present? && params[:issue][:checklists_attributes].present? ? params[:issue][:checklists_attributes] : {}
-          @issue.removed_checklist_ids =
-            if checklists_params.present?
-              checklists_params = checklists_params.respond_to?(:to_unsafe_hash) ? checklists_params.to_unsafe_hash : checklists_params
-              checklists_params.map { |_k, v| v['id'].to_i if ['1', 'true'].include?(v['_destroy']) }.compact
-            else
-              []
-            end
-        end
-
-        def fill_checklist_attributes
-          return unless params[:issue].blank?
-
-          @copy_from = Issue.visible.find(params[:copy_from])
-          add_checklists_to_params(@copy_from.checklists)
-        end
-
-        def add_checklists_to_params(checklists)
-          params[:issue].blank? ? params[:issue] = { :checklists_attributes => {} } : params[:issue][:checklists_attributes] = {}
-          checklists.each_with_index do |checklist_item, index|
-            params[:issue][:checklists_attributes][index.to_s] = {
-              is_done: checklist_item.is_done,
-              subject: checklist_item.subject,
-              position: checklist_item.position,
-              is_section: checklist_item.is_section
-            }
-          end
-        end
-      end
-    end
-  end
-end
-
-unless IssuesController.included_modules.include?(RedmineChecklists::Patches::IssuesControllerPatch)
-  IssuesController.send(:include, RedmineChecklists::Patches::IssuesControllerPatch)
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/issues_helper_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/issues_helper_patch.rb
deleted file mode 100644
index e0e8f9e..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/issues_helper_patch.rb
+++ /dev/null
@@ -1,86 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineChecklists
-  module Patches
-    module IssuesHelperPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-          alias_method :details_to_strings_without_checklists, :details_to_strings
-          alias_method :details_to_strings, :details_to_strings_with_checklists
-        end
-      end
-
-
-      module InstanceMethods
-
-        def details_to_strings_with_checklists(details, no_html = false, options = {})
-          details_checklist, details_other = details.partition{ |x| x.prop_key == 'checklist' }
-          if @issue.nil? || !User.current.allowed_to?(:view_checklists, @issue.try(:project), global: @issue.present?)
-            return details_to_strings_without_checklists(details_other, no_html, options)
-          end
-
-          details_checklist.map do |detail|
-            result = []
-            diff = Hash.new([])
-
-            if Checklist.old_format?(detail)
-              result << "<b>#{l(:label_checklist_item)}</b> #{l(:label_checklist_changed_from)} #{detail.old_value} #{l(:label_checklist_changed_to)} #{detail.value}"
-            else
-              diff = JournalChecklistHistory.new(detail.old_value, detail.value).diff
-            end
-
-            checklist_item_label = lambda do |item|
-              item[:is_section] ? l(:label_checklist_section) : l(:label_checklist_item)
-            end
-
-            if diff[:done].any?
-              diff[:done].each do |item|
-                result << "<b>#{ERB::Util.h l(:label_checklist_item)}</b> <input type='checkbox' class='checklist-checkbox' #{item.is_done ? 'checked' : '' } disabled> <i>#{ERB::Util.h item[:subject]}</i> #{ERB::Util.h l(:label_checklist_done)}"
-              end
-            end
-
-            if diff[:undone].any?
-              diff[:undone].each do |item|
-                result << "<b>#{ERB::Util.h l(:label_checklist_item)}</b> <input type='checkbox' class='checklist-checkbox' #{item.is_done ? 'checked' : '' } disabled> <i>#{ERB::Util.h item[:subject]}</i> #{ERB::Util.h l(:label_checklist_undone)}"
-              end
-            end
-
-            result = result.join('</li><li>').html_safe
-            result = nil if result.blank?
-            if result && no_html
-              result = result.gsub /<\/li><li>/, "\n"
-              result = result.gsub /<input type='checkbox' class='checklist-checkbox'[^c^>]*checked[^>]*>/, '[x]'
-              result = result.gsub /<input type='checkbox' class='checklist-checkbox'[^c^>]*>/, '[ ]'
-              result = result.gsub /<[^>]*>/, ''
-              result = CGI.unescapeHTML(result)
-            end
-            result
-          end.compact + details_to_strings_without_checklists(details_other, no_html, options)
-        end
-      end
-    end
-  end
-end
-
-unless IssuesHelper.included_modules.include?(RedmineChecklists::Patches::IssuesHelperPatch)
-  IssuesHelper.send(:include, RedmineChecklists::Patches::IssuesHelperPatch)
-end
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/notifiable_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/notifiable_patch.rb
deleted file mode 100644
index a6daac4..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/notifiable_patch.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-
diff --git a/plugins/redmine_checklists/lib/redmine_checklists/patches/project_patch.rb b/plugins/redmine_checklists/lib/redmine_checklists/patches/project_patch.rb
deleted file mode 100644
index 66636e9..0000000
--- a/plugins/redmine_checklists/lib/redmine_checklists/patches/project_patch.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'project'
-
-module RedmineChecklists
-  module Patches
-    module ProjectPatch
-      def self.included(base) # :nodoc:
-        base.send(:include, InstanceMethods)
-        base.class_eval do
-          alias_method :copy_issues_without_checklist, :copy_issues
-          alias_method :copy_issues, :copy_issues_with_checklist
-        end
-      end
-
-      module InstanceMethods
-
-        def copy_issues_with_checklist(project)
-          copy_issues_without_checklist(project)
-          issues.each{ |issue| issue.copy_checklists(issue.copied_from) if issue.reload.checklists.empty? }
-        end
-      end
-    end
-  end
-end
-
-unless Project.included_modules.include?(RedmineChecklists::Patches::ProjectPatch)
-  Project.send(:include, RedmineChecklists::Patches::ProjectPatch)
-end
diff --git a/plugins/redmine_checklists/test/fixtures/checklists.yml b/plugins/redmine_checklists/test/fixtures/checklists.yml
deleted file mode 100644
index 399383b..0000000
--- a/plugins/redmine_checklists/test/fixtures/checklists.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# === Checklist for Issue(1) ===
-one:
-  id: 1
-  is_done: false
-  subject: First todo
-  issue_id: 1
-
-two:
-  id: 2
-  is_done: true
-  subject: Second todo
-  issue_id: 1
-
-# === Checklist for Issue(2) ===
-section_one:
-  id: 4
-  is_done: false
-  subject: New section
-  is_section: true
-  issue_id: 2
-
-three:
-  id: 3
-  is_done: true
-  subject: Third todo
-  issue_id: 2
diff --git a/plugins/redmine_checklists/test/functional/checklists_controller_test.rb b/plugins/redmine_checklists/test/functional/checklists_controller_test.rb
deleted file mode 100644
index 855fe3c..0000000
--- a/plugins/redmine_checklists/test/functional/checklists_controller_test.rb
+++ /dev/null
@@ -1,91 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-class ChecklistsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/', [:checklists])
-
-  def setup
-    RedmineChecklists::TestCase.prepare
-    Setting.default_language = 'en'
-    Project.find(1).enable_module!(:checklists)
-    User.current = nil
-    @project_1 = Project.find(1)
-    @issue_1 = Issue.find(1)
-    @checklist_1 = Checklist.find(1)
-  end
-
-  test "should post done" do
-    # log_user('admin', 'admin')
-    @request.session[:user_id] = 1
-
-    compatible_xhr_request :put, :done, :is_done => 'true', :id => '1'
-    assert_response :success, 'Post done not working'
-    assert_equal true, Checklist.find(1).is_done, 'Post done not working'
-  end
-
-  test "should not post done by deny user" do
-    # log_user('admin', 'admin')
-    @request.session[:user_id] = 5
-
-    compatible_xhr_request :put, :done, :is_done => true, :id => "1"
-    assert_response 403, "Post done accessible for all"
-  end
-
-  test "should view issue with checklist" do
-    # log_user('admin', 'admin')
-    @request.session[:user_id] = 1
-    @controller = IssuesController.new
-    compatible_request :get, :show, :id => @issue_1.id
-    assert_select 'ul#checklist_items li#checklist_item_1', @checklist_1.subject, "Issue won't view for admin"
-  end
-
-  test "should not view issue with checklist if deny" do
-    # log_user('anonymous', '')
-    @request.session[:user_id] = 5
-    @controller = IssuesController.new
-    compatible_request :get, :show, :id => @issue_1.id
-    assert_select 'ul#checklist_items', false, "Issue view for anonymous"
-  end
-end
diff --git a/plugins/redmine_checklists/test/functional/issues_controller_test.rb b/plugins/redmine_checklists/test/functional/issues_controller_test.rb
deleted file mode 100644
index f36646b..0000000
--- a/plugins/redmine_checklists/test/functional/issues_controller_test.rb
+++ /dev/null
@@ -1,236 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-# Re-raise errors caught by the controller.
-# class HelpdeskMailerController; def rescue_action(e) raise e end; end
-
-class IssuesControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/', [:checklists])
-
-  def setup
-    @request.session[:user_id] = 1
-    RedmineChecklists::TestCase.prepare
-  end
-
-  def test_new_issue_without_project
-    compatible_request :get, :new
-    assert_response :success
-  end
-
-  def test_get_show_issue
-    issue = Issue.find(1)
-    assert_not_nil issue.checklists.first
-    compatible_request(:get, :show, :id => 1)
-    assert_response :success
-    assert_select "ul#checklist_items li#checklist_item_1", /First todo/
-    assert_select "ul#checklist_items li#checklist_item_1 input[checked=?]", "checked", { :count => 0 }
-    assert_select "ul#checklist_items li#checklist_item_2 input[checked=?]", "checked"
-  end
-
-  def test_get_edit_issue
-    compatible_request :get, :edit, :id => 1
-    assert_response :success
-  end
-
-  def test_get_copy_issue
-    compatible_request :get, :new, :project_id => 1, :copy_from => 1
-    assert_response :success
-    assert_select "span#checklist_form_items span.checklist-subject", { :count => 3 }
-    assert_select "span#checklist_form_items span.checklist-edit input[value=?]", "First todo"
-  end
-
-  def test_put_update_form
-    parameters = {:tracker_id => 2,
-                  :checklists_attributes => {
-                    "0" => {"is_done"=>"0", "subject"=>"FirstChecklist"},
-                    "1" => {"is_done"=>"0", "subject"=>"Second"}}}
-
-    @request.session[:user_id] = 1
-    issue = Issue.find(1)
-    compatible_xhr_request :put, :new, :issue => parameters, :project_id => issue.project
-    assert_response :success
-    assert_match 'text/javascript', response.content_type
-    assert_match 'FirstChecklist', response.body
-  end
-
-  def test_added_attachment_shows_in_log_once
-    Setting[:plugin_redmine_checklists] = { :save_log => 1, :issue_done_ratio => 0 }
-    set_tmp_attachments_directory
-    parameters = { :tracker_id => 2,
-                   :checklists_attributes => {
-                     '0' => { 'is_done' => '0', 'subject' => 'First' },
-                     '1' => { 'is_done' => '0', 'subject' => 'Second' } } }
-    @request.session[:user_id] = 1
-    issue = Issue.find(1)
-    compatible_request :post, :update, :issue => parameters,
-                                       :attachments => { '1' => { 'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'test file' } },
-                                       :project_id => issue.project,
-                                       :id => issue.to_param
-    assert_response :redirect
-    assert_equal 1, Journal.last.details.where(:property => 'attachment').count
-  end
-
-  def test_history_dont_show_old_format_checklists
-    Setting[:plugin_redmine_checklists] = { :save_log => 1, :issue_done_ratio => 0 }
-    @request.session[:user_id] = 1
-    issue = Issue.find(1)
-    issue.journals.create!(:user_id => 1)
-    issue.journals.last.details.create!(:property =>  'attr',
-                                        :prop_key =>  'checklist',
-                                        :old_value => '[ ] TEST',
-                                        :value =>     '[x] TEST')
-
-    compatible_request :post, :show, :id => issue.id
-    assert_response :success
-    last_journal = issue.journals.last
-    assert_equal last_journal.details.size, 1
-    assert_equal last_journal.details.first.prop_key, 'checklist'
-    assert_select "#change-#{last_journal.id} .details li", 'Checklist item changed from [ ] TEST to [x] TEST'
-  end
-
-  def test_empty_update_dont_write_to_journal
-    @request.session[:user_id] = 1
-    issue = Issue.find(1)
-    journals_before = issue.journals.count
-    compatible_request :post, :update, :issue => {}, :id => issue.to_param, :project_id => issue.project
-    assert_response :redirect
-    assert_equal journals_before, issue.reload.journals.count
-  end
-
-  def test_create_issue_without_checklists
-    @request.session[:user_id] = 1
-    assert_difference 'Issue.count' do
-      compatible_request :post, :create, :project_id => 1, :issue => { :tracker_id => 3,
-                                                                       :status_id => 2,
-                                                                       :subject => 'NEW issue without checklists',
-                                                                       :description => 'This is the description'
-                                                                     }
-    end
-    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
-
-    issue = Issue.find_by_subject('NEW issue without checklists')
-    assert_not_nil issue
-  end
-
-  def test_create_issue_with_checklists
-    @request.session[:user_id] = 1
-    assert_difference 'Issue.count' do
-      compatible_request :post, :create, :project_id => 1, :issue => { :tracker_id => 3,
-                                                                       :status_id => 2,
-                                                                       :subject => 'NEW issue with checklists',
-                                                                       :description => 'This is the description',
-                                                                       :checklists_attributes => { '0' => { 'is_done' => '0', 'subject' => 'item 001', 'position' => '1' } }
-                                                                     }
-    end
-    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
-
-    issue = Issue.find_by_subject('NEW issue with checklists')
-    assert_equal 1, issue.checklists.count
-    assert_equal 'item 001', issue.checklists.last.subject
-    assert_not_nil issue
-  end
-
-  def test_delete_issue_with_checklists
-    @request.session[:user_id] = 1
-    other_checklist = Checklist.first
-    other_checklist.update(position: 2)
-
-    assert_difference('Issue.count', -1) do
-      assert_difference('Checklist.count', -2) do
-        compatible_request :post, :destroy, id: '2'
-        assert_response :redirect
-      end
-    end
-    assert_equal other_checklist.position, other_checklist.reload.position
-  end
-
-  def test_create_issue_using_json
-    old_value = Setting.rest_api_enabled
-    Setting.rest_api_enabled = '1'
-    @request.session[:user_id] = 1
-    assert_difference 'Issue.count' do
-      compatible_request :post, :create, :format => :json, :project_id => 1, :issue => { :tracker_id => 3,
-                                                                                         :status_id => 2,
-                                                                                         :subject => 'NEW JSON issue',
-                                                                                         :description => 'This is the description',
-                                                                                         :checklists_attributes => [{ :is_done => 0, :subject => 'JSON checklist' }]
-                                                                                       },
-                                                                             :key => User.find(1).api_key
-    end
-    assert_response :created
-
-    issue = Issue.find_by_subject('NEW JSON issue')
-    assert_not_nil issue
-    assert_equal 1, issue.checklists.count
-  ensure
-    Setting.rest_api_enabled = old_value
-  end
-
-  def test_history_displaying_for_checklist
-    @request.session[:user_id] = 1
-    Setting[:plugin_redmine_checklists] = { save_log: 1, issue_done_ratio: 0 }
-
-    issue = Issue.find(1)
-    journal = issue.journals.create!(user_id: 1)
-    journal.details.create!(:property =>  'attr',
-                            :prop_key =>  'checklist',
-                            :old_value => '[ ] TEST',
-                            :value =>     '[x] TEST')
-
-    # With permissions
-    @request.session[:user_id] = 1
-    compatible_request :get, :show, id: issue.id
-    assert_response :success
-    assert_include 'changed from [ ] TEST to [x] TEST', response.body
-
-    # Without permissions
-    @request.session[:user_id] = 5
-    compatible_request :get, :show, id: issue.id
-    assert_response :success
-    assert_not_include 'changed from [ ] TEST to [x] TEST', response.body
-  end
-end
diff --git a/plugins/redmine_checklists/test/integration/api_test/checklists_test.rb b/plugins/redmine_checklists/test/integration/api_test/checklists_test.rb
deleted file mode 100644
index 6d7bc56..0000000
--- a/plugins/redmine_checklists/test/integration/api_test/checklists_test.rb
+++ /dev/null
@@ -1,166 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../../test_helper', __FILE__)
-
-class Redmine::ApiTest::ChecklistsTest < Redmine::ApiTest::Base
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/', [:checklists])
-
-  def setup
-    Setting.rest_api_enabled = '1'
-  end
-
-  def test_get_checklists_xml
-    compatible_api_request :get, '/issues/1/checklists.xml', {}, credentials('admin')
-
-    assert_select 'checklists[type=array]' do
-      assert_select 'checklist' do
-        assert_select 'id', :text => '1'
-        assert_select 'subject', :text => 'First todo'
-      end
-    end
-  end
-
-  def test_get_checklists_with_section_xml
-    compatible_api_request :get, '/issues/2/checklists.xml', {}, credentials('admin')
-
-    assert_select 'checklists[type=array]' do
-      assert_select 'checklist' do
-        assert_select 'id', :text => '4'
-        assert_select 'subject', :text => 'New section'
-        assert_select 'is_section', :text => 'true'
-      end
-    end
-  end
-
-  def test_get_checklists_1_xml
-    compatible_api_request :get, '/checklists/1.xml', {}, credentials('admin')
-
-    assert_select 'checklist' do
-      assert_select 'id', :text => '1'
-      assert_select 'subject', :text => 'First todo'
-    end
-  end
-
-  def test_get_checklists_2_with_section_xml
-    compatible_api_request :get, '/checklists/4.xml', {}, credentials('admin')
-
-    assert_select 'checklist' do
-      assert_select 'id', :text => '4'
-      assert_select 'subject', :text => 'New section'
-      assert_select 'is_section', :text => 'true'
-    end
-  end
-
-  def test_checklists_2_should_not_section_xml
-    compatible_api_request :get, '/checklists/3.xml', {}, credentials('admin')
-
-    assert_select 'checklist' do
-      assert_select 'id', :text => '3'
-      assert_select 'subject', :text => 'Third todo'
-      assert_select 'is_section', :text => 'false'
-    end
-  end
-
-  def test_post_checklists_xml
-    parameters = { :checklist => { :issue_id => 1,
-                                   :subject => 'api_test_001',
-                                   :is_done => true } }
-    assert_difference('Checklist.count') do
-      compatible_api_request :post, '/issues/1/checklists.xml', parameters, credentials('admin')
-    end
-
-    checklist = Checklist.order('id DESC').first
-    assert_equal parameters[:checklist][:subject], checklist.subject
-
-    assert_response :created
-    assert_match 'application/xml', @response.content_type
-    assert_select 'checklist id', :text => checklist.id.to_s
-  end
-
-  def test_put_checklists_1_xml
-    parameters = { :checklist => { subject: 'Item_UPDATED', is_done: '1' } }
-
-    assert_no_difference('Checklist.count') do
-      compatible_api_request :put, '/checklists/1.xml', parameters, credentials('admin')
-    end
-
-    checklist = Checklist.find(1)
-    assert_equal parameters[:checklist][:subject], checklist.subject
-  end
-
-  def test_recalculate_ratio_after_multirequests
-    issue = Issue.find(1)
-    with_checklists_settings('issue_done_ratio' => '1') do
-      assert_equal 0, issue.reload.done_ratio
-
-      parameters_array = [
-        [1, { :checklist => { subject: 'Item 1', is_done: '1' } }],
-        [2, { :checklist => { subject: 'Item 2', is_done: '1' } }],
-        [1, { :checklist => { subject: 'Item 1', is_done: '0' } }],
-        [2, { :checklist => { subject: 'Item 2', is_done: '1' } }]
-      ]
-
-      assert_no_difference('Checklist.count') do
-        parameters_array.each do |params|
-          compatible_api_request :put, "/checklists/#{params[0]}.xml", params[1], credentials('admin')
-          assert ['200', '204'].include?(response.code)
-        end
-      end
-
-      assert_equal 50, issue.reload.done_ratio
-    end
-  end
-
-  def test_delete_1_xml
-    assert_difference 'Checklist.count', -1 do
-      compatible_api_request :delete, '/checklists/1.xml', {}, credentials('admin')
-    end
-
-    assert ['200', '204'].include?(response.code)
-    assert_equal '', @response.body
-    assert_nil Checklist.find_by_id(1)
-  end
-end
diff --git a/plugins/redmine_checklists/test/integration/common_issue_test.rb b/plugins/redmine_checklists/test/integration/common_issue_test.rb
deleted file mode 100644
index 458c628..0000000
--- a/plugins/redmine_checklists/test/integration/common_issue_test.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-class CommonIssueTest < RedmineChecklists::IntegrationTest
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/', [:checklists])
-
-  def setup
-    RedmineChecklists::TestCase.prepare
-    Setting.default_language = 'en'
-    @project_1   = Project.find(1)
-    @issue_1     = Issue.find(1)
-    @checklist_1 = Checklist.find(1)
-  end
-
-  def test_global_search_with_checklist
-    log_user('admin', 'admin')
-    compatible_request :get, '/search?q=First'
-    assert_response :success
-  end
-end
diff --git a/plugins/redmine_checklists/test/test_helper.rb b/plugins/redmine_checklists/test/test_helper.rb
deleted file mode 100644
index 39fc8e9..0000000
--- a/plugins/redmine_checklists/test/test_helper.rb
+++ /dev/null
@@ -1,86 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper')
-
-module RedmineChecklists
-  module TestHelper
-    def compatible_request(type, action, parameters = {})
-      return send(type, action, :params => parameters) if Rails.version >= '5.1'
-      send(type, action, parameters)
-    end
-
-    def compatible_xhr_request(type, action, parameters = {})
-      return send(type, action, :params => parameters, :xhr => true) if Rails.version >= '5.1'
-      xhr type, action, parameters
-    end
-
-    def compatible_api_request(type, action, parameters = {}, headers = {})
-      return send(type, action, :params => parameters, :headers => headers) if Redmine::VERSION.to_s >= '3.4'
-      send(type, action, parameters, headers)
-    end
-
-    def issues_in_list
-      ids = css_select('tr.issue td.id a').map { |tag| tag.to_s.gsub(/<.*?>/, '') }.map(&:to_i)
-      Issue.where(:id => ids).sort_by { |issue| ids.index(issue.id) }
-    end
-
-    def with_checklists_settings(options, &block)
-      original_settings = Setting.plugin_redmine_checklists
-      Setting.plugin_redmine_checklists = original_settings.merge(Hash[options.map {|k,v| [k, v]}])
-      yield
-    ensure
-      Setting.plugin_redmine_checklists = original_settings
-    end
-  end
-end
-
-include RedmineChecklists::TestHelper
-
-class RedmineChecklists::IntegrationTest < Redmine::IntegrationTest; end
-
-class RedmineChecklists::TestCase
-  def self.create_fixtures(fixtures_directory, table_names, class_names = {})
-    ActiveRecord::FixtureSet.create_fixtures(fixtures_directory, table_names, class_names = {})
-  end
-
-  def self.prepare
-    Role.find([1,2]).each do |r| # For anonymous
-      r.permissions << :view_checklists
-      r.save
-    end
-
-    Role.find(1, 2, 3, 4).each do |r|
-      r.permissions << :edit_checklists
-      r.save
-    end
-
-    Role.find(3, 4).each do |r|
-      r.permissions << :done_checklists
-      r.save
-    end
-
-    Role.find([2]).each do |r|
-      r.permissions << :manage_checklist_templates
-      r.save
-    end
-  end
-end
diff --git a/plugins/redmine_checklists/test/unit/checklist_test.rb b/plugins/redmine_checklists/test/unit/checklist_test.rb
deleted file mode 100644
index 8034beb..0000000
--- a/plugins/redmine_checklists/test/unit/checklist_test.rb
+++ /dev/null
@@ -1,138 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class ChecklistTest < ActiveSupport::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/', [:checklists])
-  def setup
-    RedmineChecklists::TestCase.prepare
-    Setting.default_language = 'en'
-    @project_1 = Project.find(1)
-    @issue_1 = Issue.create(:project_id => 1, :tracker_id => 1, :author_id => 1,
-                            :status_id => 1, :priority => IssuePriority.first,
-                            :subject => 'Invoice Issue 1')
-    @checklist_1 = Checklist.create(:subject => 'TEST1', :position => 1, :issue => @issue_1)
-  end
-
-  test "should save checklist" do
-    assert @checklist_1.save, "Checklist save error"
-  end
-
-  test "should not save checklist without subject" do
-    @checklist_1.subject = nil
-    assert !@checklist_1.save, "Checklist save with nil subject"
-  end
-
-  test "should not save checklist without position" do
-    @checklist_1.position = nil
-    assert !@checklist_1.save, "Checklist save with nil position"
-  end
-
-  test "should not save checklist with non integer position" do
-    @checklist_1.position = "string"
-    assert !@checklist_1.save, "Checklist save with non ingeger position"
-  end
-
-  test "should return project info" do
-    assert_equal @project_1, @checklist_1.project, "Helper project broken"
-  end
-
-  test "should return info about checklist" do
-    assert_equal "[ ] #{@checklist_1.subject}", @checklist_1.info, "Helper info broken"
-    @checklist_1.is_done = 1
-    assert_equal "[x] #{@checklist_1.subject}", @checklist_1.info, "Helper info broken"
-  end
-
-  def test_should_correct_recalculate_rate
-    issues = [
-      [Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 1, priority: IssuePriority.first, subject: "TI #1", done_ratio: 0,
-                    checklists_attributes: {
-                      '0' => { subject: 'item 1', is_done: false },
-                      '1' => { subject: 'item 2', is_done: false },
-                      '2' => { subject: 'item 3', is_done: true },
-                    }),
-       30],
-      [Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 1, priority: IssuePriority.first, subject: "TI #2", done_ratio: 0,
-                    checklists_attributes: {
-                      '0' => { subject: 'item 1', is_done: false },
-                      '1' => { subject: 'item 2', is_done: true },
-                      '2' => { subject: 'item 3', is_done: true },
-                    }),
-       60],
-       [Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 1, priority: IssuePriority.first, subject: "TI #3", done_ratio: 0,
-                     checklists_attributes: {
-                       '0' => { subject: 'item 1', is_done: true },
-                       '1' => { subject: 'item 2', is_done: true },
-                       '2' => { subject: 'item 3', is_done: true },
-                     }),
-       100],
-       [Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 1, priority: IssuePriority.first, subject: "TI #4", done_ratio: 0,
-                     checklists_attributes: {
-                       '0' => { subject: 'item 1', is_done: false },
-                       '1' => { subject: 'item 2', is_done: false },
-                       '2' => { subject: 'section 1', is_done: true, is_section: true },
-                       '3' => { subject: 'item 3', is_done: true },
-                     }),
-       30],
-       [Issue.create(project_id: 1, tracker_id: 1, author_id: 1, status_id: 1, priority: IssuePriority.first, subject: "TI #5", done_ratio: 0,
-        checklists_attributes: {
-          '0' => { subject: 'section 1', is_done: true, is_section: true }
-        }),
-       0]
-    ]
-
-    with_checklists_settings('issue_done_ratio' => '1') do
-      issues.each do |issue, after_ratio|
-        assert_equal 0, issue.done_ratio
-        Checklist.recalc_issue_done_ratio(issue.id)
-        issue.reload
-        assert_equal after_ratio, issue.done_ratio
-      end
-    end
-  ensure
-    issues.each { |issue, ratio| issue.destroy }
-  end
-end
diff --git a/plugins/redmine_checklists/test/unit/issue_test.rb b/plugins/redmine_checklists/test/unit/issue_test.rb
deleted file mode 100644
index 87fe01f..0000000
--- a/plugins/redmine_checklists/test/unit/issue_test.rb
+++ /dev/null
@@ -1,85 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-include RedmineChecklists::TestHelper
-
-class IssueTest < ActiveSupport::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/', [:checklists])
-  def setup
-    RedmineChecklists::TestCase.prepare
-    Setting.default_language = 'en'
-    @project = Project.find(1)
-    @issue = Issue.create(:project => @project, :tracker_id => 1, :author_id => 1,
-                          :status_id => 1, :priority => IssuePriority.first,
-                          :subject => 'TestIssue')
-    @checklist_1 = Checklist.create(:subject => 'TEST1', :position => 1, :issue => @issue)
-    @checklist_2 = Checklist.create(:subject => 'TEST2', :position => 2, :issue => @issue, :is_done => true)
-    @issue.reload
-  end
-
-  def test_issue_shouldnt_close_when_it_has_unfinished_checklists
-    with_checklists_settings('block_issue_closing' => '1') do
-      @issue.status_id = 5
-      assert !@issue.valid?
-    end
-  end
-
-  def test_validation_should_be_ignored_if_setting_disabled
-    with_checklists_settings('block_issue_closing' => '0') do
-      @issue.status_id = 5
-      assert @issue.valid?
-    end
-  end
-
-  def test_issue_should_close_when_all_checklists_finished
-    with_checklists_settings('block_issue_closing' => '1') do
-      @checklist_1.update(is_done: true)
-      assert @issue.valid?
-    end
-  ensure
-    @checklist_1.update(is_done: false)
-  end
-end
diff --git a/plugins/redmine_checklists/test/unit/project_test.rb b/plugins/redmine_checklists/test/unit/project_test.rb
deleted file mode 100644
index d32ff14..0000000
--- a/plugins/redmine_checklists/test/unit/project_test.rb
+++ /dev/null
@@ -1,73 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Checklists (redmine_checklists) plugin,
-# issue checklists management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_checklists is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_checklists is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_checklists.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class ProjectTest < ActiveSupport::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries,
-           :journals,
-           :journal_details,
-           :queries
-
-  RedmineChecklists::TestCase.create_fixtures(Redmine::Plugin.find(:redmine_checklists).directory + '/test/fixtures/',
-                                         [:checklists])
-  def setup
-    RedmineChecklists::TestCase.prepare
-    Setting.default_language = 'en'
-    @project_1 = Project.find(1)
-    @issue_1 = Issue.create(:project => @project_1, :tracker_id => 1, :author_id => 1,
-                            :status_id => 1, :priority => IssuePriority.first,
-                            :subject => 'TestIssue')
-    @checklist_1 = Checklist.create(:subject => 'TEST1', :position => 1, :issue => @issue_1)
-    @checklist_1 = Checklist.create(:subject => 'TEST2', :position => 2, :issue => @issue_1, :is_done => true)
-  end
-
-  test 'should copy checklists' do
-    project_copy = Project.copy_from(Project.find(1))
-    project_copy.name = 'Test name'
-    project_copy.identifier = Project.next_identifier
-    project_copy.copy(Project.find(1))
-
-    checklists_copies = project_copy.issues.where(:subject => 'TestIssue').first.checklists
-    assert_equal(checklists_copies.count, 2)
-    assert_equal(checklists_copies.where(:subject => 'TEST1').first.is_done, false)
-    assert_equal(checklists_copies.where(:subject => 'TEST2').first.is_done, true)
-  end
-end
diff --git a/plugins/redmine_monitoring_controlling/README.rdoc b/plugins/redmine_monitoring_controlling/README.rdoc
deleted file mode 100644
index 48cb1a5..0000000
--- a/plugins/redmine_monitoring_controlling/README.rdoc
+++ /dev/null
@@ -1,53 +0,0 @@
-= Monitoring & Controlling (M&C) - Redmine Plugin
-
-M&C is a Redmine Plugin used as a chart tool to monitoring issues' project 
-
-== Website - Portuguese only
-
-* Visite: Monitoramento-&-Controle[http://alexmonteiro.github.com/Redmine-Monitoring-Controlling]
-
-== Features
-===Master Version (0.1.2) (Redmine 1.4.x or 2.0.x)
-====Release notes
-* Included progress bar on top right
-* Refactoring menu structure
-* Scrollbar on Time Management charts
-====Task Management
-* Pie and Bar Chart of issues by category;
-* Pie Chart of issues by statuses;
-* Pie Chart of manageable and unmanagleabe issues;
-* Chart with overdue tasks by project.
-====Time Management
-* Line chart with estimated hours and spent hours till due date of tasks.
-* Column chart with ammount of estimated and spent hours on project.
-====Human Resource Management
-* Column Bar charts issues by Assignee
-* Column Bar chart with issues by Status of each Assignee
-
-== How to install 
-
-=== Requirements
-
-* Redmine trunk version;
-
-=== Step-by-step
-
-* Copy or clone the app on Redmine plugin folder with the same name like: /vendor/plugins/redmine_monitoring_controlling
-    
-    cd /{redmineInstalationDir}/vendor/plugins
-    git clone https://github.com/alexmonteiro/Redmine-Monitoring-Controlling.git redmine_monitoring_controlling
-    
-* Run 
-	rake db:migrate_plugins to copy the assets.
-* Restart your redmine application.
-* Activate your M&C on projects modulues.
-
-== License
- 
-Redmine Monitoring & Controlling Plugin is open source and released under the terms of the {GNU General Public License - GPL - v3}[https://github.com/alexmonteiro/Redmine-Monitoring-Controlling/blob/master/license.txt].
-Check {GNU GPL v3 quick guide}[http://www.gnu.org/licenses/quick-guide-gplv3.html] for more information.
-
-== Credits
-
-* Highcharts[http://www.highcharts.com/]: interactive javascript charts for your web projects;
-* Railscasts[http://railscasts.com/]: learn how to use highcharts on your rails app in #223[http://railscasts.com/episodes/223-charts] episode.
diff --git a/plugins/redmine_monitoring_controlling/app/controllers/home_monitoring_controlling_project_controller.rb b/plugins/redmine_monitoring_controlling/app/controllers/home_monitoring_controlling_project_controller.rb
deleted file mode 100644
index acba51f..0000000
--- a/plugins/redmine_monitoring_controlling/app/controllers/home_monitoring_controlling_project_controller.rb
+++ /dev/null
@@ -1,119 +0,0 @@
-class HomeMonitoringControllingProjectController < ApplicationController
-  unloadable
-
-  layout 'base'
-  before_action :find_project, :authorize
-  menu_item :redmine_monitoring_controlling
-
-  def index
-    #tool instance
-    tool = McTools.new
-
-    #get main project
-    @project = Project.find_by_identifier(params[:id])
-
-    #get projects and sub projects
-    stringSqlProjectsSubProjects = tool.return_ids(@project.id)
-
-    @projects_subprojects = Project.find_by_sql("select * from projects where id in (#{stringSqlProjectsSubProjects});")
-    @all_project_issues = Issue.find_by_sql("select * from issues where project_id in (#{stringSqlProjectsSubProjects});")
-
-    # total issues from the project and subprojects
-    @totalIssues = Issue.where(:project_id => [stringSqlProjectsSubProjects]).count
-
-    #get count of issues by category
-    @issuesbycategory = IssueStatus.find_by_sql(["select trackers.name, trackers.position, count(*) as totalbycategory,
-                                                (select count(*)
-                                                 from issues
-                                                 where project_id in (#{stringSqlProjectsSubProjects})
-                                                 and issues.tracker_id = trackers.id
-                                                 and status_id in (select id from issue_statuses where is_closed = ?)
-
-                                                ) as totaldone,
-                                                (select count(*)
-                                                 from issues
-                                                 where project_id in (#{stringSqlProjectsSubProjects})
-                                                 and issues.tracker_id = trackers.id
-                                                 and status_id in (select id from issue_statuses where is_closed = ?)
-
-                                                ) as totalundone
-                                                from trackers, projects_trackers, issues
-                                                where projects_trackers.tracker_id = trackers.id
-                                                and projects_trackers.project_id = issues.project_id
-                                                and issues.tracker_id = trackers.id
-                                                and projects_trackers.project_id in (#{stringSqlProjectsSubProjects})
-                                                group by trackers.id, trackers.name, trackers.position
-                                                order by 2;", true, false])
-
-
-    #get statuses by main project and subprojects
-    if @totalIssues > 0
-      @statuses = IssueStatus.find_by_sql("SELECT *,
-                                            ((SELECT COUNT(1) FROM issues where project_id in (#{stringSqlProjectsSubProjects}) and status_id = issue_statuses.id)
-                                            /
-                                            #{@totalIssues})*100 as percent,
-                                            (SELECT COUNT(1) FROM issues where project_id in (#{stringSqlProjectsSubProjects}) and status_id = issue_statuses.id)
-                                            AS totalissues
-                                            FROM issue_statuses;")
-    else
-      @statuses = nil
-    end
-
-    #get management issues by main project
-    @managementissues = Issue.find_by_sql("select 1 as id, '#{t :manageable_label}' as typemanagement, count(1) as totalissues
-                                                from issues where project_id in (#{stringSqlProjectsSubProjects}) and due_date is not null
-                                                union
-                                                select 2 as id, '#{t :unmanageable_label}' as typemanagement, count(1) as totalissues
-                                                from issues where project_id in (#{stringSqlProjectsSubProjects}) and due_date is null;")
-
-
-    #get overdue issues for char by by project and subprojects
-    @overdueissueschart = Issue.find_by_sql(["select 2 as id, '#{t :overdue_label}' as typeissue, count(1) as totalissuedelayed
-                                                  from issues
-                                                  where project_id in (#{stringSqlProjectsSubProjects})
-                                                  and due_date is not null
-                                                  and due_date <  '#{Date.today}'
-                                                  and status_id in (select id from issue_statuses where is_closed = ?)
-                                                  union
-                                                  select 1 as id, '#{t :delivered_label}' as typeissue, count(1) as totalissuedelayed
-                                                  from issues
-                                                  where project_id in (#{stringSqlProjectsSubProjects})
-                                                  and due_date is not null
-                                                  and due_date < '#{Date.today}'
-                                                  and status_id in (select id from issue_statuses where is_closed = ?)
-                                                  union
-                                                  select 3 as id, '#{t :tobedelivered_label}' as typeissue, count(1) as totalissuedelayed
-                                                  from issues
-                                                  where project_id in (#{stringSqlProjectsSubProjects})
-                                                  and due_date is not null
-                                                  and due_date >= '#{Date.today}'
-                                                  and status_id in (select id from issue_statuses where is_closed = ?)
-                                                  order by 1;", false, true, false])
-
-
-    #get overdueissues by project and subprojects
-    @overdueissues   =   Issue.find_by_sql(["select *
-                                                    from issues
-                                                    where project_id in (#{stringSqlProjectsSubProjects})
-                                                    and due_date is not null
-                                                    and due_date < '#{Date.today}'
-                                                    and status_id in (select id from issue_statuses where is_closed = ? )
-                                                    order by due_date;",false])
-
-    #get unmanagement issues by main project
-    @unmanagementissues = Issue.find_by_sql("select *
-                                             from issues where project_id in (#{stringSqlProjectsSubProjects})
-                                             and due_date is null
-                                             order by 1;")
-
-
-
-
-
-  end
-
-  private
-  def find_project
-    @project=Project.find(params[:id])
-  end
-end
diff --git a/plugins/redmine_monitoring_controlling/app/controllers/mc_human_resource_mgmt_project_controller.rb b/plugins/redmine_monitoring_controlling/app/controllers/mc_human_resource_mgmt_project_controller.rb
deleted file mode 100644
index f7fad67..0000000
--- a/plugins/redmine_monitoring_controlling/app/controllers/mc_human_resource_mgmt_project_controller.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-class McHumanResourceMgmtProjectController < ApplicationController
-  unloadable
-
-  layout 'base'
-  before_action :find_project, :authorize
-  menu_item :redmine_monitoring_controlling
-
-  def index
-    #tool instance
-    tool = McTools.new
-
-    #get main project
-    @project = Project.find_by_identifier(params[:id])
-
-    #get projects and sub projects
-    stringSqlProjectsSubProjects = tool.return_ids(@project.id)
-
-    # total issues from the project and subprojects
-    @totalIssues = Issue.where(:project_id => [stringSqlProjectsSubProjects]).count
-
-    @statusesByAssigneds = Issue.find_by_sql("select assigned_to_id, (select firstname from users where id = assigned_to_id) as assigned_first_name, (select lastname from users where id = assigned_to_id) as assigned_last_name,
-                                              issue_statuses.id, issue_statuses.name,
-                                         	    (select COUNT(1)
-                                               from issues i
-                                               where i.project_id in (#{stringSqlProjectsSubProjects})
-                                               and ((i.assigned_to_id = issues.assigned_to_id and i.assigned_to_id is not null)or(i.assigned_to_id is null and issues.assigned_to_id is null)) and i.status_id = issue_statuses.id) as totalassignedbystatuses
-                                               from issues, issue_statuses
-                                               where project_id in (#{stringSqlProjectsSubProjects})
-                                               group by assigned_to_id, assigned_first_name, assigned_last_name, issue_statuses.id, issue_statuses.name
-                                               order by 2,3;")  || nil
-  end
-
-  private
-  def find_project
-    @project=Project.find(params[:id])
-  end
-
-
-end
diff --git a/plugins/redmine_monitoring_controlling/app/controllers/mc_time_mgmt_project_controller.rb b/plugins/redmine_monitoring_controlling/app/controllers/mc_time_mgmt_project_controller.rb
deleted file mode 100644
index 0d21b85..0000000
--- a/plugins/redmine_monitoring_controlling/app/controllers/mc_time_mgmt_project_controller.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-class McTimeMgmtProjectController < ApplicationController
-  unloadable
-
-  layout 'base'
-  before_action :find_project, :authorize
-  menu_item :redmine_monitoring_controlling
-
-  def index
-    #tool instance
-    tool = McTools.new
-
-    #get main project
-    @project = Project.find_by_identifier(params[:id])
-
-    #get projects and sub projects
-    stringSqlProjectsSubProjects = tool.return_ids(@project.id)
-
-    # total issues from the project and subprojects
-    @totalIssues = Issue.where(:project_id => [stringSqlProjectsSubProjects]).count
-
-
-    @issuesSpentHours = Issue.find_by_sql("select issues.due_date, sum(issues.estimated_hours) as estimated_hours,
-                                                  (select sum(i.estimated_hours)
-                                                  from issues i
-                                                  where i.project_id in (#{stringSqlProjectsSubProjects})
-                                                  /*and i.due_date is not null*/
-                                                  and i.due_date <= issues.due_date and i.parent_id is null) as sumestimatedhours,
-                                                  (select sum(hours) from time_entries where project_id in (#{stringSqlProjectsSubProjects}) and spent_on <= issues.due_date ) as sumspenthours
-                                                  from issues
-                                                  where issues.project_id in (#{stringSqlProjectsSubProjects})
-                                            /*and due_date is not null*/
-                                            and due_date <= issues.due_date
-                                            and parent_id is null
-                                            group by issues.due_date
-                                            order by due_date;")
-
-
-    @spentHoursByVersion = Issue.find_by_sql("select versions.name as version, versions.effective_date, sum(issues.estimated_hours) as estimated_hours,
-                                             (select sum(i.estimated_hours)
-                                              from issues i
-                                              where i.project_id in (#{stringSqlProjectsSubProjects})
-                                              and i.fixed_version_id = versions.id
-                                              /*and i.due_date is not null*/
-                                              and i.parent_id is null
-                                              and i.due_date <= versions.effective_date) as sumestimatedhours,
-                                             (select sum(hours)
-                                              from issues i, time_entries t
-                                              where i.project_id in (#{stringSqlProjectsSubProjects})
-                                              and i.project_id = t.project_id
-                                              and i.id = t.issue_id
-                                              and i.fixed_version_id = versions.id
-                                              and t.spent_on <= versions.effective_date) as sumspenthours
-                                             from issues, versions
-                                             where issues.project_id in (#{stringSqlProjectsSubProjects})
-                                             and issues.parent_id is null
-                                             and issues.fixed_version_id = versions.id
-                                             and due_date <= versions.effective_date
-                                             group by versions.id, versions.name, versions.effective_date
-                                             order by versions.effective_date;")
-
-
-  end
-
-  private
-  def find_project
-    @project=Project.find(params[:id])
-  end
-
-
-end
diff --git a/plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/_index.html.erb b/plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/_index.html.erb
deleted file mode 100644
index ad57cbf..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/_index.html.erb
+++ /dev/null
@@ -1,342 +0,0 @@
-<!--
-Tasks by Statuses / Situação por Tarefas 
--->
-<script type="text/javascript">
-$(function () {
-    var chart;
-    $(document).ready(function() {
-        chart = new Highcharts.Chart({
-			credits: {
-	 		  enabled: false
-			},
-            chart: {
-                renderTo: 'container',
-                plotBackgroundColor: null,
-                plotBorderWidth: null,
-                plotShadow: false
-            },
-            title: {
-                text: '<%=@project.name%>'
-            },
-            tooltip: {
-                formatter: function() {
-                    return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.y,0) +' <%=t :tasks_label%>';
-                }
-            },
-            plotOptions: {
-                pie: {
-                    allowPointSelect: true,
-                    cursor: 'pointer',
-                    dataLabels: {
-                        enabled: true,
-                        color: '#000000',
-                        connectorColor: '#000000',
-                        formatter: function() {
-                            return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.percentage,2) +' %';
-                        }
-                    }
-                }
-            },
-            series: [{
-                type: 'pie',
-                data: <%=@statuses.map{ |situacao| [situacao.name.to_s, situacao.totalissues.to_i]}.inspect.html_safe%>
-            }]
-        });
-    });
-    
-});
-
-</script>
-<script type="text/javascript">
-var chart;
-$(document).ready(function() {
-	chart = new Highcharts.Chart({
-     	credits: {
- 		  enabled: false
-		},		
-		chart: {
-			renderTo: 'containerColumn',
-			type: 'column'
-		},
-		title: {
-			text: '<%=t :statuses_issue_label_title %>'
-		},
-		xAxis: {
-			categories: <%=@statuses.map{ |situacao| situacao.name.to_s}.inspect.html_safe%>,
-			labels: {enabled: false}
-		},
-		yAxis: {
-			min: 0,
-			title: {
-				text: '<%=t :tasks_label%> ',
-			}
-		},
-		legend: {
-			enabled: true
-		},
-		tooltip: {
-			formatter: function() {
-				return '<b>'+ this.series.name +'</b><br/>'+
-					'<%=t :tasks_label%> '+ Highcharts.numberFormat(this.y, 0);
-			}
-		},
-        series: [
-                <%@statuses.each do |cat|%>
-                {
-                        name: <%=cat.name.inspect.html_safe%>,
-                        data: [<%=cat.totalissues%>],
-                        cursor: 'pointer',
-                        events: {
-                                // Default action for (left) clicking the data
-                                click: function(point) {
-                                        window.open('../../projects/<%=@project.identifier%>/issues?set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=%3D&v%5Bstatus_id%5D%5B%5D=<%=cat.id%>&f%5B%5D=&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=author&c%5B%5D=assigned_to&c%5B%5D=start_date&c%5B%5D=due_date&c%5B%5D=spent_hours&c%5B%5D=done_ratio&group_by=');
-                                }
-                        },
-                   dataLabels: {
-                                                        enabled: true,
-                                                        rotation: -90,
-                                                        color: '#FFFFFF',
-                                                        align: 'right',
-                                                        x: -3,
-                                                        y: 10,
-                                                        formatter: function() {
-                                                                return this.y;
-                                                        },
-                                                        style: {
-                                                                font: 'normal 13px Verdana, sans-serif'
-                                                        }
-                                                }
-                  }<%if !(@statuses.last == cat)%>,<%end%>
-                 <%end%>
-                ]
-	});
-});
-</script>
-
-<!--
- Task Management / Gerenciamento de Tarefas
--->
-<script type="text/javascript">
-$(function () {
-    var chart;
-    $(document).ready(function() {
-        chart = new Highcharts.Chart({
-	     	credits: {
-	 		  enabled: false
-			},
-            chart: {
-                renderTo: 'managementissues',
-                plotBackgroundColor: null,
-                plotBorderWidth: null,
-                plotShadow: false
-            },
-            title: {
-                text: '<%=t :task_manageable_chart_title %>'
-            },
-            tooltip: {
-                formatter: function() {
-                    return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.y,0)+ ' <%=t :tasksof_label%> '+<%= @project.issues.count %>;
-                }
-            },
-            plotOptions: {
-                pie: {
-                    allowPointSelect: true,
-                    cursor: 'pointer',
-					showInLegend: true,
-                    dataLabels: {
-                        enabled: true,
-                        color: '#000000',
-                        connectorColor: '#000000',
-						distance: 0,
-                        formatter: function() {
-                            return Highcharts.numberFormat(this.percentage,2) +' %';
-                        }
-                    }
-                }
-            },
-            series: [{
-                type: 'pie',
-                name: 'Tarefas por Situação',
-                data: <%=@managementissues.map{ |issue| [issue.typemanagement.to_s, issue.totalissues.to_i]}.inspect.html_safe%>
-            }]
-        });
-    });
-    
-});
-</script>
-
-<script type="text/javascript">
-$(function () {
-    var chart;
-    $(document).ready(function() {
-        chart = new Highcharts.Chart({
-	     	credits: {
-	 		  enabled: false
-			},
-            chart: {
-                renderTo: 'delayedissues',
-                plotBackgroundColor: null,
-                plotBorderWidth: null,
-                plotShadow: false
-            },
-            title: {
-                text: '<%=t :task_manageable_chart_overdue_title %>'
-            },
-            tooltip: {
-                formatter: function() {
-                    return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.y,0)+ ' <%=t :tasksof_label%> '+<%= @managementissues.first.totalissues %>+' <%=t :manageable_label%>';
-                }
-            },
-            plotOptions: {
-                pie: {
-                    allowPointSelect: true,
-                    cursor: 'pointer',
-					showInLegend: true,
-                    dataLabels: {
-                        enabled: true,
-                        color: '#000000',
-                        connectorColor: '#000000',
-						distance: 0,
-                        formatter: function() {
-                            return Highcharts.numberFormat(this.percentage,2) +' %';
-                        }
-                    }
-                }
-            },
-            series: [{
-                type: 'pie',
-                name: 'Tarefas atrasadas',
-                data: <%=@overdueissueschart.map{ |issue| [issue.typeissue.to_s, issue.totalissuedelayed.to_i]}.inspect.html_safe%>
-            }]
-        });
-    });
-    
-});
-
-</script>
-
-<script type="text/javascript">
-$(function () {
-    var chart;
-    $(document).ready(function() {
-        chart = new Highcharts.Chart({
-			credits: {
-	 		  enabled: false
-			},
-            chart: {
-                renderTo: 'categoryPie',
-                plotBackgroundColor: null,
-                plotBorderWidth: null,
-                plotShadow: false
-            },
-            title: {
-                text: '<%=@project.name%>'
-            },
-            tooltip: {
-                formatter: function() {
-                    return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.y,0) +' <%=t :tasks_label%>';
-                }
-            },
-            plotOptions: {
-                pie: {
-                    allowPointSelect: true,
-                    cursor: 'pointer',
-                    dataLabels: {
-                        enabled: true,
-                        color: '#000000',
-                        connectorColor: '#000000',
-                        formatter: function() {
-                            return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.percentage,2) +' %';
-                        }
-                    }
-                }
-            },
-            series: [{
-                type: 'pie',
-                data: <%=@issuesbycategory.map{ |category| [category.name.to_s, category.totalbycategory.to_i]}.inspect.html_safe%>
-            }]
-        });
-    });
-    
-});
-</script>
-
-<script type="text/javascript">
-var chart;
-$(document).ready(function() {
-	chart = new Highcharts.Chart({
-		chart: {
-			renderTo: 'categoryStackedColumn',
-			type: 'column'
-		},
-		title: {
-			text: '<%=@project.name%>'
-		},
-		subtitle: {
-			text: '<%=t :categories_issue_label_title%>'
-		},
-		scrollbar:{
-            enabled: false
-        },
-     	credits: {
- 		  enabled: false
-		},
-		xAxis: {
-			categories: [
-			   <% @issuesbycategory.each do |cat| %>
-   			     <%= cat.name.to_s.inspect.html_safe %>,
-			   <%end%>
-			],
-			labels: {
-				rotation: -45,
-				align: 'right',
-				style: {
-					font: 'normal 13px Verdana, sans-serif'
-				}
-			}
-		},
-		yAxis: {
-			min: 0,
-			title: {
-				text: ''
-			}
-		},
-		legend: {
-			enabled: true,
-			reversed: true
-		},
-		tooltip: {
-			formatter: function() {
-				return ''+
-					this.series.name +': '+ this.y +' ('+ Math.round(this.percentage) +'%)';
-			}
-		},
-		plotOptions: {
-			column: {
-				stacking: 'percent'
-			}
-		},
-			series: [
-			{
-			name: '<%=t :tobedelivered_label%>',
-			data: [
-			 	   	<% @issuesbycategory.each do |cat| %>
-     			      <%= cat.totalundone %>,
-			        <%end%>
-				  ]	,
-					color: '#AA4643'
-		    },
-				{
-				name: '<%=t :delivered_label%>',
-				data: [
-				 	   <% @issuesbycategory.each do |cat| %>
-         			      <%= cat.totaldone %>,
-	       		       <%end%>				  
-				]	,
-					color: '#4572A7'
-			    }
-				
-		]
-	});
-});
-</script>
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/index.html.erb b/plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/index.html.erb
deleted file mode 100644
index 5f86708..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/home_monitoring_controlling_project/index.html.erb
+++ /dev/null
@@ -1,83 +0,0 @@
-<%= render :partial => '/mc_menu/contentHeader' %>
-
-<% if @totalIssues > 0  %>
- <%= render :partial => 'index' %>
-<%end%>
-
-
-<%= render :partial => '/mc_menu/mcmenu' %>
-
-<div class="central_charts">
-   <% if @totalIssues > 0  %>
-	 <h2><%=t :statuses_issue_label_title %> - <%=  @all_project_issues.count %> <%=t :tasks_label%>, <%= @overdueissues.count %> <%=t :overdue_text%></h2>
-
-
-
-	 <div id="container" class="double_chart"></div>
-	 <div id="containerColumn" class="double_chart"></div>
-	</div>
-
-	<div class="double_charts">
-	 <h2><%= t :categories_issue_label_title %></h2>
-
-	 <div id="categoryPie" class="double_chart"></div>
-	 <div id="categoryStackedColumn" class="double_chart"></div>
-	</div>
-
-	<div class="double_charts">
-	 <h2><%= t :task_management_label_title %></h2>
-
-	 <div class="double_chart">
-	 <div id="managementissues" class="mini_chart"></div>
-	 <div class="mini_note">
-	  <% @managementissues.each do |issue| %>
-	   <div>
-	    <%if (issue.id == 1)%>
-	     <b><%= issue.typemanagement %>: <%= issue.totalissues %></b>
-	     <div><%= t :manageable_text_tip %></div><br/>
-	    <%else%>	
-	     <b><a href="#TB_inline?height=400&width=600&inlineId=hiddenModalContentUnmanageable&modal=false" title='<%= issue.typemanagement %>: <%= issue.totalissues %>' class="thickbox"><%= issue.typemanagement %>: <%= issue.totalissues %></a></b>
-	     <div><%= t :unmanageable_text_tip %></div>
-	     <div id="hiddenModalContentUnmanageable" style="display: none;">
-	      <% @unmanagementissues.each do |unmanagementissue| %>
-	       <% link_unmanagementissue = unmanagementissue.id.to_s+' - '+unmanagementissue.subject %>
-	       <div style="font-size: 11px; margin-left: 5px;"><%= link_to link_unmanagementissue, unmanagementissue %></div>
-	      <%end%>
-	     </div>
-	    <%end%>
-	   </div>
-	  <%end%>
-	 </div>
-	 </div>
-
-	 <div class="double_chart">
-	 <div id="delayedissues" class="mini_chart"></div>
-	 <div class="mini_note">
-	  <%@overdueissueschart.each do |issue|%>
-	   <div>
-	    <%if (issue.id == 2)%>
-	     <b><a href="#TB_inline?height=400&width=600&inlineId=hiddenModalContentOverdue&modal=false" title='<%=issue.typeissue%>(<%=issue.totalissuedelayed%>)' class="thickbox"><%=issue.typeissue%>: <%=issue.totalissuedelayed%></a></b>
-	     <div id="hiddenModalContentOverdue" style="display: none;">
-	     <% @overdueissues.each do |delayed| %>
-	      <%link_name = delayed.id.to_s+' - '+delayed.subject%>
-	      <div style="font-size: 11px; margin-left: 5px;">
-	       <%= link_to link_name, delayed %> - <span style="color: red;"><%= (Date.today - delayed.due_date).to_i %> <%= t :days_late_text %></span>
-	      </div>
-	     <%end%>
-	     </div>
-	    <%else%>
-	     <b><%=issue.typeissue%>: <%=issue.totalissuedelayed%></b>
-	    <%end%>
-	   </div>
-	  <%end%>
-	 </div>
-	 </div>
-
-	 <p id="notice"><%= notice %></p>
-
- <% else %>
-  <div id="errorExplanation"><%=t :time_mgmt_error_no_issues_found_text %></div>
- <%end%>
-
-</div>
-
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/_scripts.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/_scripts.html.erb
deleted file mode 100644
index 7b4a803..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/_scripts.html.erb
+++ /dev/null
@@ -1,163 +0,0 @@
-<!--
- Column Bar chart
--->
-<script type="text/javascript">
-var chart;
-$(document).ready(function() {
-	chart = new Highcharts.Chart({
-		chart: {
-			renderTo: 'containerColumnBar',
-			type: 'column',
-			margin: [ 50, 50, 100, 80]
-		},
-     	credits: {
- 		  enabled: false
-		},	
-		scrollbar:{
-            enabled: true
-        },
-		title: {
-			text: '<%=t :hr_columnbar_title_label%>'
-		},
-		xAxis: {
-			categories: [
-				<% @statusesByAssigneds.group_by(&:assigned_to_id).each do |s, t| %>
-				 <%= (s.nil? ? t(:hr_unassigned_issue_label) : (t[0].assigned_first_name.length > 0 ? t[0].assigned_first_name : t[0].assigned_last_name) ).inspect.html_safe%>,
-				<%end%>
-			],
-			scrollbar: {
-		        enabled: true
-		    },
-			labels: {
-				rotation: -45,
-				align: 'right',
-				style: {
-					font: 'normal 13px Verdana, sans-serif'
-				}
-			}
-		},
-        plotOptions: {
-                series: {
-                        cursor: 'pointer',
-                        events: {
-                                click: function(event) {
-                                        // Log to console
-                                        // console.log(event.point);
-                                        // console.log(event.point.config.user_id);
-                                        window.open('../../projects/<%=@project.identifier%>/issues?set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=*&f%5B%5D=assigned_to_id&op%5Bassigned_to_id%5D=%3D&v%5Bassigned_to_id%5D%5B%5D=' + event.point.config.user_id + '&f%5B%5D=&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=author&c%5B%5D=assigned_to&c%5B%5D=start_date&c%5B%5D=due_date&c%5B%5D=spent_hours&c%5B%5D=done_ratio&group_by=');
-                                }
-                        }
-                }
-        },
-		yAxis: {
-			min: 0,
-			title: {
-				text: '<%=t :hr_columnbar_yaxis_label%>'
-			}
-		},
-		legend: {
-			enabled: false
-		},
-		tooltip: {
-			formatter: function() {
-				return '<b>'+ this.x +'</b><br/>'+
-					'<%=t :tasks_label%>: '+ Highcharts.numberFormat(this.y, 0) ;
-			}
-		},
-        series: [{
-                data: [<% @statusesByAssigneds.group_by(&:assigned_to_id).each do |s, t| %>
-                        {y: <%= t.map{|a| a.totalassignedbystatuses.to_i}.sum.inspect.html_safe%>, user_id: <%= (s.nil? ? 0 : s) %>},
-                        <%end%>
-                        ],
-                dataLabels: {
-                        enabled: true,
-                        rotation: -90,
-                        color: '#FFFFFF',
-                        align: 'right',
-                        x: -3,
-                        y: 10,
-                        formatter: function() {
-                                return this.y;
-                        },
-                        style: {
-                                font: 'normal 13px Verdana, sans-serif'
-                        }
-                }
-        }]
-	});
-});
-</script>
-<!--
- Stacked Bar chart
--->
-<script type="text/javascript">
-var chart;
-$(document).ready(function() {
-	chart = new Highcharts.Chart({
-		chart: {
-			renderTo: 'containerStackedBar',
-			type: 'bar'
-		},
-     	credits: {
- 		  enabled: false
-		},	
-		scrollbar:{
-            enabled: true
-        },	
-		title: {
-			text: '<%=t :hr_stackedcolumnbar_title_label%>'
-		},
-
-		xAxis: {
-			categories: [
-						<% @statusesByAssigneds.group_by(&:assigned_to_id).each do |s, t| %>
-						 <%= (s.nil? ? t(:hr_unassigned_issue_label) : (t[0].assigned_first_name.length > 0 ? t[0].assigned_first_name : t[0].assigned_last_name) ).inspect.html_safe%>,
-						<%end%>
-					    ]
-		},
-
-		yAxis: {
-			title: {
-				text: '<%=t :hr_stackedcolumnbar_yaxis_label%>'
-			}
-		},
-		legend: {
-			backgroundColor: '#FFFFFF',
-			reversed: false,
-			y: -50
-		},
-		tooltip: {
-			formatter: function() {
-				return ''+
-					this.series.name +': '+ this.y +'';
-			}
-		},
-        plotOptions: {
-                series: {
-                        cursor: 'pointer',
-                        events: {
-                                click: function(event) {
-                                        // Log to console
-                                        // console.log(event.point);
-                                        // console.log(event.point.config.user_id);
-                                        window.open('../../projects/<%=@project.identifier%>/issues?set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=%3D&v%5Bstatus_id%5D%5B%5D=' + event.point.config.issue_status_id + '&f%5B%5D=assigned_to_id&op%5Bassigned_to_id%5D=%3D&v%5Bassigned_to_id%5D%5B%5D=' + event.point.config.user_id + '&f%5B%5D=&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=author&c%5B%5D=assigned_to&c%5B%5D=start_date&c%5B%5D=due_date&c%5B%5D=spent_hours&c%5B%5D=done_ratio&group_by=');
-                                }
-                        },
-                        stacking: 'normal'
-                }
-        },
-			series: 
-		[
-		<% @statusesByAssigneds.group_by(&:id).each do |s, t| %>
-		{
-			name: '<%= IssueStatus.find(s).name%>',
-            data: [
-              <%= t.map {|a| "{y: " + a.totalassignedbystatuses.to_i.to_s + ", user_id: " + (a.assigned_to_id.nil? ? "0" : a.assigned_to_id.to_s) + ", issue_status_id: " + a.id.to_s + "},"} %>
-            ]
-		}, 
-		<%end%>
-		]
-		
-	});
-});
-</script>
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/index.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/index.html.erb
deleted file mode 100644
index fd80fb3..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_human_resource_mgmt_project/index.html.erb
+++ /dev/null
@@ -1,20 +0,0 @@
-<%= render :partial => '/mc_menu/contentHeader' %>
-
-<%= render :partial => 'scripts' %>
-
-<%= render :partial => '/mc_menu/mcmenu' %>
-
-<div class="central_charts">
- <% if @totalIssues > 0  %>	
-	  <h2><%=t :hr_mgmt_label_title %></h2>
-	  <div id="containerColumnBar" class="central_chart"></div>
-	  <div id="containerStackedBar" class="central_chart"></div>
-	</div>
-
-	<div>
-	<p id="notice"><%= notice %></p>
-
- <% else %>
-  <div id="errorExplanation"><%=t :time_mgmt_error_no_issues_found_text %></div>
- <%end%>	
-</div>
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_menu/_contentHeader.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_menu/_contentHeader.html.erb
deleted file mode 100644
index a18ad08..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_menu/_contentHeader.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-<% @PluginFolderName = McTools.new.returnPluginFolderName %>
-<% content_for :header_tags do %>
-    <%= stylesheet_link_tag 'thickbox', :plugin => @PluginFolderName, :media => "screen" %>
-    <%= stylesheet_link_tag 'monitoringcontrolling', :plugin => @PluginFolderName, :media => "screen" %>
-    <%= javascript_include_tag 'jquery.min.js', :plugin => @PluginFolderName %>
-    <%= javascript_include_tag 'rails', :plugin => @PluginFolderName %>
-    <%= javascript_include_tag 'highcharts', :plugin => @PluginFolderName %>
-    <%= javascript_include_tag 'highstock.js', :plugin => @PluginFolderName%>
-    <%= javascript_include_tag 'exporting', :plugin => @PluginFolderName %>
-    <%= javascript_include_tag 'thickbox', :plugin => @PluginFolderName %>
-<% end %>
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_menu/_mcmenu.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_menu/_mcmenu.html.erb
deleted file mode 100644
index bb62c22..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_menu/_mcmenu.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-<%= render :partial => '/mc_menu/progressbar' %>
-<nav id="menu">
-    <ul>
-        <li><%= link_to t(:mc_tasksmgmt_menu_label), { :controller => 'home_monitoring_controlling_project', :action => 'index' }, :class => ("home_monitoring_controlling_project" == params[:controller] ? "menu_selected" : "")   %></li>
-        <li><%= link_to t(:mc_timemgmt_menu_label), { :controller => 'mc_time_mgmt_project', :action => 'index' }, :class => ("mc_time_mgmt_project" == params[:controller] ? "menu_selected" : "")  %></li>
-        <li><%= link_to t(:mc_humanresourcemgmt_menu_label), { :controller => 'mc_human_resource_mgmt_project', :action => 'index' }, :class => ("mc_human_resource_mgmt_project" == params[:controller] ? "menu_selected" : "")  %></li>
-        <li><span id="progressbar" style="width: 250px; margin: 0 0 0 0; float: right; padding: 0;"></span></li>
-    </ul>
-</nav>
-
-
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_menu/_progressbar.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_menu/_progressbar.html.erb
deleted file mode 100644
index 28a4411..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_menu/_progressbar.html.erb
+++ /dev/null
@@ -1,96 +0,0 @@
-<% tools = McTools.new%>
-<script type="text/javascript">
-var chart;
-$(document).ready(function() {
-	chart = new Highcharts.Chart({
-		chart: {
-			renderTo: 'progressbar',
-			type: 'bar',
-			height: 25,
-			margin: [-9, 0, -9, 0],
-			backgroundColor: 'transparent'
-		},
-		exporting: {
-			  enabled: false
-		},
-		credits: {
- 		  enabled: false
-		},
-		title: {
-			text: ''
-		},
-		xAxis: {
-			categories: ['Progress'],
-			gridLineWidth : 0,
-		    gridLineColor : '#FFFFFF',	
-			lineWidth: 0,
-			minorGridLineWidth: 0,
-			lineColor: 'transparent',
-			minorTickLength: 0,
- 		    tickLength: 0,
-			labels : {
-				enabled: false
-			}
-		},
-		yAxis: {
-			title: {
-				text: ''
-			},
-			gridLineWidth : 0,
-			gridLineColor : '#FFFFFF',
-			lineWidth: 0,
-			minorGridLineWidth: 0,
-			lineColor: 'transparent',			
-			minorTickLength: 0,
- 		    tickLength: 0,
-			labels : {
-				enabled: false
-			}
-		},
-		legend: {
-			backgroundColor: '#FFFFFF',
-			reversed: true,
-			enabled: false
-		},
-		tooltip: {
-			formatter: function() {
-				return ''+
-					this.series.name +': '+ this.y + ' <%=t :tasks_label%>';
-			},
-			style: {
-				color: '#333333',
-				fontSize: '8pt',
-				padding: '2px'
-			}
-		},
-		plotOptions: {
-			series: {
-				stacking: 'percent',
-				dataLabels: {
-					enabled: true,
-					align : 'center',
-					color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
-					formatter: function() {
-                        return Highcharts.numberFormat(this.percentage,2) +' %';
-                    }
-				}
-			}	,
-		        bar: {
-		            borderWidth:0,
-		            shadow: false,
-		            borderRadius: 3
-		        }
-		},
-			series: [{
-			name: '<%=t :tobedelivered_label%>',
-			data: [<%=tools.returnTotalOfOpenTasks(params[:id])%>],
-			color: '#A0A0A0'
-		},
-		{
-		name: '<%=t :delivered_label%>',
-		data: [<%=tools.returnTotalOfClosedTasks(params[:id])%>],
-		color: '#006600'
-	}]
-	});
-});
-</script>
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/_scripts.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/_scripts.html.erb
deleted file mode 100644
index b407161..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/_scripts.html.erb
+++ /dev/null
@@ -1,224 +0,0 @@
-<!-- 
- Timeline Sum Estimated Hours and Executed Hours by due dates  
--->
-<script type="text/javascript">
-var chart;
-$(document).ready(function() {
-	chart = new Highcharts.Chart({
-		credits: {
- 		  enabled: false
-		},
-		chart: {
-			renderTo: 'containerSpentHours',
-			type: 'areaspline'
-		},
-		title: {
-			text: '<%= @project.name%>'
-		},
-		subtitle: {
-			text: '<%=t :time_mgmt_label_title%>'
-		},
-		xAxis: {
-			categories: [
-							<% @issuesSpentHours.each do | issue | %>
-							  <%= issue.due_date.to_date.strftime(t(:default_date_format)).inspect.html_safe %>,
-							<%end%>
-						],
-
-						labels:{
-							enabled: true,
-							rotation: 90,
-							y: 40
-						}
-		},
-		yAxis: {
-			title: {
-				text: '<%=t :time_mgmt_areaspline_yaxis_label %>'
-			},
-			min: 0
-		},
-		tooltip: {
-				formatter: function() {
-					var s;
-					if (this.point.name) { // the pie chart
-						s = ''+ this.point.name +': '+ Highcharts.numberFormat(this.y,2) +' '+'<%=t :time_mgmt_hours_label%>';
-					} else {
-						s = '<b>'+ this.series.name +'</b><br/>'+ this.x +' : '+ Highcharts.numberFormat(this.y,2) +' '+'<%=t :time_mgmt_hours_label%>';
-					}
-					return s;
-				}
-				
-
-		},
-		plotOptions: {
-					areaspline: {
-						fillOpacity: 0.5
-					}
-				},		
-		series: [ {
-			name: '<%=t :time_mgmt_estimated_label%>',
-			data:
-			[ 
-			 <% @issuesSpentHours.each do | issue | %>
-			  <%=issue.sumestimatedhours.to_f%>,
-			 <%end%>
-			]
-		},
-		{
-			name: '<%=t :time_mgmt_spent_label %>',
-			data:
-			[ 
-			 <% @issuesSpentHours.each do | issue | %>
-			  <%=issue.sumspenthours.to_f%>,
-			 <%end%>
-			]
-		},
-		
-		{
-					type: 'pie',
-					name: '<%=t :time_mgmt_label_title%>',
-					data: [
-					           {
-									name: '<%=t :time_mgmt_estimated_label%>',
-									y: <%= @issuesSpentHours.last.sumestimatedhours.to_f %>,
-									color: '#4572A7'
-								}, {
-									name: '<%=t :time_mgmt_spent_label %>',
-									y: <%= @issuesSpentHours.last.sumspenthours.to_f %>,
-									color: '#AA4643' 
-								}
-					],
-					center: [120, 30],
-					size: 80,
-					showInLegend: false,
-					dataLabels: {
-						enabled: true,
-						formatter: function() {
-                            return Highcharts.numberFormat(this.percentage,2) +' %';
-                        }
-					}
-					
-		}
-				
-		]
-	});
-});
-</script>
-
-<%
-@spentHoursByVersionEstimated = 0
-@spentHoursByVersionSpent = 0
-@spentHoursByVersion.each do | issue |
-	@spentHoursByVersionEstimated = @spentHoursByVersionEstimated + issue.sumestimatedhours.to_f unless issue.sumestimatedhours.nil?
-    @spentHoursByVersionSpent	  = @spentHoursByVersionSpent +issue.sumspenthours.to_f unless issue.sumspenthours.nil?
-end
-%>
-
-
-<script type="text/javascript">
-$(function () {
-    var chart;
-    $(document).ready(function() {
-        chart = new Highcharts.Chart({
-            chart: {
-                renderTo: 'containerSpentHoursByVersion',
-                type: 'spline'
-            },
-	     	credits: {
-	 		  enabled: false
-			},
-            title: {
-                text: '<%= @project.name%>'
-            },
-            subtitle: {
-                text: '<%=t :time_mgmt_version_label_title%>'
-            },
-            xAxis: {
-                categories: [
-							<% @spentHoursByVersion.each do | issue | %>
-							  <%= (issue.version+' <br/> '+issue.effective_date.to_date.strftime(t(:default_date_format))).inspect.html_safe %>,
-							<%end%>
-							],
-							labels: {
-			                    enabled: true
-			                    }
-            },
-            yAxis: {
-                title: {
-                    text: '<%=t :time_mgmt_areaspline_yaxis_label%>'
-                },
-                labels: {
-                    formatter: function() {
-                        return this.value
-                    }
-                }
-            },
-            tooltip: {
-	            crosshairs: true,
-	            shared: true
-            },
-            plotOptions: {
-                spline: {
-                    marker: {
-                        radius: 4,
-                        lineColor: '#666666',
-                        lineWidth: 1
-                    }
-                }
-            },
-            series: [{
-                name: '<%=t :time_mgmt_estimated_label%>',
-                marker: {
-                    symbol: 'square'
-                },
-
-                data: [
-					   	<% @spentHoursByVersion.each do | issue | %>
-					     <%= issue.sumestimatedhours.to_f.round(2)%>,
-					    <%end%>
-					  ]
-    
-            }, {
-                name: '<%=t :time_mgmt_spent_label %>',
-                marker: {
-                    symbol: 'diamond'
-                },
-                data: [
-				        <% @spentHoursByVersion.each do | issue | %>
-					     <%=issue.sumspenthours.to_f.round(2)%>,
-					    <%end%>
-				      ]
-            },
-			{
-						type: 'pie',
-						name: '<%=t :time_mgmt_label_title%>',
-						data: [
-						           {
-										name: '<%=t :time_mgmt_estimated_label%>',
-										y: <%= @spentHoursByVersionEstimated.to_f %>,
-										color: '#4572A7'
-									}, {
-										name: '<%=t :time_mgmt_spent_label %>',
-										y: <%= @spentHoursByVersionSpent.to_f %>,
-										color: '#AA4643' 
-									}
-						],
-						center: [120, 30],
-						size: 80,
-						showInLegend: false,
-    					fillOpacity: 2.5,
-						dataLabels: {
-							enabled: true,
-    						distance: 0,
-							formatter: function() {
-	                            return Highcharts.numberFormat(this.y,2) +' '+'<%=t :time_mgmt_hours_label%>'+'<br/>'+ Highcharts.numberFormat(this.percentage,2) +' %';
-	                        }
-						}
-
-			}
-          ]
-        });
-    });
-    
-});
-</script>
diff --git a/plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/index.html.erb b/plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/index.html.erb
deleted file mode 100644
index 0406f69..0000000
--- a/plugins/redmine_monitoring_controlling/app/views/mc_time_mgmt_project/index.html.erb
+++ /dev/null
@@ -1,23 +0,0 @@
-<%= render :partial => '/mc_menu/contentHeader' %>
-
-<% if @issuesSpentHours.count > 0  %>
- <%= render :partial => 'scripts' %>
-<%end%>
-
-<%= render :partial => '/mc_menu/mcmenu' %>
-
-<div class="central_charts"> 
- <% if @issuesSpentHours.count > 0  %>	
-	  <h2><%=t :time_mgmt_label_title %></h2>
-	  <div id="containerSpentHours" class="central_chart"></div>
-	  <div id="containerSpentHoursByVersion" class="central_chart"></div>
-	</div>
-
-	<div>
-	<p id="notice"><%= notice %></p>
-  
-  <%else%> 
-   <div id="errorExplanation"><%=t :time_mgmt_error_no_issues_duedate_found_text %></div>
-  <%end%>
-
-</div>
diff --git a/plugins/redmine_monitoring_controlling/assets/images/loadingAnimation.gif b/plugins/redmine_monitoring_controlling/assets/images/loadingAnimation.gif
deleted file mode 100644
index 82290f48334c81272ff5991962951758137a08ba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5886
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

diff --git a/plugins/redmine_monitoring_controlling/assets/javascripts/exporting.js b/plugins/redmine_monitoring_controlling/assets/javascripts/exporting.js
deleted file mode 100644
index 3c6df2e..0000000
--- a/plugins/redmine_monitoring_controlling/assets/javascripts/exporting.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- Highcharts JS v2.2.5 (2012-06-08)
- Exporting module
-
- (c) 2010-2011 Torstein H?nsi
-
- License: www.highcharts.com/license
-*/
-(function(){function x(a){for(var b=a.length;b--;)typeof a[b]==="number"&&(a[b]=Math.round(a[b])-0.5);return a}var g=Highcharts,y=g.Chart,z=g.addEvent,B=g.removeEvent,r=g.createElement,u=g.discardElement,t=g.css,s=g.merge,k=g.each,n=g.extend,C=Math.max,h=document,D=window,A=h.documentElement.ontouchstart!==void 0,v=g.getOptions();n(v.lang,{downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",exportButtonTitle:"Export to raster or vector image",
-printButtonTitle:"Print the chart"});v.navigation={menuStyle:{border:"1px solid #A0A0A0",background:"#FFFFFF"},menuItemStyle:{padding:"0 5px",background:"none",color:"#303030",fontSize:A?"14px":"11px"},menuItemHoverStyle:{background:"#4572A5",color:"#FFFFFF"},buttonOptions:{align:"right",backgroundColor:{linearGradient:[0,0,0,20],stops:[[0.4,"#F7F7F7"],[0.6,"#E3E3E3"]]},borderColor:"#B0B0B0",borderRadius:3,borderWidth:1,height:20,hoverBorderColor:"#909090",hoverSymbolFill:"#81A7CF",hoverSymbolStroke:"#4572A5",
-symbolFill:"#E0E0E0",symbolStroke:"#A0A0A0",symbolX:11.5,symbolY:10.5,verticalAlign:"top",width:24,y:10}};v.exporting={type:"image/png",url:"http://export.highcharts.com/",width:800,buttons:{exportButton:{symbol:"exportIcon",x:-10,symbolFill:"#A8BF77",hoverSymbolFill:"#768F3E",_id:"exportButton",_titleKey:"exportButtonTitle",menuItems:[{textKey:"downloadPNG",onclick:function(){this.exportChart()}},{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF",
-onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]},printButton:{symbol:"printIcon",x:-36,symbolFill:"#B5C9DF",hoverSymbolFill:"#779ABF",_id:"printButton",_titleKey:"printButtonTitle",onclick:function(){this.print()}}}};n(y.prototype,{getSVG:function(a){var b=this,c,d,e,f=s(b.options,a);if(!h.createElementNS)h.createElementNS=function(a,b){return h.createElement(b)};a=r("div",null,{position:"absolute",
-top:"-9999em",width:b.chartWidth+"px",height:b.chartHeight+"px"},h.body);n(f.chart,{renderTo:a,forExport:!0});f.exporting.enabled=!1;f.chart.plotBackgroundImage=null;f.series=[];k(b.series,function(a){e=s(a.options,{animation:!1,showCheckbox:!1,visible:a.visible});if(!e.isInternal){if(e&&e.marker&&/^url\(/.test(e.marker.symbol))e.marker.symbol="circle";f.series.push(e)}});c=new Highcharts.Chart(f);k(["xAxis","yAxis"],function(a){k(b[a],function(b,d){var e=c[a][d],f=b.getExtremes(),g=f.userMin,f=f.userMax;
-(g!==void 0||f!==void 0)&&e.setExtremes(g,f,!0,!1)})});d=c.container.innerHTML;f=null;c.destroy();u(a);d=d.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/isTracker="[^"]+"/g,"").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ href=/g," xlink:href=").replace(/\n/," ").replace(/<\/svg>.*?$/,"</svg>").replace(/&nbsp;/g,"\u00a0").replace(/&shy;/g,
-"\u00ad").replace(/<IMG /g,"<image ").replace(/height=([^" ]+)/g,'height="$1"').replace(/width=([^" ]+)/g,'width="$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href="$1"/>').replace(/id=([^" >]+)/g,'id="$1"').replace(/class=([^" ]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()});d=d.replace(/(url\(#highcharts-[0-9]+)&quot;/g,"$1").replace(/&quot;/g,"'");d.match(/ xmlns="/g).length===2&&(d=d.replace(/xmlns="[^"]+"/,
-""));return d},exportChart:function(a,b){var c,d=this.getSVG(s(this.options.exporting.chartOptions,b)),a=s(this.options.exporting,a);c=r("form",{method:"post",action:a.url,enctype:"multipart/form-data"},{display:"none"},h.body);k(["filename","type","width","svg"],function(b){r("input",{type:"hidden",name:b,value:{filename:a.filename||"chart",type:a.type,width:a.width,svg:d}[b]},null,c)});c.submit();u(c)},print:function(){var a=this,b=a.container,c=[],d=b.parentNode,e=h.body,f=e.childNodes;if(!a.isPrinting)a.isPrinting=
-!0,k(f,function(a,b){if(a.nodeType===1)c[b]=a.style.display,a.style.display="none"}),e.appendChild(b),D.print(),setTimeout(function(){d.appendChild(b);k(f,function(a,b){if(a.nodeType===1)a.style.display=c[b]});a.isPrinting=!1},1E3)},contextMenu:function(a,b,c,d,e,f){var i=this,g=i.options.navigation,h=g.menuItemStyle,o=i.chartWidth,p=i.chartHeight,q="cache-"+a,j=i[q],l=C(e,f),m,w;if(!j)i[q]=j=r("div",{className:"highcharts-"+a},{position:"absolute",zIndex:1E3,padding:l+"px"},i.container),m=r("div",
-null,n({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},g.menuStyle),j),w=function(){t(j,{display:"none"})},z(j,"mouseleave",w),k(b,function(a){if(a){var b=r("div",{onmouseover:function(){t(this,g.menuItemHoverStyle)},onmouseout:function(){t(this,h)},innerHTML:a.text||i.options.lang[a.textKey]},n({cursor:"pointer"},h),m);b[A?"ontouchstart":"onclick"]=function(){w();a.onclick.apply(i,arguments)};i.exportDivElements.push(b)}}),i.exportDivElements.push(m,
-j),i.exportMenuWidth=j.offsetWidth,i.exportMenuHeight=j.offsetHeight;a={display:"block"};c+i.exportMenuWidth>o?a.right=o-c-e-l+"px":a.left=c-l+"px";d+f+i.exportMenuHeight>p?a.bottom=p-d-l+"px":a.top=d+f-l+"px";t(j,a)},addButton:function(a){function b(){p.attr(l);o.attr(j)}var c=this,d=c.renderer,e=s(c.options.navigation.buttonOptions,a),f=e.onclick,g=e.menuItems,h=e.width,k=e.height,o,p,q,a=e.borderWidth,j={stroke:e.borderColor},l={stroke:e.symbolStroke,fill:e.symbolFill},m=e.symbolSize||12;if(!c.exportDivElements)c.exportDivElements=
-[],c.exportSVGElements=[];e.enabled!==!1&&(o=d.rect(0,0,h,k,e.borderRadius,a).align(e,!0).attr(n({fill:e.backgroundColor,"stroke-width":a,zIndex:19},j)).add(),q=d.rect(0,0,h,k,0).align(e).attr({id:e._id,fill:"rgba(255, 255, 255, 0.001)",title:c.options.lang[e._titleKey],zIndex:21}).css({cursor:"pointer"}).on("mouseover",function(){p.attr({stroke:e.hoverSymbolStroke,fill:e.hoverSymbolFill});o.attr({stroke:e.hoverBorderColor})}).on("mouseout",b).on("click",b).add(),g&&(f=function(){b();var a=q.getBBox();
-c.contextMenu("export-menu",g,a.x,a.y,h,k)}),q.on("click",function(){f.apply(c,arguments)}),p=d.symbol(e.symbol,e.symbolX-m/2,e.symbolY-m/2,m,m).align(e,!0).attr(n(l,{"stroke-width":e.symbolStrokeWidth||1,zIndex:20})).add(),c.exportSVGElements.push(o,q,p))},destroyExport:function(){var a,b;for(a=0;a<this.exportSVGElements.length;a++)b=this.exportSVGElements[a],b.onclick=b.ontouchstart=null,this.exportSVGElements[a]=b.destroy();for(a=0;a<this.exportDivElements.length;a++)b=this.exportDivElements[a],
-B(b,"mouseleave"),this.exportDivElements[a]=b.onmouseout=b.onmouseover=b.ontouchstart=b.onclick=null,u(b)}});g.Renderer.prototype.symbols.exportIcon=function(a,b,c,d){return x(["M",a,b+c,"L",a+c,b+d,a+c,b+d*0.8,a,b+d*0.8,"Z","M",a+c*0.5,b+d*0.8,"L",a+c*0.8,b+d*0.4,a+c*0.4,b+d*0.4,a+c*0.4,b,a+c*0.6,b,a+c*0.6,b+d*0.4,a+c*0.2,b+d*0.4,"Z"])};g.Renderer.prototype.symbols.printIcon=function(a,b,c,d){return x(["M",a,b+d*0.7,"L",a+c,b+d*0.7,a+c,b+d*0.4,a,b+d*0.4,"Z","M",a+c*0.2,b+d*0.4,"L",a+c*0.2,b,a+c*
-0.8,b,a+c*0.8,b+d*0.4,"Z","M",a+c*0.2,b+d*0.7,"L",a,b+d,a+c,b+d,a+c*0.8,b+d*0.7,"Z"])};y.prototype.callbacks.push(function(a){var b,c=a.options.exporting,d=c.buttons;if(c.enabled!==!1){for(b in d)a.addButton(d[b]);z(a,"destroy",a.destroyExport)}})})();
diff --git a/plugins/redmine_monitoring_controlling/assets/javascripts/highcharts.js b/plugins/redmine_monitoring_controlling/assets/javascripts/highcharts.js
deleted file mode 100644
index 78b17ae..0000000
--- a/plugins/redmine_monitoring_controlling/assets/javascripts/highcharts.js
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- Highcharts JS v2.2.5 (2012-06-08)
-
- (c) 2009-2011 Torstein H?nsi
-
- License: www.highcharts.com/license
-*/
-(function(){function u(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}function la(){for(var a=0,b=arguments,c=b.length,d={};a<c;a++)d[b[a++]]=b[a];return d}function w(a,b){return parseInt(a,b||10)}function ra(a){return typeof a==="string"}function aa(a){return typeof a==="object"}function Ja(a){return Object.prototype.toString.call(a)==="[object Array]"}function Ka(a){return typeof a==="number"}function ma(a){return L.log(a)/L.LN10}function ba(a){return L.pow(10,a)}function za(a,b){for(var c=
-a.length;c--;)if(a[c]===b){a.splice(c,1);break}}function s(a){return a!==A&&a!==null}function z(a,b,c){var d,e;if(ra(b))s(c)?a.setAttribute(b,c):a&&a.getAttribute&&(e=a.getAttribute(b));else if(s(b)&&aa(b))for(d in b)a.setAttribute(d,b[d]);return e}function na(a){return Ja(a)?a:[a]}function o(){var a=arguments,b,c,d=a.length;for(b=0;b<d;b++)if(c=a[b],typeof c!=="undefined"&&c!==null)return c}function F(a,b){if(La&&b&&b.opacity!==A)b.filter="alpha(opacity="+b.opacity*100+")";u(a.style,b)}function S(a,
-b,c,d,e){a=B.createElement(a);b&&u(a,b);e&&F(a,{padding:0,border:U,margin:0});c&&F(a,c);d&&d.appendChild(a);return a}function ca(a,b){var c=function(){};c.prototype=new a;u(c.prototype,b);return c}function Xa(a,b,c,d){var e=V.lang,f=a;b===-1?(b=(a||0).toString(),a=b.indexOf(".")>-1?b.split(".")[1].length:0):a=isNaN(b=M(b))?2:b;var b=a,c=c===void 0?e.decimalPoint:c,d=d===void 0?e.thousandsSep:d,e=f<0?"-":"",a=String(w(f=M(+f||0).toFixed(b))),g=a.length>3?a.length%3:0;return e+(g?a.substr(0,g)+d:"")+
-a.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(b?c+M(f-a).toFixed(b).slice(2):"")}function sa(a,b){return Array((b||2)+1-String(a).length).join(0)+a}function gb(a,b,c,d){var e,c=o(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allowDecimals===!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d<b.length;d++)if(a=b[d],e<=(b[d]+(b[d+1]||b[d]))/2)break;a*=c;return a}function Ob(a,b){var c=b||[[vb,[1,2,5,10,20,25,50,100,200,500]],[hb,[1,2,5,10,15,30]],[Ya,[1,2,5,10,15,30]],[Ma,[1,2,3,4,6,8,12]],[oa,[1,2]],[Za,
-[1,2]],[Na,[1,2,3,4,6]],[ta,null]],d=c[c.length-1],e=D[d[0]],f=d[1],g;for(g=0;g<c.length;g++)if(d=c[g],e=D[d[0]],f=d[1],c[g+1]&&a<=(e*f[f.length-1]+D[c[g+1][0]])/2)break;e===D[ta]&&a<5*e&&(f=[1,2,5]);e===D[ta]&&a<5*e&&(f=[1,2,5]);c=gb(a/e,f);return{unitRange:e,count:c,unitName:d[0]}}function Pb(a,b,c,d){var e=[],f={},g=V.global.useUTC,h,i=new Date(b),b=a.unitRange,j=a.count;b>=D[hb]&&(i.setMilliseconds(0),i.setSeconds(b>=D[Ya]?0:j*W(i.getSeconds()/j)));if(b>=D[Ya])i[wb](b>=D[Ma]?0:j*W(i[ib]()/j));
-if(b>=D[Ma])i[xb](b>=D[oa]?0:j*W(i[jb]()/j));if(b>=D[oa])i[kb](b>=D[Na]?1:j*W(i[Oa]()/j));b>=D[Na]&&(i[yb](b>=D[ta]?0:j*W(i[$a]()/j)),h=i[ab]());b>=D[ta]&&(h-=h%j,i[zb](h));if(b===D[Za])i[kb](i[Oa]()-i[lb]()+o(d,1));d=1;h=i[ab]();for(var k=i.getTime(),l=i[$a](),m=i[Oa](),i=g?0:(864E5+i.getTimezoneOffset()*6E4)%864E5;k<c;)e.push(k),b===D[ta]?k=bb(h+d*j,0):b===D[Na]?k=bb(h,l+d*j):!g&&(b===D[oa]||b===D[Za])?k=bb(h,l,m+d*j*(b===D[oa]?1:7)):(k+=b*j,b<=D[Ma]&&k%D[oa]===i&&(f[k]=oa)),d++;e.push(k);e.info=
-u(a,{higherRanks:f,totalRange:b*j});return e}function Ab(){this.symbol=this.color=0}function Qb(a,b){var c=a.length,d,e;for(e=0;e<c;e++)a[e].ss_i=e;a.sort(function(a,c){d=b(a,c);return d===0?a.ss_i-c.ss_i:d});for(e=0;e<c;e++)delete a[e].ss_i}function Pa(a){for(var b=a.length,c=a[0];b--;)a[b]<c&&(c=a[b]);return c}function Aa(a){for(var b=a.length,c=a[0];b--;)a[b]>c&&(c=a[b]);return c}function Ba(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Qa(a){cb||(cb=S(ia));
-a&&cb.appendChild(a);cb.innerHTML=""}function mb(a,b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;else N.console&&console.log(c)}function ja(a){return parseFloat(a.toPrecision(14))}function ua(a,b){Ra=o(a,b.animation)}function Bb(){var a=V.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set";bb=a?Date.UTC:function(a,b,c,g,h,i){return(new Date(a,b,o(c,1),o(g,0),o(h,0),o(i,0))).getTime()};ib=b+"Minutes";jb=b+"Hours";lb=b+"Day";Oa=b+"Date";$a=b+"Month";ab=b+"FullYear";wb=
-c+"Minutes";xb=c+"Hours";kb=c+"Date";yb=c+"Month";zb=c+"FullYear"}function va(){}function Sa(a,b,c){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;c||this.addLabel()}function nb(a,b){this.axis=a;if(b)this.options=b,this.id=b.id;return this}function Cb(a,b,c,d,e){var f=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.stack=e;this.alignOptions={align:b.align||(f?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(f?"middle":c?"bottom":"top"),y:o(b.y,f?4:c?14:
--6),x:o(b.x,f?c?-6:6:0)};this.textAlign=b.textAlign||(f?c?"right":"left":"center")}function ob(){this.init.apply(this,arguments)}function pb(a,b){var c=b.borderWidth,d=b.style,e=b.shared,f=w(d.padding);this.chart=a;this.options=b;d.padding=0;this.crosshairs=[];this.currentY=this.currentX=0;this.tooltipIsHidden=!0;this.label=a.renderer.label("",0,0,null,null,null,b.useHTML,null,"tooltip").attr({padding:f,fill:b.backgroundColor,"stroke-width":c,r:b.borderRadius,zIndex:8}).css(d).hide().add();ga||this.label.shadow(b.shadow);
-this.shared=e}function Db(a,b){var c=ga?"":b.chart.zoomType;this.zoomX=/x/.test(c);this.zoomY=/y/.test(c);this.options=b;this.chart=a;this.init(a,b.tooltip)}function qb(a){this.init(a)}function rb(a,b){var c,d=a.series;a.series=null;c=C(V,a);c.series=a.series=d;var d=c.chart,e=d.margin,e=aa(e)?e:[e,e,e,e];this.optionsMarginTop=o(d.marginTop,e[0]);this.optionsMarginRight=o(d.marginRight,e[1]);this.optionsMarginBottom=o(d.marginBottom,e[2]);this.optionsMarginLeft=o(d.marginLeft,e[3]);this.runChartClick=
-(e=d.events)&&!!e.click;this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;this.init(e)}var A,B=document,N=window,L=Math,t=L.round,W=L.floor,wa=L.ceil,x=L.max,O=L.min,M=L.abs,X=L.cos,da=L.sin,xa=L.PI,Eb=xa*2/360,ya=navigator.userAgent,La=/msie/i.test(ya)&&!N.opera,Ca=B.documentMode===8,Fb=/AppleWebKit/.test(ya),Gb=/Firefox/.test(ya),Da=!!B.createElementNS&&!!B.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,Rb=Gb&&parseInt(ya.split("Firefox/")[1],
-10)<4,ga=!Da&&!La&&!!B.createElement("canvas").getContext,Ta,ea=B.documentElement.ontouchstart!==A,Hb={},sb=0,cb,V,db,Ra,Ua,D,Sb=function(){},ia="div",U="none",tb="rgba(192,192,192,"+(Da?1.0E-6:0.0020)+")",vb="millisecond",hb="second",Ya="minute",Ma="hour",oa="day",Za="week",Na="month",ta="year",bb,ib,jb,lb,Oa,$a,ab,wb,xb,kb,yb,zb,Y={};N.Highcharts={};db=function(a,b,c){if(!s(b)||isNaN(b))return"Invalid date";var a=o(a,"%Y-%m-%d %H:%M:%S"),d=new Date(b),e,f=d[jb](),g=d[lb](),h=d[Oa](),i=d[$a](),j=
-d[ab](),k=V.lang,l=k.weekdays,b={a:l[g].substr(0,3),A:l[g],d:sa(h),e:h,b:k.shortMonths[i],B:k.months[i],m:sa(i+1),y:j.toString().substr(2,2),Y:j,H:sa(f),I:sa(f%12||12),l:f%12||12,M:sa(d[ib]()),p:f<12?"AM":"PM",P:f<12?"am":"pm",S:sa(d.getSeconds()),L:sa(t(b%1E3),3)};for(e in b)a=a.replace("%"+e,b[e]);return c?a.substr(0,1).toUpperCase()+a.substr(1):a};Ab.prototype={wrapColor:function(a){if(this.color>=a)this.color=0},wrapSymbol:function(a){if(this.symbol>=a)this.symbol=0}};D=la(vb,1,hb,1E3,Ya,6E4,
-Ma,36E5,oa,864E5,Za,6048E5,Na,2592E6,ta,31556952E3);Ua={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,j=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&(j(b),j(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift=0;if(b.length)for(a=c.length;b.length<a;)d=[].concat(b).splice(b.length-f,f),e&&(d[f-6]=d[f-2],d[f-
-5]=d[f-1]),b=b.concat(d);h&&(b=b.concat(h),c=c.concat(i));return[b,c]},step:function(a,b,c,d){var e=[],f=a.length;if(c===1)e=d;else if(f===b.length&&c<1)for(;f--;)d=parseFloat(a[f]),e[f]=isNaN(d)?a[f]:c*parseFloat(b[f]-d)+d;else e=b;return e}};var T=N.HighchartsAdapter,G=T||{},Va=G.adapterRun,Ib=G.getScript,n=G.each,ub=G.grep,Jb=G.offset,Ea=G.map,C=G.merge,I=G.addEvent,P=G.removeEvent,E=G.fireEvent,Kb=G.washMouseEvent,eb=G.animate,Fa=G.stop;T&&T.init&&T.init(Ua);if(!T&&N.jQuery){var Q=jQuery,Ib=Q.getScript,
-Va=function(a,b){return Q(a)[b]()},n=function(a,b){for(var c=0,d=a.length;c<d;c++)if(b.call(a[c],a[c],c,a)===!1)return c},ub=Q.grep,Ea=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++)c[d]=b.call(a[d],a[d],d,a);return c},C=function(){var a=arguments;return Q.extend(!0,null,a[0],a[1],a[2],a[3])},Jb=function(a){return Q(a).offset()},I=function(a,b,c){Q(a).bind(b,c)},P=function(a,b,c){var d=B.removeEventListener?"removeEventListener":"detachEvent";B[d]&&!a[d]&&(a[d]=function(){});Q(a).unbind(b,c)},
-E=function(a,b,c,d){var e=Q.Event(b),f="detached"+b,g;!La&&c&&(delete c.layerX,delete c.layerY);u(e,c);a[b]&&(a[f]=a[b],a[b]=null);n(["preventDefault","stopPropagation"],function(a){var b=e[a];e[a]=function(){try{b.call(e)}catch(c){a==="preventDefault"&&(g=!0)}}});Q(a).trigger(e);a[f]&&(a[b]=a[f],a[f]=null);d&&!e.isDefaultPrevented()&&!g&&d(e)},Kb=function(a){return a},eb=function(a,b,c){var d=Q(a);if(b.d)a.toD=b.d,b.d=1;d.stop();d.animate(b,c)},Fa=function(a){Q(a).stop()};Q.extend(Q.easing,{easeOutQuad:function(a,
-b,c,d,e){return-d*(b/=e)*(b-2)+c}});var Lb=Q.fx,Mb=Lb.step;n(["cur","_default","width","height"],function(a,b){var c=Mb,d,e;a==="cur"?c=Lb.prototype:a==="_default"&&Q.Tween&&(c=Q.Tween.propHooks[a],a="set");(d=c[a])&&(c[a]=function(c){c=b?c:this;e=c.elem;return e.attr?e.attr(c.prop,a==="cur"?A:c.now):d.apply(this,arguments)})});Mb.d=function(a){var b=a.elem;if(!a.started){var c=Ua.init(b,b.d,b.toD);a.start=c[0];a.end=c[1];a.started=!0}b.attr("d",Ua.step(a.start,a.end,a.pos,b.toD))}}G={enabled:!0,
-align:"center",x:0,y:15,style:{color:"#666",fontSize:"11px",lineHeight:"14px"}};V={colors:"#4572A7,#AA4643,#89A54E,#80699B,#3D96AE,#DB843D,#92A8CD,#A47D7C,#B5CA92".split(","),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),
-decimalPoint:".",resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:","},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/2.2.5/modules/canvas-tools.js"},chart:{borderColor:"#4572A7",borderRadius:5,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacingTop:10,spacingRight:10,spacingBottom:15,spacingLeft:10,style:{fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif',fontSize:"12px"},backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",
-resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",y:15,style:{color:"#3E576F",fontSize:"16px"}},subtitle:{text:"",align:"center",y:30,style:{color:"#6D869F"}},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},lineWidth:2,shadow:!0,marker:{enabled:!0,lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:C(G,
-{enabled:!1,y:-6,formatter:function(){return this.y}}),cropThreshold:300,pointRange:0,showInLegend:!0,states:{hover:{marker:{}},select:{marker:{}}},stickyTracking:!0}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderWidth:1,borderColor:"#909090",borderRadius:5,navigation:{activeColor:"#3E576F",inactiveColor:"#CCC"},shadow:!1,itemStyle:{cursor:"pointer",color:"#3E576F",fontSize:"12px"},itemHoverStyle:{color:"#000"},
-itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolWidth:16,symbolPadding:5,verticalAlign:"bottom",x:0,y:0},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"1em"},style:{position:"absolute",backgroundColor:"white",opacity:0.5,textAlign:"center"}},tooltip:{enabled:!0,backgroundColor:"rgba(255, 255, 255, .85)",borderWidth:2,borderRadius:5,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",
-hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',shadow:!0,shared:ga,snap:ea?25:10,style:{color:"#333333",fontSize:"12px",padding:"5px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},
-style:{cursor:"pointer",color:"#909090",fontSize:"10px"}}};var Z=V.plotOptions,T=Z.line;Bb();var pa=function(a){var b=[],c;(function(a){(c=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(a))?b=[w(c[1]),w(c[2]),w(c[3]),parseFloat(c[4],10)]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))&&(b=[w(c[1],16),w(c[2],16),w(c[3],16),1])})(a);return{get:function(c){return b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+b[1]+","+b[2]+")":c==="a"?b[3]:
-"rgba("+b.join(",")+")":a},brighten:function(a){if(Ka(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=w(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},setOpacity:function(a){b[3]=a;return this}}};va.prototype={init:function(a,b){this.element=b==="span"?S(b):B.createElementNS("http://www.w3.org/2000/svg",b);this.renderer=a;this.attrSetters={}},animate:function(a,b,c){b=o(b,Ra,!0);Fa(this);if(b){b=C(b);if(c)b.complete=c;eb(this,a,b)}else this.attr(a),c&&c()},attr:function(a,b){var c,d,e,f,g=this.element,
-h=g.nodeName,i=this.renderer,j,k=this.attrSetters,l=this.shadows,m,p,q=this;ra(a)&&s(b)&&(c=a,a={},a[c]=b);if(ra(a))c=a,h==="circle"?c={x:"cx",y:"cy"}[c]||c:c==="strokeWidth"&&(c="stroke-width"),q=z(g,c)||this[c]||0,c!=="d"&&c!=="visibility"&&(q=parseFloat(q));else for(c in a)if(j=!1,d=a[c],e=k[c]&&k[c](d,c),e!==!1){e!==A&&(d=e);if(c==="d")d&&d.join&&(d=d.join(" ")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0");else if(c==="x"&&h==="text"){for(e=0;e<g.childNodes.length;e++)f=g.childNodes[e],z(f,"x")===z(g,
-"x")&&z(f,"x",d);this.rotation&&z(g,"transform","rotate("+this.rotation+" "+d+" "+w(a.y||z(g,"y"))+")")}else if(c==="fill")d=i.color(d,g,c);else if(h==="circle"&&(c==="x"||c==="y"))c={x:"cx",y:"cy"}[c]||c;else if(h==="rect"&&c==="r")z(g,{rx:d,ry:d}),j=!0;else if(c==="translateX"||c==="translateY"||c==="rotation"||c==="verticalAlign")j=p=!0;else if(c==="stroke")d=i.color(d,g,c);else if(c==="dashstyle")if(c="stroke-dasharray",d=d&&d.toLowerCase(),d==="solid")d=U;else{if(d){d=d.replace("shortdashdotdot",
-"3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=d.length;e--;)d[e]=w(d[e])*a["stroke-width"];d=d.join(",")}}else if(c==="isTracker")this[c]=d;else if(c==="width")d=w(d);else if(c==="align")c="text-anchor",d={left:"start",center:"middle",right:"end"}[d];else if(c==="title")e=g.getElementsByTagName("title")[0],e||(e=B.createElementNS("http://www.w3.org/2000/svg",
-"title"),g.appendChild(e)),e.textContent=d;c==="strokeWidth"&&(c="stroke-width");Fb&&c==="stroke-width"&&d===0&&(d=1.0E-6);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(c)&&(m||(this.symbolAttr(a),m=!0),j=!0);if(l&&/^(width|height|visibility|x|y|d|transform)$/.test(c))for(e=l.length;e--;)z(l[e],c,c==="height"?x(d-(l[e].cutHeight||0),0):d);if((c==="width"||c==="height")&&h==="rect"&&d<0)d=0;this[c]=d;p&&this.updateTransform();c==="text"?(this.textStr=d,this.added&&
-i.buildText(this)):j||z(g,c,d)}if(Fb&&/Chrome\/(18|19)/.test(ya)&&h==="text"&&(a.x!==A||a.y!==A))c=g.parentNode,d=g.nextSibling,c&&(c.removeChild(g),d?c.insertBefore(g,d):c.appendChild(g));return q},symbolAttr:function(a){var b=this;n("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(c){b[c]=o(a[c],b[c])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path","url("+this.renderer.url+"#"+a.id+")")},crisp:function(a,
-b,c,d,e){var f,g={},h={},i,a=a||this.strokeWidth||this.attr&&this.attr("stroke-width")||0;i=t(a)%2/2;h.x=W(b||this.x||0)+i;h.y=W(c||this.y||0)+i;h.width=W((d||this.width||0)-2*i);h.height=W((e||this.height||0)-2*i);h.strokeWidth=a;for(f in h)this[f]!==h[f]&&(this[f]=g[f]=h[f]);return g},css:function(a){var b=this.element,b=a&&a.width&&b.nodeName==="text",c,d="",e=function(a,b){return"-"+b.toLowerCase()};if(a&&a.color)a.fill=a.color;this.styles=a=u(this.styles,a);if(La&&!Da)b&&delete a.width,F(this.element,
-a);else{for(c in a)d+=c.replace(/([A-Z])/g,e)+":"+a[c]+";";this.attr({style:d})}b&&this.added&&this.renderer.buildText(this);return this},on:function(a,b){var c=b;ea&&a==="click"&&(a="touchstart",c=function(a){a.preventDefault();b()});this.element["on"+a]=c;return this},setRadialReference:function(a){this.element.radialReference=a;return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(){this.inverted=!0;this.updateTransform();return this},htmlCss:function(a){var b=
-this.element;if(b=a&&b.tagName==="SPAN"&&a.width)delete a.width,this.textWidth=b,this.updateTransform();this.styles=u(this.styles,a);F(this.element,a);return this},htmlGetBBox:function(a){var b=this.element,c=this.bBox;if(!c||a){if(b.nodeName==="text")b.style.position="absolute";c=this.bBox={x:b.offsetLeft,y:b.offsetTop,width:b.offsetWidth,height:b.offsetHeight}}return c},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,c=this.translateX||0,d=this.translateY||0,e=this.x||
-0,f=this.y||0,g=this.textAlign||"left",h={left:0,center:0.5,right:1}[g],i=g&&g!=="left",j=this.shadows;if(c||d)F(b,{marginLeft:c,marginTop:d}),j&&n(j,function(a){F(a,{marginLeft:c+1,marginTop:d+1})});this.inverted&&n(b.childNodes,function(c){a.invertChild(c,b)});if(b.tagName==="SPAN"){var k,l,j=this.rotation,m;k=0;var p=1,q=0,fa;m=w(this.textWidth);var r=this.xCorr||0,y=this.yCorr||0,$=[j,g,b.innerHTML,this.textWidth].join(",");if($!==this.cTT)s(j)&&(k=j*Eb,p=X(k),q=da(k),F(b,{filter:j?["progid:DXImageTransform.Microsoft.Matrix(M11=",
-p,", M12=",-q,", M21=",q,", M22=",p,", sizingMethod='auto expand')"].join(""):U})),k=o(this.elemWidth,b.offsetWidth),l=o(this.elemHeight,b.offsetHeight),k>m&&/[ \-]/.test(b.innerText)&&(F(b,{width:m+"px",display:"block",whiteSpace:"normal"}),k=m),m=a.fontMetrics(b.style.fontSize).b,r=p<0&&-k,y=q<0&&-l,fa=p*q<0,r+=q*m*(fa?1-h:h),y-=p*m*(j?fa?h:1-h:1),i&&(r-=k*h*(p<0?-1:1),j&&(y-=l*h*(q<0?-1:1)),F(b,{textAlign:g})),this.xCorr=r,this.yCorr=y;F(b,{left:e+r+"px",top:f+y+"px"});this.cTT=$}}else this.alignOnAdd=
-!0},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=this.inverted,d=this.rotation,e=[];c&&(a+=this.attr("width"),b+=this.attr("height"));(a||b)&&e.push("translate("+a+","+b+")");c?e.push("rotate(90) scale(-1,1)"):d&&e.push("rotate("+d+" "+(this.x||0)+" "+(this.y||0)+")");e.length&&z(this.element,"transform",e.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){a?(this.alignOptions=a,this.alignByTranslate=b,c||
-this.renderer.alignedObjects.push(this)):(a=this.alignOptions,b=this.alignByTranslate);var c=o(c,this.renderer),d=a.align,e=a.verticalAlign,f=(c.x||0)+(a.x||0),g=(c.y||0)+(a.y||0),h={};/^(right|center)$/.test(d)&&(f+=(c.width-(a.width||0))/{right:1,center:2}[d]);h[b?"translateX":"x"]=t(f);/^(bottom|middle)$/.test(e)&&(g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1));h[b?"translateY":"y"]=t(g);this[this.placed?"animate":"attr"](h);this.placed=!0;this.alignAttr=h;return this},getBBox:function(a){var b,
-c,d=this.rotation;c=this.element;var e=d*Eb;if(c.namespaceURI==="http://www.w3.org/2000/svg"||this.renderer.forExport){try{b=c.getBBox?u({},c.getBBox()):{width:c.offsetWidth,height:c.offsetHeight}}catch(f){}if(!b||b.width<0)b={width:0,height:0};a=b.width;c=b.height;if(d)b.width=M(c*da(e))+M(a*X(e)),b.height=M(c*X(e))+M(a*da(e))}else b=this.htmlGetBBox(a);return b},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},add:function(a){var b=
-this.renderer,c=a||b,d=c.element||b.box,e=d.childNodes,f=this.element,g=z(f,"zIndex"),h;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this);if(g)c.handleZ=!0,g=w(g);if(c.handleZ)for(c=0;c<e.length;c++)if(a=e[c],b=z(a,"zIndex"),a!==f&&(w(b)>g||!s(g)&&s(b))){d.insertBefore(f,a);h=!0;break}h||d.appendChild(f);this.added=!0;E(this,"add");return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d=a.box,
-e,f;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=null;Fa(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(f=0;f<a.stops.length;f++)a.stops[f]=a.stops[f].destroy();a.stops=null}a.safeRemoveChild(b);c&&n(c,function(b){a.safeRemoveChild(b)});d&&d.destroy();za(a.renderer.alignedObjects,a);for(e in a)delete a[e];return null},empty:function(){for(var a=this.element,b=a.childNodes,c=b.length;c--;)a.removeChild(b[c])},shadow:function(a,b,c){var d=[],e,f=this.element,g,h=this.parentInverted?
-"(-1,-1)":"(1,1)";if(a){for(a=1;a<=3;a++){e=f.cloneNode(0);g=7-2*a;z(e,{isShadow:"true",stroke:"rgb(0, 0, 0)","stroke-opacity":0.05*a,"stroke-width":g,transform:"translate"+h,fill:U});if(c)z(e,"height",x(z(e,"height")-g,0)),e.cutHeight=g;b?b.element.appendChild(e):f.parentNode.insertBefore(e,f);d.push(e)}this.shadows=d}return this}};var qa=function(){this.init.apply(this,arguments)};qa.prototype={Element:va,init:function(a,b,c,d){var e=location,f;f=this.createElement("svg").attr({xmlns:"http://www.w3.org/2000/svg",
-version:"1.1"});a.appendChild(f.element);this.isSVG=!0;this.box=f.element;this.boxWrapper=f;this.alignedObjects=[];this.url=La?"":e.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1");this.defs=this.createElement("defs").add();this.forExport=d;this.gradients={};this.setSize(b,c,!1);var g;if(Gb&&a.getBoundingClientRect)this.subPixelFix=b=function(){F(a,{left:0,top:0});g=a.getBoundingClientRect();F(a,{left:wa(g.left)-g.left+"px",top:wa(g.top)-g.top+"px"})},b(),I(N,"resize",b)},isHidden:function(){return!this.boxWrapper.getBBox().width},
-destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();Ba(this.gradients||{});this.gradients=null;if(a)this.defs=a.destroy();this.subPixelFix&&P(N,"resize",this.subPixelFix);return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:function(){},buildText:function(a){for(var b=a.element,c=o(a.textStr,"").toString().replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,
-"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g),d=b.childNodes,e=/style="([^"]+)"/,f=/href="([^"]+)"/,g=z(b,"x"),h=a.styles,i=h&&w(h.width),j=h&&h.lineHeight,k,h=d.length,l=[];h--;)b.removeChild(d[h]);i&&!a.added&&this.box.appendChild(b);c[c.length-1]===""&&c.pop();n(c,function(c,d){var h,fa=0,r,c=c.replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");h=c.split("|||");n(h,function(c){if(c!==""||h.length===1){var m={},n=B.createElementNS("http://www.w3.org/2000/svg",
-"tspan");e.test(c)&&z(n,"style",c.match(e)[1].replace(/(;| |^)color([ :])/,"$1fill$2"));f.test(c)&&(z(n,"onclick",'location.href="'+c.match(f)[1]+'"'),F(n,{cursor:"pointer"}));c=(c.replace(/<(.|\n)*?>/g,"")||" ").replace(/&lt;/g,"<").replace(/&gt;/g,">");n.appendChild(B.createTextNode(c));fa?m.dx=3:m.x=g;if(!fa){if(d){!Da&&a.renderer.forExport&&F(n,{display:"block"});r=N.getComputedStyle&&w(N.getComputedStyle(k,null).getPropertyValue("line-height"));if(!r||isNaN(r)){var o;if(!(o=j))if(!(o=k.offsetHeight))l[d]=
-b.getBBox().height,o=t(l[d]-(l[d-1]||0))||18;r=o}z(n,"dy",r)}k=n}z(n,m);b.appendChild(n);fa++;if(i)for(var c=c.replace(/-/g,"- ").split(" "),H=[];c.length||H.length;)o=a.getBBox().width,m=o>i,!m||c.length===1?(c=H,H=[],c.length&&(n=B.createElementNS("http://www.w3.org/2000/svg","tspan"),z(n,{dy:j||16,x:g}),b.appendChild(n),o>i&&(i=o))):(n.removeChild(n.firstChild),H.unshift(c.pop())),c.length&&n.appendChild(B.createTextNode(c.join(" ").replace(/- /g,"-")))}})})},button:function(a,b,c,d,e,f,g){var h=
-this.label(a,b,c),i=0,j,k,l,m,p,a={x1:0,y1:0,x2:0,y2:1},e=C(la("stroke-width",1,"stroke","#999","fill",la("linearGradient",a,"stops",[[0,"#FFF"],[1,"#DDD"]]),"r",3,"padding",3,"style",la("color","black")),e);l=e.style;delete e.style;f=C(e,la("stroke","#68A","fill",la("linearGradient",a,"stops",[[0,"#FFF"],[1,"#ACF"]])),f);m=f.style;delete f.style;g=C(e,la("stroke","#68A","fill",la("linearGradient",a,"stops",[[0,"#9BD"],[1,"#CDF"]])),g);p=g.style;delete g.style;I(h.element,"mouseenter",function(){h.attr(f).css(m)});
-I(h.element,"mouseleave",function(){j=[e,f,g][i];k=[l,m,p][i];h.attr(j).css(k)});h.setState=function(a){(i=a)?a===2&&h.attr(g).css(p):h.attr(e).css(l)};return h.on("click",function(){d.call(h)}).attr(e).css(u({cursor:"default"},l))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=t(a[1])+b%2/2);a[2]===a[5]&&(a[2]=a[5]=t(a[2])+b%2/2);return a},path:function(a){var b={fill:U};Ja(a)?b.d=a:aa(a)&&u(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=aa(a)?a:{x:a,y:b,r:c};return this.createElement("circle").attr(a)},
-arc:function(a,b,c,d,e,f){if(aa(a))b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;return this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0})},rect:function(a,b,c,d,e,f){e=aa(a)?a.r:e;e=this.createElement("rect").attr({rx:e,ry:e,fill:U});return e.attr(aa(a)?a:e.crisp(f,a,b,x(c,0),x(d,0)))},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[o(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=
-this.createElement("g");return s(a)?b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:U};arguments.length>1&&u(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(t(b),t(c),d,e,f),i=/^url\((.*?)\)$/,j,k;h?(g=this.path(h),u(g,{symbolName:a,x:b,y:c,
-width:d,height:e}),f&&u(g,f)):i.test(a)&&(k=function(a,b){a.attr({width:b[0],height:b[1]});a.alignByTranslate||a.translate(-t(b[0]/2),-t(b[1]/2))},j=a.match(i)[1],a=Hb[j],g=this.image(j).attr({x:b,y:c}),a?k(g,a):(g.attr({width:0,height:0}),S("img",{onload:function(){k(g,Hb[j]=[this.width,this.height])},src:j})));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+
-c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-1.0E-6,d=e.innerR,h=e.open,i=X(f),j=da(f),k=X(g),g=da(g),e=e.end-f<xa?0:1;return["M",a+c*i,b+c*j,"A",c,c,0,e,1,a+c*k,b+c*g,h?"M":"L",a+d*k,b+d*g,"A",d,d,0,e,0,a+d*i,b+d*j,h?"":"Z"]}},clipRect:function(a,
-b,c,d){var e="highcharts-"+sb++,f=this.createElement("clipPath").attr({id:e}).add(this.defs),a=this.rect(a,b,c,d,0).add(f);a.id=e;a.clipPath=f;return a},color:function(a,b,c){var d=this,e,f=/^rgba/,g;a&&a.linearGradient?g="linearGradient":a&&a.radialGradient&&(g="radialGradient");if(g){var c=a[g],h=d.gradients,i,j,k,b=b.radialReference;if(!c.id||!h[c.id])Ja(c)&&(a[g]=c={x1:c[0],y1:c[1],x2:c[2],y2:c[3],gradientUnits:"userSpaceOnUse"}),g==="radialGradient"&&b&&!s(c.gradientUnits)&&u(c,{cx:b[0]-b[2]/
-2+c.cx*b[2],cy:b[1]-b[2]/2+c.cy*b[2],r:c.r*b[2],gradientUnits:"userSpaceOnUse"}),c.id="highcharts-"+sb++,h[c.id]=i=d.createElement(g).attr(c).add(d.defs),i.stops=[],n(a.stops,function(a){f.test(a[1])?(e=pa(a[1]),j=e.get("rgb"),k=e.get("a")):(j=a[1],k=1);a=d.createElement("stop").attr({offset:a[0],"stop-color":j,"stop-opacity":k}).add(i);i.stops.push(a)});return"url("+d.url+"#"+c.id+")"}else return f.test(a)?(e=pa(a),z(b,c+"-opacity",e.get("a")),e.get("rgb")):(b.removeAttribute(c+"-opacity"),a)},text:function(a,
-b,c,d){var e=V.chart.style;if(d&&!this.forExport)return this.html(a,b,c);b=t(o(b,0));c=t(o(c,0));a=this.createElement("text").attr({x:b,y:c,text:a}).css({fontFamily:e.fontFamily,fontSize:e.fontSize});a.x=b;a.y=c;return a},html:function(a,b,c){var d=V.chart.style,e=this.createElement("span"),f=e.attrSetters,g=e.element,h=e.renderer;f.text=function(a){g.innerHTML=a;return!1};f.x=f.y=f.align=function(a,b){b==="align"&&(b="textAlign");e[b]=a;e.htmlUpdateTransform();return!1};e.attr({text:a,x:t(b),y:t(c)}).css({position:"absolute",
-whiteSpace:"nowrap",fontFamily:d.fontFamily,fontSize:d.fontSize});e.css=e.htmlCss;if(h.isSVG)e.add=function(a){var b,c,d=h.box.parentNode;if(a){if(b=a.div,!b)b=a.div=S(ia,{className:z(a.element,"class")},{position:"absolute",left:a.attr("translateX")+"px",top:a.attr("translateY")+"px"},d),c=b.style,u(a.attrSetters,{translateX:function(a){c.left=a+"px"},translateY:function(a){c.top=a+"px"},visibility:function(a,b){c[b]=a}})}else b=d;b.appendChild(g);e.added=!0;e.alignOnAdd&&e.htmlUpdateTransform();
-return e};return e},fontMetrics:function(a){var a=w(a||11),a=a<24?a+4:t(a*1.2),b=t(a*0.8);return{h:a,b:b}},label:function(a,b,c,d,e,f,g,h,i){function j(){var a=p.styles,a=a&&a.textAlign,b=$*(1-y),c;c=h?0:Ha;if(s(Ga)&&(a==="center"||a==="right"))b+={center:0.5,right:1}[a]*(Ga-r.width);(b!==q.x||c!==q.y)&&q.attr({x:b,y:c});q.x=b;q.y=c}function k(a,b){o?o.attr(a,b):x[a]=b}function l(){p.attr({text:a,x:b,y:c});s(e)&&p.attr({anchorX:e,anchorY:f})}var m=this,p=m.g(i),q=m.text("",0,0,g).attr({zIndex:1}).add(p),
-o,r,y=0,$=3,Ga,v,H,J,K=0,x={},Ha,g=p.attrSetters;I(p,"add",l);g.width=function(a){Ga=a;return!1};g.height=function(a){v=a;return!1};g.padding=function(a){s(a)&&a!==$&&($=a,j());return!1};g.align=function(a){y={left:0,center:0.5,right:1}[a];return!1};g.text=function(a,b){q.attr(b,a);var c;c=q.element.style;r=(Ga===void 0||v===void 0||p.styles.textAlign)&&q.getBBox(!0);p.width=(Ga||r.width||0)+2*$;p.height=(v||r.height||0)+2*$;Ha=$+m.fontMetrics(c&&c.fontSize).b;if(!o)c=h?-Ha:0,p.box=o=d?m.symbol(d,
--y*$,c,p.width,p.height):m.rect(-y*$,c,p.width,p.height,0,x["stroke-width"]),o.add(p);o.attr(C({width:p.width,height:p.height},x));x=null;j();return!1};g["stroke-width"]=function(a,b){K=a%2/2;k(b,a);return!1};g.stroke=g.fill=g.r=function(a,b){k(b,a);return!1};g.anchorX=function(a,b){e=a;k(b,a+K-H);return!1};g.anchorY=function(a,b){f=a;k(b,a-J);return!1};g.x=function(a){p.x=a;a-=y*((Ga||r.width)+$);H=t(a);p.attr("translateX",H);return!1};g.y=function(a){J=p.y=t(a);p.attr("translateY",a);return!1};
-var w=p.css;return u(p,{css:function(a){if(a){var b={},a=C({},a);n("fontSize,fontWeight,fontFamily,color,lineHeight,width".split(","),function(c){a[c]!==A&&(b[c]=a[c],delete a[c])});q.css(b)}return w.call(p,a)},getBBox:function(){return o.getBBox()},shadow:function(a){o.shadow(a);return p},destroy:function(){P(p,"add",l);P(p.element,"mouseenter");P(p.element,"mouseleave");q&&(q=q.destroy());va.prototype.destroy.call(p)}})}};Ta=qa;var ka;if(!Da&&!ga){ka={init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],
-d=["position: ","absolute",";"];(b==="shape"||b===ia)&&d.push("left:0;top:0;width:1px;height:1px;");Ca&&d.push("visibility: ",b===ia?"hidden":"visible");c.push(' style="',d.join(""),'"/>');if(b)c=b===ia||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=S(c);this.renderer=a;this.attrSetters={}},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);Ca&&d.gVis==="hidden"&&F(c,{visibility:"hidden"});d.appendChild(c);this.added=!0;this.alignOnAdd&&
-!this.deferUpdateTransform&&this.updateTransform();E(this,"add");return this},toggleChildren:function(a,b){for(var c=a.childNodes,d=c.length;d--;)F(c[d],{visibility:b}),c[d].nodeName==="DIV"&&this.toggleChildren(c[d],b)},updateTransform:va.prototype.htmlUpdateTransform,attr:function(a,b){var c,d,e,f=this.element||{},g=f.style,h=f.nodeName,i=this.renderer,j=this.symbolName,k,l=this.shadows,m,p=this.attrSetters,q=this;ra(a)&&s(b)&&(c=a,a={},a[c]=b);if(ra(a))c=a,q=c==="strokeWidth"||c==="stroke-width"?
-this.strokeweight:this[c];else for(c in a)if(d=a[c],m=!1,e=p[c]&&p[c](d,c),e!==!1&&d!==null){e!==A&&(d=e);if(j&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(c))k||(this.symbolAttr(a),k=!0),m=!0;else if(c==="d"){d=d||[];this.d=d.join(" ");e=d.length;for(m=[];e--;)m[e]=Ka(d[e])?t(d[e]*10)-5:d[e]==="Z"?"x":d[e];d=m.join(" ")||"x";f.path=d;if(l)for(e=l.length;e--;)l[e].path=l[e].cutOff?this.cutOffPath(d,l[e].cutOff):d;m=!0}else if(c==="zIndex"||c==="visibility"){if(Ca&&c==="visibility"&&
-h==="DIV")f.gVis=d,this.toggleChildren(f,d),d==="visible"&&(d=null);d&&(g[c]=d);m=!0}else if(c==="width"||c==="height")d=x(0,d),this[c]=d,this.updateClipping?(this[c]=d,this.updateClipping()):g[c]=d,m=!0;else if(c==="x"||c==="y")this[c]=d,g[{x:"left",y:"top"}[c]]=d;else if(c==="class")f.className=d;else if(c==="stroke")d=i.color(d,f,c),c="strokecolor";else if(c==="stroke-width"||c==="strokeWidth")f.stroked=d?!0:!1,c="strokeweight",this[c]=d,Ka(d)&&(d+="px");else if(c==="dashstyle")(f.getElementsByTagName("stroke")[0]||
-S(i.prepVML(["<stroke/>"]),null,null,f))[c]=d||"solid",this.dashstyle=d,m=!0;else if(c==="fill")h==="SPAN"?g.color=d:(f.filled=d!==U?!0:!1,d=i.color(d,f,c),c="fillcolor");else if(h==="shape"&&c==="rotation")this[c]=d;else if(c==="translateX"||c==="translateY"||c==="rotation")this[c]=d,this.updateTransform(),m=!0;else if(c==="text")this.bBox=null,f.innerHTML=d,m=!0;if(l&&c==="visibility")for(e=l.length;e--;)l[e].style[c]=d;m||(Ca?f[c]=d:z(f,c,d))}return q},clip:function(a){var b=this,c=a.members,d=
-b.element,e=d.parentNode;c.push(b);b.destroyClip=function(){za(c,b)};e&&e.className==="highcharts-tracker"&&!Ca&&F(d,{visibility:"hidden"});return b.css(a.getCSS(b))},css:va.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Qa(a)},destroy:function(){this.destroyClip&&this.destroyClip();return va.prototype.destroy.apply(this)},empty:function(){for(var a=this.element.childNodes,b=a.length,c;b--;)c=a[b],c.parentNode.removeChild(c)},on:function(a,b){this.element["on"+a]=function(){var a=N.event;
-a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length;if(c===9||c===11)a[c-4]=a[c-2]=w(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e=this.element,f=this.renderer,g,h=e.style,i,j=e.path,k,l;j&&typeof j.value!=="string"&&(j="x");l=j;if(a){for(a=1;a<=3;a++){k=7-2*a;c&&(l=this.cutOffPath(j.value,k+0.5));i=['<shape isShadow="true" strokeweight="',7-2*a,'" filled="false" path="',l,'" coordsize="10 10" style="',e.style.cssText,'" />'];g=
-S(f.prepVML(i),null,{left:w(h.left)+1,top:w(h.top)+1});if(c)g.cutOff=k+1;i=['<stroke color="black" opacity="',0.05*a,'"/>'];S(f.prepVML(i),null,null,g);b?b.element.appendChild(g):e.parentNode.insertBefore(g,e);d.push(g)}this.shadows=d}return this}};ka=ca(va,ka);var ha={Element:ka,isIE8:ya.indexOf("MSIE 8.0")>-1,init:function(a,b,c){var d,e;this.alignedObjects=[];d=this.createElement(ia);e=d.element;e.style.position="relative";a.appendChild(d.element);this.box=e;this.boxWrapper=d;this.setSize(b,c,
-!1);if(!B.namespaces.hcv)B.namespaces.add("hcv","urn:schemas-microsoft-com:vml"),B.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement();return u(e,{members:[],left:a,top:b,width:c,height:d,getCSS:function(a){var b=a.inverted,c=this.top,d=this.left,e=d+this.width,k=c+this.height,c={clip:"rect("+t(b?d:c)+"px,"+t(b?k:
-e)+"px,"+t(b?e:k)+"px,"+t(b?c:d)+"px)"};!b&&Ca&&a.element.nodeName!=="IMG"&&u(c,{width:e+"px",height:k+"px"});return c},updateClipping:function(){n(e.members,function(a){a.css(e.getCSS(a))})}})},color:function(a,b,c){var d,e=/^rgba/,f,g=U;a&&a.linearGradient?f="gradient":a&&a.radialGradient&&(f="pattern");if(f){var h,i,j=a.linearGradient||a.radialGradient,k,l,m,p,q,o,r="",a=a.stops,y,s=[];l=a[0];y=a[a.length-1];l[0]>0&&a.unshift([0,l[1]]);y[0]<1&&a.push([1,y[1]]);n(a,function(a,b){e.test(a[1])?(d=
-pa(a[1]),h=d.get("rgb"),i=d.get("a")):(h=a[1],i=1);s.push(a[0]*100+"% "+h);b?(p=i,q=h):(m=i,o=h)});f==="gradient"?(k=j.x1||j[0]||0,a=j.y1||j[1]||0,l=j.x2||j[2]||0,j=j.y2||j[3]||0,k=90-L.atan((j-a)/(l-k))*180/xa):(g=j.r*2,r='src="http://code.highcharts.com/gfx/radial-gradient.png" size="'+g+","+g+'" origin="0.5,0.5" position="'+j.cx+","+j.cy+'" color2="'+o+'" ',g=q);c==="fill"?(c=['<fill colors="'+s.join(",")+'" angle="',k,'" opacity="',p,'" o:opacity2="',m,'" type="',f,'" ',r,'focus="100%" method="any" />'],
-S(this.prepVML(c),null,null,b)):g=h}else if(e.test(a)&&b.tagName!=="IMG")d=pa(a),c=["<",c,' opacity="',d.get("a"),'"/>'],S(this.prepVML(c),null,null,b),g=d.get("rgb");else{b=b.getElementsByTagName(c);if(b.length)b[0].opacity=1;g=a}return g},prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):
-a=a.replace("<","<hcv:");return a},text:qa.prototype.html,path:function(a){var b={coordsize:"10 10"};Ja(a)?b.d=a:aa(a)&&u(b,a);return this.createElement("shape").attr(b)},circle:function(a,b,c){return this.symbol("circle").attr({x:a-c,y:b-c,width:2*c,height:2*c})},g:function(a){var b;a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement(ia).attr(b)},image:function(a,b,c,d,e){var f=this.createElement("img").attr({src:a});arguments.length>1&&f.css({left:b,top:c,width:d,
-height:e});return f},rect:function(a,b,c,d,e,f){if(aa(a))b=a.y,c=a.width,d=a.height,f=a.strokeWidth,a=a.x;var g=this.symbol("rect");g.r=e;return g.attr(g.crisp(f,a,b,x(c,0),x(d,0)))},invertChild:function(a,b){var c=b.style;F(a,{flip:"x",left:w(c.width)-1,top:w(c.height)-1,rotation:-90})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=X(f),d=da(f),i=X(g),j=da(g),k=e.innerR,l=0.08/h,m=k&&0.1/k||0;if(g-f===0)return["x"];else 2*xa-g+f<l?i=-l:g-f<m&&(i=X(f+m));f=["wa",a-h,b-h,a+h,
-b+h,a+h*c,b+h*d,a+h*i,b+h*j];e.open&&f.push("M",a-k,b-k);f.push("at",a-k,b-k,a+k,b+k,a+k*i,b+k*j,a+k*c,b+k*d,"x","e");return f},circle:function(a,b,c,d){return["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},rect:function(a,b,c,d,e){var f=a+c,g=b+d,h;!s(e)||!e.r?f=qa.prototype.symbols.square.apply(0,arguments):(h=O(e.r,c,d),f=["M",a+h,b,"L",f-h,b,"wa",f-2*h,b,f,b+2*h,f-h,b,f,b+h,"L",f,g-h,"wa",f-2*h,g-2*h,f,g,f,g-h,f-h,g,"L",a+h,g,"wa",a,g-2*h,a+2*h,g,a+h,g,a,g-h,"L",a,b+h,"wa",a,b,a+2*h,b+2*h,a,b+h,a+
-h,b,"x","e"]);return f}}};ka=function(){this.init.apply(this,arguments)};ka.prototype=C(qa.prototype,ha);Ta=ka}var fb,Nb;if(ga)fb=function(){},fb.prototype.symbols={},Nb=function(){function a(){var a=b.length,d;for(d=0;d<a;d++)b[d]();b=[]}var b=[];return{push:function(c,d){b.length===0&&Ib(d,a);b.push(c)}}}();Ta=ka||fb||qa;Sa.prototype={addLabel:function(){var a=this.axis,b=a.options,c=a.chart,d=a.horiz,e=a.categories,f=this.pos,g=b.labels,h=a.tickPositions,d=e&&d&&e.length&&!g.step&&!g.staggerLines&&
-!g.rotation&&c.plotWidth/h.length||!d&&c.plotWidth/2,i=f===h[0],j=f===h[h.length-1],k=e&&s(e[f])?e[f]:f,e=this.label,h=h.info,l;a.isDatetimeAxis&&h&&(l=b.dateTimeLabelFormats[h.higherRanks[f]||h.unitName]);this.isFirst=i;this.isLast=j;b=a.labelFormatter.call({axis:a,chart:c,isFirst:i,isLast:j,dateTimeLabelFormat:l,value:a.isLog?ja(ba(k)):k});f=d&&{width:x(1,t(d-2*(g.padding||10)))+"px"};f=u(f,g.style);if(s(e))e&&e.attr({text:b}).css(f);else{d={align:g.align};if(Ka(g.rotation))d.rotation=g.rotation;
-this.label=s(b)&&g.enabled?c.renderer.text(b,0,0,g.useHTML).attr(d).css(f).add(a.axisGroup):null}},getLabelSize:function(){var a=this.label,b=this.axis;return a?(this.labelBBox=a.getBBox(!0))[b.horiz?"height":"width"]:0},getLabelSides:function(){var a=this.axis.options.labels,b=this.labelBBox.width,a=b*{left:0,center:0.5,right:1}[a.align]-a.x;return[-a,b-a]},handleOverflow:function(a,b){var c=!0,d=this.axis,e=d.chart,f=this.isFirst,g=this.isLast,h=b.x,i=d.reversed,j=d.tickPositions;if(f||g){var k=
-this.getLabelSides(),l=k[0],k=k[1],e=e.plotLeft,m=e+d.len,j=(d=d.ticks[j[a+(f?1:-1)]])&&d.label.xy.x+d.getLabelSides()[f?0:1];f&&!i||g&&i?h+l<e&&(h=e-l,d&&h+k>j&&(c=!1)):h+k>m&&(h=m-k,d&&h+l<j&&(c=!1));b.x=h}return c},getPosition:function(a,b,c,d){var e=this.axis,f=e.chart,g=d&&f.oldChartHeight||f.chartHeight;return{x:a?e.translate(b+c,null,null,d)+e.transB:e.left+e.offset+(e.opposite?(d&&f.oldChartWidth||f.chartWidth)-e.right-e.left:0),y:a?g-e.bottom+e.offset-(e.opposite?e.height:0):g-e.translate(b+
-c,null,null,d)-e.transB}},getLabelPosition:function(a,b,c,d,e,f,g,h){var i=this.axis,j=i.transA,k=i.reversed,i=i.staggerLines,a=a+e.x-(f&&d?f*j*(k?-1:1):0),b=b+e.y-(f&&!d?f*j*(k?1:-1):0);s(e.y)||(b+=w(c.styles.lineHeight)*0.9-c.getBBox().height/2);i&&(b+=g/(h||1)%i*16);return{x:a,y:b}},getMarkPath:function(a,b,c,d,e,f){return f.crispLine(["M",a,b,"L",a+(e?0:-c),b+(e?c:0)],d)},render:function(a,b){var c=this.axis,d=c.options,e=c.chart.renderer,f=c.horiz,g=this.type,h=this.label,i=this.pos,j=d.labels,
-k=this.gridLine,l=g?g+"Grid":"grid",m=g?g+"Tick":"tick",p=d[l+"LineWidth"],q=d[l+"LineColor"],n=d[l+"LineDashStyle"],r=d[m+"Length"],l=d[m+"Width"]||0,y=d[m+"Color"],s=d[m+"Position"],m=this.mark,t=j.step,v=!0,H=d.categories&&d.tickmarkPlacement==="between"?0.5:0,J=this.getPosition(f,i,H,b),K=J.x,J=J.y,x=c.staggerLines;if(p){i=c.getPlotLinePath(i+H,p,b);if(k===A){k={stroke:q,"stroke-width":p};if(n)k.dashstyle=n;if(!g)k.zIndex=1;this.gridLine=k=p?e.path(i).attr(k).add(c.gridGroup):null}if(!b&&k&&i)k[this.isNew?
-"attr":"animate"]({d:i})}if(l)s==="inside"&&(r=-r),c.opposite&&(r=-r),g=this.getMarkPath(K,J,r,l,f,e),m?m.animate({d:g}):this.mark=e.path(g).attr({stroke:y,"stroke-width":l}).add(c.axisGroup);if(h&&!isNaN(K))h.xy=J=this.getLabelPosition(K,J,h,f,j,H,a,t),this.isFirst&&!o(d.showFirstLabel,1)||this.isLast&&!o(d.showLastLabel,1)?v=!1:!x&&f&&j.overflow==="justify"&&!this.handleOverflow(a,J)&&(v=!1),t&&a%t&&(v=!1),v?(h[this.isNew?"attr":"animate"](J),h.show(),this.isNew=!1):h.hide()},destroy:function(){Ba(this,
-this.axis)}};nb.prototype={render:function(){var a=this,b=a.axis,c=b.horiz,d=(b.pointRange||0)/2,e=a.options,f=e.label,g=a.label,h=e.width,i=e.to,j=e.from,k=s(j)&&s(i),l=e.value,m=e.dashStyle,p=a.svgElem,q=[],n,r=e.color,y=e.zIndex,t=e.events,u=b.chart.renderer;b.isLog&&(j=ma(j),i=ma(i),l=ma(l));if(h){if(q=b.getPlotLinePath(l,h),d={stroke:r,"stroke-width":h},m)d.dashstyle=m}else if(k){if(j=x(j,b.min-d),i=O(i,b.max+d),q=b.getPlotBandPath(j,i,e),d={fill:r},e.borderWidth)d.stroke=e.borderColor,d["stroke-width"]=
-e.borderWidth}else return;if(s(y))d.zIndex=y;if(p)q?p.animate({d:q},null,p.onGetPath):(p.hide(),p.onGetPath=function(){p.show()});else if(q&&q.length&&(a.svgElem=p=u.path(q).attr(d).add(),t))for(n in e=function(b){p.on(b,function(c){t[b].apply(a,[c])})},t)e(n);if(f&&s(f.text)&&q&&q.length&&b.width>0&&b.height>0){f=C({align:c&&k&&"center",x:c?!k&&4:10,verticalAlign:!c&&k&&"middle",y:c?k?16:10:k?6:-4,rotation:c&&!k&&90},f);if(!g)a.label=g=u.text(f.text,0,0).attr({align:f.textAlign||f.align,rotation:f.rotation,
-zIndex:y}).css(f.style).add();b=[q[1],q[4],o(q[6],q[1])];q=[q[2],q[5],o(q[7],q[2])];c=Pa(b);k=Pa(q);g.align(f,!1,{x:c,y:k,width:Aa(b)-c,height:Aa(q)-k});g.show()}else g&&g.hide();return a},destroy:function(){za(this.axis.plotLinesAndBands,this);Ba(this,this.axis)}};Cb.prototype={destroy:function(){Ba(this,this.axis)},setTotal:function(a){this.cum=this.total=a},render:function(a){var b=this.options.formatter.call(this);this.label?this.label.attr({text:b,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(b,
-0,0).css(this.options.style).attr({align:this.textAlign,rotation:this.options.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=this.isNegative,g=c.translate(this.total,0,0,0,1),c=c.translate(0),c=M(g-c),h=d.xAxis[0].translate(this.x)+a,d=d.plotHeight,e={x:e?f?g:g-c:h,y:e?d-h-b:f?d-g-c:d-g,width:e?c:b,height:e?b:c};this.label&&this.label.align(this.alignOptions,null,e).attr({visibility:"visible"})}};ob.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",
-second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0",labels:G,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#6D869F",
-fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Y-values"},stackLabels:{enabled:!1,formatter:function(){return this.total},style:G.style}},defaultLeftAxisOptions:{labels:{align:"right",x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{align:"left",x:8,y:null},title:{rotation:90}},
-defaultBottomAxisOptions:{labels:{align:"center",x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{align:"center",x:0,y:-5},title:{rotation:0}},init:function(a,b){var c=b.isX;this.horiz=a.inverted?!c:c;this.xOrY=(this.isXAxis=c)?"x":"y";this.opposite=b.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(b);var d=this.options,e=d.type,f=e==="datetime";this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.staggerLines=this.horiz&&d.labels.staggerLines;
-this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.categories=d.categories;this.isLog=e==="logarithmic";this.isLinked=s(d.linkedTo);this.isDatetimeAxis=f;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.min=this.max=null;var g,d=this.options.events;a.axes.push(this);a[c?"xAxis":"yAxis"].push(this);this.series=
-[];if(a.inverted&&c&&this.reversed===A)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;this.addPlotLine=this.addPlotBand=this.addPlotBandOrLine;for(g in d)I(this,g,d[g]);if(this.isLog)this.val2lin=ma,this.lin2val=ba},setOptions:function(a){this.options=C(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],a)},defaultLabelFormatter:function(){var a=
-this.axis,b=this.value,c=a.tickInterval,d=this.dateTimeLabelFormat;return a.categories?b:d?db(d,b):c%1E6===0?b/1E6+"M":c%1E3===0?b/1E3+"k":b>=1E3?Xa(b,0):Xa(b,-1)},getSeriesExtremes:function(){var a=this,b=a.chart,c=a.stacks,d=[],e=[],f;a.dataMin=a.dataMax=null;n(a.series,function(g){if(g.visible||!b.options.chart.ignoreHiddenSeries){var h=g.options,i,j,k,l,m,p,q,n,r,y=h.threshold,t,u=[],v=0;if(a.isLog&&y<=0)y=h.threshold=null;if(a.isXAxis){if(h=g.xData,h.length)a.dataMin=O(o(a.dataMin,h[0]),Pa(h)),
-a.dataMax=x(o(a.dataMax,h[0]),Aa(h))}else{var H,J,K,C=g.cropped,Ha=g.xAxis.getExtremes(),w=!!g.modifyValue;i=h.stacking;a.usePercentage=i==="percent";if(i)m=h.stack,l=g.type+o(m,""),p="-"+l,g.stackKey=l,j=d[l]||[],d[l]=j,k=e[p]||[],e[p]=k;if(a.usePercentage)a.dataMin=0,a.dataMax=99;h=g.processedXData;q=g.processedYData;t=q.length;for(f=0;f<t;f++)if(n=h[f],r=q[f],r!==null&&r!==A&&(i?(J=(H=r<y)?k:j,K=H?p:l,r=J[n]=s(J[n])?J[n]+r:r,c[K]||(c[K]={}),c[K][n]||(c[K][n]=new Cb(a,a.options.stackLabels,H,n,
-m)),c[K][n].setTotal(r)):w&&(r=g.modifyValue(r)),C||(h[f+1]||n)>=Ha.min&&(h[f-1]||n)<=Ha.max))if(n=r.length)for(;n--;)r[n]!==null&&(u[v++]=r[n]);else u[v++]=r;if(!a.usePercentage&&u.length)a.dataMin=O(o(a.dataMin,u[0]),Pa(u)),a.dataMax=x(o(a.dataMax,u[0]),Aa(u));if(s(y))if(a.dataMin>=y)a.dataMin=y,a.ignoreMinPadding=!0;else if(a.dataMax<y)a.dataMax=y,a.ignoreMaxPadding=!0}}})},translate:function(a,b,c,d,e){var f=this.len,g=1,h=0,i=d?this.oldTransA:this.transA,d=d?this.oldMin:this.min,e=this.options.ordinal||
-this.isLog&&e;if(!i)i=this.transA;c&&(g*=-1,h=f);this.reversed&&(g*=-1,h-=g*f);b?(this.reversed&&(a=f-a),a=a/i+d,e&&(a=this.lin2val(a))):(e&&(a=this.val2lin(a)),a=g*(a-d)*i+h+g*this.minPixelPadding);return a},getPlotLinePath:function(a,b,c){var d=this.chart,e=this.left,f=this.top,g,h,i,a=this.translate(a,null,null,c),j=c&&d.oldChartHeight||d.chartHeight,k=c&&d.oldChartWidth||d.chartWidth,l;g=this.transB;c=h=t(a+g);g=i=t(j-a-g);if(isNaN(a))l=!0;else if(this.horiz){if(g=f,i=j-this.bottom,c<e||c>e+this.width)l=
-!0}else if(c=e,h=k-this.right,g<f||g>f+this.height)l=!0;return l?null:d.renderer.crispLine(["M",c,g,"L",h,i],b||0)},getPlotBandPath:function(a,b){var c=this.getPlotLinePath(b),d=this.getPlotLinePath(a);d&&c?d.push(c[4],c[5],c[1],c[2]):d=null;return d},getLinearTickPositions:function(a,b,c){for(var d,b=ja(W(b/a)*a),c=ja(wa(c/a)*a),e=[];b<=c;){e.push(b);b=ja(b+a);if(b===d)break;d=b}return e},getLogTickPositions:function(a,b,c,d){var e=this.options,f=this.len,g=[];if(!d)this._minorAutoInterval=null;
-if(a>=0.5)a=t(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=W(b),h,i,j,k,l,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];f<c+1&&!l;f++){i=e.length;for(h=0;h<i&&!l;h++)j=ma(ba(f)*e[h]),j>b&&g.push(k),k>c&&(l=!0),k=j}else if(b=ba(b),c=ba(c),a=e[d?"minorTickInterval":"tickInterval"],a=o(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=gb(a,null,L.pow(10,W(L.log(a)/L.LN10))),g=Ea(this.getLinearTickPositions(a,
-b,c),ma),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g},getMinorTickPositions:function(){var a=this.tickPositions,b=this.minorTickInterval,c=[],d,e;if(this.isLog){e=a.length;for(d=1;d<e;d++)c=c.concat(this.getLogTickPositions(b,a[d-1],a[d],!0))}else for(a=this.min+(a[0]-this.min)%b;a<=this.max;a+=b)c.push(a);return c},adjustForMinRange:function(){var a=this.options,b=this.min,c=this.max,d,e=this.dataMax-this.dataMin>=this.minRange,f,g,h,i,j;if(this.isXAxis&&this.minRange===A&&
-!this.isLog)s(a.min)||s(a.max)?this.minRange=null:(n(this.series,function(a){i=a.xData;for(g=j=a.xIncrement?1:i.length-1;g>0;g--)if(h=i[g]-i[g-1],f===A||h<f)f=h}),this.minRange=O(f*5,this.dataMax-this.dataMin));if(c-b<this.minRange){var k=this.minRange;d=(k-c+b)/2;d=[b-d,o(a.min,b-d)];if(e)d[2]=this.dataMin;b=Aa(d);c=[b+k,o(a.max,b+k)];if(e)c[2]=this.dataMax;c=Pa(c);c-b<k&&(d[0]=c-k,d[1]=o(a.min,c-k),b=Aa(d))}this.min=b;this.max=c},setAxisTranslation:function(){var a=this.max-this.min,b=0,c,d,e=this.transA;
-if(this.isXAxis)this.isLinked?b=this.linkedParent.pointRange:n(this.series,function(a){b=x(b,a.pointRange);d=a.closestPointRange;!a.noSharedTooltip&&s(d)&&(c=s(c)?O(c,d):d)}),this.pointRange=b,this.closestPointRange=c;this.oldTransA=e;this.translationSlope=this.transA=e=this.len/(a+b||1);this.transB=this.horiz?this.left:this.bottom;this.minPixelPadding=e*(b/2)},setTickPositions:function(a){var b=this,c=b.chart,d=b.options,e=b.isLog,f=b.isDatetimeAxis,g=b.isXAxis,h=b.isLinked,i=b.options.tickPositioner,
-j=d.maxPadding,k=d.minPadding,l=d.tickInterval,m=d.tickPixelInterval,p=b.categories;h?(b.linkedParent=c[g?"xAxis":"yAxis"][d.linkedTo],c=b.linkedParent.getExtremes(),b.min=o(c.min,c.dataMin),b.max=o(c.max,c.dataMax),d.type!==b.linkedParent.options.type&&mb(11,1)):(b.min=o(b.userMin,d.min,b.dataMin),b.max=o(b.userMax,d.max,b.dataMax));if(e)!a&&O(b.min,o(b.dataMin,b.min))<=0&&mb(10,1),b.min=ja(ma(b.min)),b.max=ja(ma(b.max));if(b.range&&(b.userMin=b.min=x(b.min,b.max-b.range),b.userMax=b.max,a))b.range=
-null;b.adjustForMinRange();if(!p&&!b.usePercentage&&!h&&s(b.min)&&s(b.max)){c=b.max-b.min||1;if(!s(d.min)&&!s(b.userMin)&&k&&(b.dataMin<0||!b.ignoreMinPadding))b.min-=c*k;if(!s(d.max)&&!s(b.userMax)&&j&&(b.dataMax>0||!b.ignoreMaxPadding))b.max+=c*j}b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!l&&m===b.linkedParent.options.tickPixelInterval?b.linkedParent.tickInterval:o(l,p?1:(b.max-b.min)*m/(b.len||1));g&&!a&&n(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});
-b.setAxisTranslation();b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval);if(!f&&!e&&(a=L.pow(10,W(L.log(b.tickInterval)/L.LN10)),!s(d.tickInterval)))b.tickInterval=gb(b.tickInterval,null,a,d);b.minorTickInterval=d.minorTickInterval==="auto"&&b.tickInterval?b.tickInterval/5:d.minorTickInterval;b.tickPositions=i=d.tickPositions||i&&i.apply(b,[b.min,b.max]);if(!i)i=f?(b.getNonLinearTimeTicks||Pb)(Ob(b.tickInterval,
-d.units),b.min,b.max,d.startOfWeek,b.ordinalPositions,b.closestPointRange,!0):e?b.getLogTickPositions(b.tickInterval,b.min,b.max):b.getLinearTickPositions(b.tickInterval,b.min,b.max),b.tickPositions=i;if(!h)e=i[0],f=i[i.length-1],d.startOnTick?b.min=e:b.min>e&&i.shift(),d.endOnTick?b.max=f:b.max<f&&i.pop()},setMaxTicks:function(){var a=this.chart,b=a.maxTicks,c=this.tickPositions,d=this.xOrY;b||(b={x:0,y:0});if(!this.isLinked&&!this.isDatetimeAxis&&c.length>b[d]&&this.options.alignTicks!==!1)b[d]=
-c.length;a.maxTicks=b},adjustTickAmount:function(){var a=this.xOrY,b=this.tickPositions,c=this.chart.maxTicks;if(c&&c[a]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){var d=this.tickAmount,e=b.length;this.tickAmount=a=c[a];if(e<a){for(;b.length<a;)b.push(ja(b[b.length-1]+this.tickInterval));this.transA*=(e-1)/(a-1);this.max=b[b.length-1]}if(s(d)&&a!==d)this.isDirty=!0}},setScale:function(){var a=this.stacks,b,c,d,e;this.oldMin=this.min;this.oldMax=this.max;
-this.oldAxisLength=this.len;this.setAxisSize();e=this.len!==this.oldAxisLength;n(this.series,function(a){if(a.isDirtyData||a.isDirty||a.xAxis.isDirty)d=!0});if(e||d||this.isLinked||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax)if(this.getSeriesExtremes(),this.setTickPositions(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,!this.isDirty)this.isDirty=e||this.min!==this.oldMin||this.max!==this.oldMax;if(!this.isXAxis)for(b in a)for(c in a[b])a[b][c].cum=a[b][c].total;this.setMaxTicks()},
-setExtremes:function(a,b,c,d,e){var f=this,g=f.chart,c=o(c,!0),e=u(e,{min:a,max:b});E(f,"setExtremes",e,function(){f.userMin=a;f.userMax=b;f.isDirtyExtremes=!0;c&&g.redraw(d)})},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=b.offsetRight||0;this.left=o(b.left,a.plotLeft+c);this.top=o(b.top,a.plotTop);this.width=o(b.width,a.plotWidth-c+d);this.height=o(b.height,a.plotHeight);this.bottom=a.chartHeight-this.height-this.top;this.right=a.chartWidth-this.width-this.left;this.len=
-x(this.horiz?this.width:this.height,0)},getExtremes:function(){var a=this.isLog;return{min:a?ja(ba(this.min)):this.min,max:a?ja(ba(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?ba(this.min):this.min,b=b?ba(this.max):this.max;c>a||a===null?a=c:b<a&&(a=b);return this.translate(a,0,1,0,1)},addPlotBandOrLine:function(a){a=(new nb(this,a)).render();this.plotLinesAndBands.push(a);return a},getOffset:function(){var a=
-this,b=a.chart,c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,i,j=0,k,l=0,m=d.title,p=d.labels,q=0,fa=b.axisOffset,r=[-1,1,1,-1][h],y;a.hasData=b=a.series.length&&s(a.min)&&s(a.max);a.showAxis=i=b||o(d.showEmpty,!0);if(!a.axisGroup)a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||7}).add(),a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).add();if(b||a.isLinked)n(e,function(b){f[b]?f[b].addLabel():f[b]=new Sa(a,b)}),n(e,function(a){if(h===0||h===2||{1:"left",3:"right"}[h]===
-p.align)q=x(f[a].getLabelSize(),q)}),a.staggerLines&&(q+=(a.staggerLines-1)*16);else for(y in f)f[y].destroy(),delete f[y];if(m&&m.text){if(!a.axisTitle)a.axisTitle=c.text(m.text,0,0,m.useHTML).attr({zIndex:7,rotation:m.rotation||0,align:m.textAlign||{low:"left",middle:"center",high:"right"}[m.align]}).css(m.style).add(a.axisGroup),a.axisTitle.isNew=!0;if(i)j=a.axisTitle.getBBox()[g?"height":"width"],l=o(m.margin,g?5:10),k=m.offset;a.axisTitle[i?"show":"hide"]()}a.offset=r*o(d.offset,fa[h]);a.axisTitleMargin=
-o(k,q+l+(h!==2&&q&&r*d.labels[g?"y":"x"]));fa[h]=x(fa[h],a.axisTitleMargin+j+r*a.offset)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:0)+d,c=b.chartHeight-this.bottom-(c?this.height:0)+d;return b.renderer.crispLine(["M",e?this.left:f,e?c:this.top,"L",e?b.chartWidth-this.right:f,e?c:b.chartHeight-this.bottom],a)},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite,
-h=this.offset,i=w(e.style.fontSize||12),d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(this.side===2?i:0);return{x:a?d:b+(g?this.width:0)+h+(e.x||0),y:a?b-(g?this.height:0)+h:d+(e.y||0)}},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.isLog,f=a.isLinked,g=a.tickPositions,h=a.axisTitle,i=a.stacks,j=a.ticks,k=a.minorTicks,l=a.alternateBands,m=d.stackLabels,p=d.alternateGridColor,q=d.lineWidth,o,r=b.hasRendered&&
-s(a.oldMin)&&!isNaN(a.oldMin),y=a.showAxis,t,u;if(a.hasData||f)if(a.minorTickInterval&&!a.categories&&n(a.getMinorTickPositions(),function(b){k[b]||(k[b]=new Sa(a,b,"minor"));r&&k[b].isNew&&k[b].render(null,!0);k[b].isActive=!0;k[b].render()}),n(g.slice(1).concat([g[0]]),function(b,c){c=c===g.length-1?0:c+1;if(!f||b>=a.min&&b<=a.max)j[b]||(j[b]=new Sa(a,b)),r&&j[b].isNew&&j[b].render(c,!0),j[b].isActive=!0,j[b].render(c)}),p&&n(g,function(b,c){if(c%2===0&&b<a.max)l[b]||(l[b]=new nb(a)),t=b,u=g[c+
-1]!==A?g[c+1]:a.max,l[b].options={from:e?ba(t):t,to:e?ba(u):u,color:p},l[b].render(),l[b].isActive=!0}),!a._addedPlotLB)n((d.plotLines||[]).concat(d.plotBands||[]),function(b){a.addPlotBandOrLine(b)}),a._addedPlotLB=!0;n([j,k,l],function(a){for(var b in a)a[b].isActive?a[b].isActive=!1:(a[b].destroy(),delete a[b])});if(q)o=a.getLinePath(q),a.axisLine?a.axisLine.animate({d:o}):a.axisLine=c.path(o).attr({stroke:d.lineColor,"stroke-width":q,zIndex:7}).add(),a.axisLine[y?"show":"hide"]();if(h&&y)h[h.isNew?
-"attr":"animate"](a.getTitlePosition()),h.isNew=!1;if(m&&m.enabled){var v,H,d=a.stackTotalGroup;if(!d)a.stackTotalGroup=d=c.g("stack-labels").attr({visibility:"visible",zIndex:6}).add();d.translate(b.plotLeft,b.plotTop);for(v in i)for(H in b=i[v],b)b[H].render(d)}a.isDirty=!1},removePlotBandOrLine:function(a){for(var b=this.plotLinesAndBands,c=b.length;c--;)b[c].id===a&&b[c].destroy()},setTitle:function(a,b){var c=this.chart,d=this.options;d.title=C(d.title,a);this.axisTitle=void 0;this.isDirty=!0;
-o(b,!0)&&c.redraw()},redraw:function(){var a=this.chart;a.tracker.resetTracker&&a.tracker.resetTracker(!0);this.render();n(this.plotLinesAndBands,function(a){a.render()});n(this.series,function(a){a.isDirty=!0})},setCategories:function(a,b){var c=this.chart;this.categories=this.userOptions.categories=a;n(this.series,function(a){a.translate();a.setTooltipPoints(!0)});this.isDirty=!0;o(b,!0)&&c.redraw()},destroy:function(){var a=this,b=a.stacks,c;P(a);for(c in b)Ba(b[c]),b[c]=null;n([a.ticks,a.minorTicks,
-a.alternateBands,a.plotLinesAndBands],function(a){Ba(a)});n(["stackTotalGroup","axisLine","axisGroup","gridGroup","axisTitle"],function(b){a[b]&&(a[b]=a[b].destroy())})}};pb.prototype={destroy:function(){n(this.crosshairs,function(a){a&&a.destroy()});if(this.label)this.label=this.label.destroy()},move:function(a,b){var c=this;c.currentX=c.tooltipIsHidden?a:(2*c.currentX+a)/3;c.currentY=c.tooltipIsHidden?b:(c.currentY+b)/2;c.label.attr({x:c.currentX,y:c.currentY});c.tooltipTick=M(a-c.currentX)>1||
-M(b-c.currentY)>1?function(){c.move(a,b)}:null},hide:function(){if(!this.tooltipIsHidden){var a=this.chart.hoverPoints;this.label.hide();a&&n(a,function(a){a.setState()});this.chart.hoverPoints=null;this.tooltipIsHidden=!0}},hideCrosshairs:function(){n(this.crosshairs,function(a){a&&a.hide()})},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f=0,g=0,a=na(a);c=a[0].tooltipPos;c||(n(a,function(a){f+=a.plotX;g+=a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY}),f/=a.length,g/=a.length,c=[e?d.plotWidth-
-g:f,this.shared&&!e&&a.length>1&&b?b.chartY-d.plotTop:e?d.plotHeight-f:g]);return Ea(c,t)},getPosition:function(a,b,c){var d=this.chart,e=d.plotLeft,f=d.plotTop,g=d.plotWidth,h=d.plotHeight,i=o(this.options.distance,12),j=c.plotX,c=c.plotY,d=j+e+(d.inverted?i:-a-i),k=c-b+f+15,l;d<7&&(d=e+j+i);d+a>e+g&&(d-=d+a-(e+g),k=c-b+f-i,l=!0);k<f+5&&(k=f+5,l&&c>=k&&c<=k+b&&(k=c+f+i));k+b>f+h&&(k=x(f,f+h-b-i));return{x:d,y:k}},refresh:function(a,b){function c(){var a=this.points||na(this),b=a[0].series,c;c=[b.tooltipHeaderFormatter(a[0].key)];
-n(a,function(a){b=a.series;c.push(b.tooltipFormatter&&b.tooltipFormatter(a)||a.point.tooltipFormatter(b.tooltipOptions.pointFormat))});c.push(f.footerFormat||"");return c.join("")}var d=this.chart,e=this.label,f=this.options,g,h,i,j={},k,l=[];k=f.formatter||c;var j=d.hoverPoints,m,p=f.crosshairs;i=this.shared;h=this.getAnchor(a,b);g=h[0];h=h[1];i&&(!a.series||!a.series.noSharedTooltip)?(j&&n(j,function(a){a.setState()}),d.hoverPoints=a,n(a,function(a){a.setState("hover");l.push(a.getLabelConfig())}),
-j={x:a[0].category,y:a[0].y},j.points=l,a=a[0]):j=a.getLabelConfig();k=k.call(j);j=a.series;i=i||!j.isCartesian||j.tooltipOutsidePlot||d.isInsidePlot(g,h);k===!1||!i?this.hide():(this.tooltipIsHidden&&e.show(),e.attr({text:k}),m=f.borderColor||a.color||j.color||"#606060",e.attr({stroke:m}),e=(f.positioner||this.getPosition).call(this,e.width,e.height,{plotX:g,plotY:h}),this.move(t(e.x),t(e.y)),this.tooltipIsHidden=!1);if(p){p=na(p);for(e=p.length;e--;)if(i=a.series[e?"yAxis":"xAxis"],p[e]&&i)if(i=
-i.getPlotLinePath(e?o(a.stackY,a.y):a.x,1),this.crosshairs[e])this.crosshairs[e].attr({d:i,visibility:"visible"});else{j={"stroke-width":p[e].width||1,stroke:p[e].color||"#C0C0C0",zIndex:p[e].zIndex||2};if(p[e].dashStyle)j.dashstyle=p[e].dashStyle;this.crosshairs[e]=d.renderer.path(i).attr(j).add()}}E(d,"tooltipRefresh",{text:k,x:g+d.plotLeft,y:h+d.plotTop,borderColor:m})},tick:function(){this.tooltipTick&&this.tooltipTick()}};Db.prototype={normalizeMouseEvent:function(a){var b,c,d,a=a||N.event;if(!a.target)a.target=
-a.srcElement;if(a.originalEvent)a=a.originalEvent;if(a.event)a=a.event;d=a.touches?a.touches.item(0):a;this.chartPosition=b=Jb(this.chart.container);d.pageX===A?(c=a.x,b=a.y):(c=d.pageX-b.left,b=d.pageY-b.top);return u(a,{chartX:t(c),chartY:t(b)})},getMouseCoordinates:function(a){var b={xAxis:[],yAxis:[]},c=this.chart;n(c.axes,function(d){var e=d.isXAxis;b[e?"xAxis":"yAxis"].push({axis:d,value:d.translate((c.inverted?!e:e)?a.chartX-c.plotLeft:c.plotHeight-a.chartY+c.plotTop,!0)})});return b},onmousemove:function(a){var b=
-this.chart,c=b.series,d,e,f=b.hoverPoint,g=b.hoverSeries,h,i,j=b.chartWidth,k=b.inverted?b.plotHeight+b.plotTop-a.chartY:a.chartX-b.plotLeft;if(b.tooltip&&this.options.tooltip.shared&&(!g||!g.noSharedTooltip)){e=[];h=c.length;for(i=0;i<h;i++)if(c[i].visible&&c[i].options.enableMouseTracking!==!1&&!c[i].noSharedTooltip&&c[i].tooltipPoints.length)d=c[i].tooltipPoints[k],d._dist=M(k-d.plotX),j=O(j,d._dist),e.push(d);for(h=e.length;h--;)e[h]._dist>j&&e.splice(h,1);if(e.length&&e[0].plotX!==this.hoverX)b.tooltip.refresh(e,
-a),this.hoverX=e[0].plotX}if(g&&g.tracker&&(d=g.tooltipPoints[k])&&d!==f)d.onMouseOver()},resetTracker:function(a){var b=this.chart,c=b.hoverSeries,d=b.hoverPoint,e=b.hoverPoints||d,b=b.tooltip;(a=a&&b&&e)&&na(e)[0].plotX===A&&(a=!1);if(a)b.refresh(e);else{if(d)d.onMouseOut();if(c)c.onMouseOut();b&&(b.hide(),b.hideCrosshairs());this.hoverX=null}},setDOMEvents:function(){function a(){if(b.selectionMarker){var f={xAxis:[],yAxis:[]},g=b.selectionMarker.getBBox(),h=g.x-c.plotLeft,l=g.y-c.plotTop,m;e&&
-(n(c.axes,function(a){if(a.options.zoomEnabled!==!1){var b=a.isXAxis,d=c.inverted?!b:b,e=a.translate(d?h:c.plotHeight-l-g.height,!0,0,0,1),d=a.translate(d?h+g.width:c.plotHeight-l,!0,0,0,1);!isNaN(e)&&!isNaN(d)&&(f[b?"xAxis":"yAxis"].push({axis:a,min:O(e,d),max:x(e,d)}),m=!0)}}),m&&E(c,"selection",f,function(a){c.zoom(a)}));b.selectionMarker=b.selectionMarker.destroy()}if(c)F(d,{cursor:"auto"}),c.cancelClick=e,c.mouseIsDown=e=!1;P(B,ea?"touchend":"mouseup",a)}var b=this,c=b.chart,d=c.container,e,
-f=b.zoomX&&!c.inverted||b.zoomY&&c.inverted,g=b.zoomY&&!c.inverted||b.zoomX&&c.inverted;b.hideTooltipOnMouseMove=function(a){Kb(a);b.chartPosition&&c.hoverSeries&&c.hoverSeries.isCartesian&&!c.isInsidePlot(a.pageX-b.chartPosition.left-c.plotLeft,a.pageY-b.chartPosition.top-c.plotTop)&&b.resetTracker()};b.hideTooltipOnMouseLeave=function(){b.resetTracker();b.chartPosition=null};d.onmousedown=function(d){d=b.normalizeMouseEvent(d);!ea&&d.preventDefault&&d.preventDefault();c.mouseIsDown=!0;c.cancelClick=
-!1;c.mouseDownX=b.mouseDownX=d.chartX;b.mouseDownY=d.chartY;I(B,ea?"touchend":"mouseup",a)};var h=function(a){if(!a||!(a.touches&&a.touches.length>1)){a=b.normalizeMouseEvent(a);if(!ea)a.returnValue=!1;var d=a.chartX,h=a.chartY,l=!c.isInsidePlot(d-c.plotLeft,h-c.plotTop);ea&&a.type==="touchstart"&&(z(a.target,"isTracker")?c.runTrackerClick||a.preventDefault():!c.runChartClick&&!l&&a.preventDefault());if(l)d<c.plotLeft?d=c.plotLeft:d>c.plotLeft+c.plotWidth&&(d=c.plotLeft+c.plotWidth),h<c.plotTop?h=
-c.plotTop:h>c.plotTop+c.plotHeight&&(h=c.plotTop+c.plotHeight);if(c.mouseIsDown&&a.type!=="touchstart"){if(e=Math.sqrt(Math.pow(b.mouseDownX-d,2)+Math.pow(b.mouseDownY-h,2)),e>10){a=c.isInsidePlot(b.mouseDownX-c.plotLeft,b.mouseDownY-c.plotTop);if(c.hasCartesianSeries&&(b.zoomX||b.zoomY)&&a&&!b.selectionMarker)b.selectionMarker=c.renderer.rect(c.plotLeft,c.plotTop,f?1:c.plotWidth,g?1:c.plotHeight,0).attr({fill:b.options.chart.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();if(b.selectionMarker&&
-f){var m=d-b.mouseDownX;b.selectionMarker.attr({width:M(m),x:(m>0?0:m)+b.mouseDownX})}b.selectionMarker&&g&&(h-=b.mouseDownY,b.selectionMarker.attr({height:M(h),y:(h>0?0:h)+b.mouseDownY}));a&&!b.selectionMarker&&b.options.chart.panning&&c.pan(d)}}else if(!l)b.onmousemove(a);return l||!c.hasCartesianSeries}};d.onmousemove=h;I(d,"mouseleave",b.hideTooltipOnMouseLeave);I(B,"mousemove",b.hideTooltipOnMouseMove);d.ontouchstart=function(a){if(b.zoomX||b.zoomY)d.onmousedown(a);h(a)};d.ontouchmove=h;d.ontouchend=
-function(){e&&b.resetTracker()};d.onclick=function(a){var d=c.hoverPoint,e,f,a=b.normalizeMouseEvent(a);a.cancelBubble=!0;if(!c.cancelClick)d&&(z(a.target,"isTracker")||z(a.target.parentNode,"isTracker"))?(e=d.plotX,f=d.plotY,u(d,{pageX:b.chartPosition.left+c.plotLeft+(c.inverted?c.plotWidth-f:e),pageY:b.chartPosition.top+c.plotTop+(c.inverted?c.plotHeight-e:f)}),E(d.series,"click",u(a,{point:d})),d.firePointEvent("click",a)):(u(a,b.getMouseCoordinates(a)),c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-
-c.plotTop)&&E(c,"click",a))}},destroy:function(){var a=this.chart,b=a.container;if(a.trackerGroup)a.trackerGroup=a.trackerGroup.destroy();P(b,"mouseleave",this.hideTooltipOnMouseLeave);P(B,"mousemove",this.hideTooltipOnMouseMove);b.onclick=b.onmousedown=b.onmousemove=b.ontouchstart=b.ontouchend=b.ontouchmove=null;clearInterval(this.tooltipInterval)},init:function(a,b){if(!a.trackerGroup)a.trackerGroup=a.renderer.g("tracker").attr({zIndex:9}).add();if(b.enabled)a.tooltip=new pb(a,b),this.tooltipInterval=
-setInterval(function(){a.tooltip.tick()},32);this.setDOMEvents()}};qb.prototype={init:function(a){var b=this,c=b.options=a.options.legend;if(c.enabled){var d=c.itemStyle,e=o(c.padding,8),f=c.itemMarginTop||0;b.baseline=w(d.fontSize)+3+f;b.itemStyle=d;b.itemHiddenStyle=C(d,c.itemHiddenStyle);b.itemMarginTop=f;b.padding=e;b.initialItemX=e;b.initialItemY=e-5;b.maxItemWidth=0;b.chart=a;b.itemHeight=0;b.lastLineHeight=0;b.render();I(b.chart,"endResize",function(){b.positionCheckboxes()})}},colorizeItem:function(a,
-b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,g=b?a.color:g;d&&d.css({fill:c});e&&e.attr({stroke:g});f&&f.attr({stroke:g,fill:g})},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;a.legendGroup&&a.legendGroup.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;n(["legendItem","legendLine","legendSymbol","legendGroup"],
-function(b){a[b]&&a[b].destroy()});b&&Qa(a.checkbox)},destroy:function(){var a=this.group,b=this.box;if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(){var a=this;n(a.allItems,function(b){var c=b.checkbox,d=a.group.alignAttr;c&&F(c,{left:d.translateX+b.legendItemWidth+c.x-20+"px",top:d.translateY+c.y+3+"px"})})},renderItem:function(a){var q;var b=this,c=b.chart,d=c.renderer,e=b.options,f=e.layout==="horizontal",g=e.symbolWidth,h=e.symbolPadding,i=b.itemStyle,j=b.itemHiddenStyle,
-k=b.padding,l=!e.rtl,m=e.width,p=e.itemMarginBottom||0,n=b.itemMarginTop,o=b.initialItemX,r=a.legendItem,s=a.series||a,t=s.options,u=t.showCheckbox;if(!r&&(a.legendGroup=d.g("legend-item").attr({zIndex:1}).add(b.scrollGroup),s.drawLegendSymbol(b,a),a.legendItem=r=d.text(e.labelFormatter.call(a),l?g+h:-h,b.baseline,e.useHTML).css(C(a.visible?i:j)).attr({align:l?"left":"right",zIndex:2}).add(a.legendGroup),a.legendGroup.on("mouseover",function(){a.setState("hover");r.css(b.options.itemHoverStyle)}).on("mouseout",
-function(){r.css(a.visible?i:j);a.setState()}).on("click",function(b){var c=function(){a.setVisible()},b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):E(a,"legendItemClick",b,c)}),b.colorizeItem(a,a.visible),t&&u))a.checkbox=S("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},e.itemCheckboxStyle,c.container),I(a.checkbox,"click",function(b){E(a,"checkboxClick",{checked:b.target.checked},function(){a.select()})});d=r.getBBox();q=a.legendItemWidth=e.itemWidth||
-g+h+d.width+k+(u?20:0),e=q;b.itemHeight=g=d.height;if(f&&b.itemX-o+e>(m||c.chartWidth-2*k-o))b.itemX=o,b.itemY+=n+b.lastLineHeight+p,b.lastLineHeight=0;b.maxItemWidth=x(b.maxItemWidth,e);b.lastItemY=n+b.itemY+p;b.lastLineHeight=x(g,b.lastLineHeight);a._legendItemPos=[b.itemX,b.itemY];f?b.itemX+=e:(b.itemY+=n+g+p,b.lastLineHeight=g);b.offsetWidth=m||x(f?b.itemX-o:e,b.offsetWidth)},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,i=a.box,j=a.options,k=a.padding,l=j.borderWidth,
-m=j.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup),a.clipRect=c.clipRect(0,0,9999,b.chartHeight),a.contentGroup.clip(a.clipRect);e=[];n(b.series,function(a){var b=a.options;b.showInLegend&&(e=e.concat(a.legendItems||(b.legendType==="point"?a.data:a)))});Qb(e,function(a,b){return(a.options.legendIndex||0)-(b.options.legendIndex||
-0)});j.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;n(e,function(b){a.renderItem(b)});g=j.width||a.offsetWidth;h=a.lastItemY+a.lastLineHeight;h=a.handleOverflow(h);if(l||m){g+=k;h+=k;if(i){if(g>0&&h>0)i[i.isNew?"attr":"animate"](i.crisp(null,null,null,g,h)),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,j.borderRadius,l||0).attr({stroke:j.borderColor,"stroke-width":l||0,fill:m||U}).add(d).shadow(j.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;n(e,function(b){a.positionItem(b)});
-f&&d.align(u({width:g,height:h},j),!0,b.spacingBox);b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h=this.clipRect,i=e.navigation,j=o(i.animation,!0),k=i.arrowSize||12,l=this.nav;e.layout==="horizontal"&&(f/=2);g&&(f=O(f,g));if(a>f){this.clipHeight=c=f-20;this.pageCount=wa(a/c);this.currentPage=o(this.currentPage,1);this.fullHeight=a;h.attr({height:c});
-if(!l)this.nav=l=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,k,k).on("click",function(){b.scroll(-1,j)}).add(l),this.pager=d.text("",15,10).css(i.style).add(l),this.down=d.symbol("triangle-down",0,0,k,k).on("click",function(){b.scroll(1,j)}).add(l);b.scroll(0);a=f}else l&&(h.attr({height:c.chartHeight}),l.hide(),this.scrollGroup.attr({translateY:1}));return a},scroll:function(a,b){var c=this.pageCount,d=this.currentPage+a,e=this.clipHeight,f=this.options.navigation,g=f.activeColor,
-f=f.inactiveColor,h=this.pager,i=this.padding;d>c&&(d=c);if(d>0)b!==A&&ua(b,this.chart),this.nav.attr({translateX:i,translateY:e+7,visibility:"visible"}),this.up.attr({fill:d===1?f:g}).css({cursor:d===1?"default":"pointer"}),h.attr({text:d+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:d===c?f:g}).css({cursor:d===c?"default":"pointer"}),this.scrollGroup.animate({translateY:-O(e*(d-1),this.fullHeight-e+i)+1}),h.attr({text:d+"/"+c}),this.currentPage=d}};rb.prototype={initSeries:function(a){var b=
-this.options.chart,b=new Y[a.type||b.type||b.defaultSeriesType];b.init(this,a);return b},addSeries:function(a,b,c){var d=this;a&&(ua(c,d),b=o(b,!0),E(d,"addSeries",{options:a},function(){d.initSeries(a);d.isDirtyLegend=!0;b&&d.redraw()}))},isInsidePlot:function(a,b){return a>=0&&a<=this.plotWidth&&b>=0&&b<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&n(this.axes,function(a){a.adjustTickAmount()});this.maxTicks=null},redraw:function(a){var b=this.axes,c=this.series,
-d=this.tracker,e=this.legend,f=this.isDirtyLegend,g,h=this.isDirtyBox,i=c.length,j=i,k=this.clipRect,l=this.renderer,m=l.isHidden();ua(a,this);for(m&&this.cloneRenderTo();j--;)if(a=c[j],a.isDirty&&a.options.stacking){g=!0;break}if(g)for(j=i;j--;)if(a=c[j],a.options.stacking)a.isDirty=!0;n(c,function(a){a.isDirty&&a.options.legendType==="point"&&(f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;if(this.hasCartesianSeries){if(!this.isResizing)this.maxTicks=null,n(b,function(a){a.setScale()});
-this.adjustTickAmounts();this.getMargins();n(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes=!1,E(a,"afterSetExtremes",a.getExtremes());if(a.isDirty||h||g)a.redraw(),h=!0})}h&&(this.drawChartBox(),k&&(Fa(k),k.animate({width:this.plotSizeX,height:this.plotSizeY+1})));n(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.resetTracker&&d.resetTracker(!0);l.draw();E(this,"redraw");m&&this.cloneRenderTo(!0)},showLoading:function(a){var b=this.options,c=this.loadingDiv,
-d=b.loading;if(!c)this.loadingDiv=c=S(ia,{className:"highcharts-loading"},u(d.style,{left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+"px",height:this.plotHeight+"px",zIndex:10,display:U}),this.container),this.loadingSpan=S("span",null,d.labelStyle,c);this.loadingSpan.innerHTML=a||b.lang.loading;if(!this.loadingShown)F(c,{opacity:0,display:""}),eb(c,{opacity:d.style.opacity},{duration:d.showDuration||0}),this.loadingShown=!0},hideLoading:function(){var a=this.options,b=this.loadingDiv;
-b&&eb(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){F(b,{display:U})}});this.loadingShown=!1},get:function(a){var b=this.axes,c=this.series,d,e;for(d=0;d<b.length;d++)if(b[d].options.id===a)return b[d];for(d=0;d<c.length;d++)if(c[d].options.id===a)return c[d];for(d=0;d<c.length;d++){e=c[d].points||[];for(b=0;b<e.length;b++)if(e[b].id===a)return e[b]}return null},getAxes:function(){var a=this,b=this.options,c=b.xAxis||{},b=b.yAxis||{},c=na(c);n(c,function(a,b){a.index=b;a.isX=
-!0});b=na(b);n(b,function(a,b){a.index=b});c=c.concat(b);n(c,function(b){new ob(a,b)});a.adjustTickAmounts()},getSelectedPoints:function(){var a=[];n(this.series,function(b){a=a.concat(ub(b.points,function(a){return a.selected}))});return a},getSelectedSeries:function(){return ub(this.series,function(a){return a.selected})},showResetZoom:function(){var a=this,b=V.lang,c=a.options.chart.resetZoomButton,d=c.theme,e=d.states,f=c.relativeTo==="chart"?null:{x:a.plotLeft,y:a.plotTop,width:a.plotWidth,height:a.plotHeight};
-this.resetZoomButton=a.renderer.button(b.resetZoom,null,null,function(){a.zoomOut()},d,e&&e.hover).attr({align:c.position.align,title:b.resetZoomTitle}).add().align(c.position,!1,f)},zoomOut:function(){var a=this,b=a.resetZoomButton;E(a,"selection",{resetSelection:!0},function(){a.zoom()});if(b)a.resetZoomButton=b.destroy()},zoom:function(a){var b=this,c=b.options.chart,d;b.resetZoomEnabled!==!1&&!b.resetZoomButton&&b.showResetZoom();!a||a.resetSelection?n(b.axes,function(a){a.options.zoomEnabled!==
-!1&&(a.setExtremes(null,null,!1),d=!0)}):n(a.xAxis.concat(a.yAxis),function(a){var c=a.axis;if(b.tracker[c.isXAxis?"zoomX":"zoomY"])c.setExtremes(a.min,a.max,!1),d=!0});d&&b.redraw(o(c.animation,b.pointCount<100))},pan:function(a){var b=this.xAxis[0],c=this.mouseDownX,d=b.pointRange/2,e=b.getExtremes(),f=b.translate(c-a,!0)+d,c=b.translate(c+this.plotWidth-a,!0)-d;(d=this.hoverPoints)&&n(d,function(a){a.setState()});b.series.length&&f>O(e.dataMin,e.min)&&c<x(e.dataMax,e.max)&&b.setExtremes(f,c,!0,
-!1);this.mouseDownX=a;F(this.container,{cursor:"move"})},setTitle:function(a,b){var c=this,d=c.options,e;c.chartTitleOptions=e=C(d.title,a);c.chartSubtitleOptions=d=C(d.subtitle,b);n([["title",a,e],["subtitle",b,d]],function(a){var b=a[0],d=c[b],e=a[1],a=a[2];d&&e&&(d=d.destroy());a&&a.text&&!d&&(c[b]=c.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,"class":"highcharts-"+b,zIndex:a.zIndex||4}).css(a.style).add().align(a,!1,c.spacingBox))})},getChartSize:function(){var a=this.options.chart,
-b=this.renderToClone||this.renderTo;this.containerWidth=Va(b,"width");this.containerHeight=Va(b,"height");this.chartWidth=a.width||this.containerWidth||600;this.chartHeight=a.height||(this.containerHeight>19?this.containerHeight:400)},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Qa(b),delete this.renderToClone):(c&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),F(b,{position:"absolute",top:"-9999px",display:"block"}),
-B.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+sb++;if(ra(a))this.renderTo=a=B.getElementById(a);a||mb(13,!0);a.innerHTML="";a.offsetWidth||this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;this.container=a=S(ia,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},u({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal"},
-b.style),this.renderToClone||a);this.renderer=b.forExport?new qa(a,c,d,!0):new Ta(a,c,d);ga&&this.renderer.create(this,a,c,d)},getMargins:function(){var a=this.options.chart,b=a.spacingTop,c=a.spacingRight,d=a.spacingBottom,a=a.spacingLeft,e,f=this.legend,g=this.optionsMarginTop,h=this.optionsMarginLeft,i=this.optionsMarginRight,j=this.optionsMarginBottom,k=this.chartTitleOptions,l=this.chartSubtitleOptions,m=this.options.legend,p=o(m.margin,10),q=m.x,t=m.y,r=m.align,y=m.verticalAlign;this.resetMargins();
-e=this.axisOffset;if((this.title||this.subtitle)&&!s(this.optionsMarginTop))if(l=x(this.title&&!k.floating&&!k.verticalAlign&&k.y||0,this.subtitle&&!l.floating&&!l.verticalAlign&&l.y||0))this.plotTop=x(this.plotTop,l+o(k.margin,15)+b);if(f.display&&!m.floating)if(r==="right"){if(!s(i))this.marginRight=x(this.marginRight,f.legendWidth-q+p+c)}else if(r==="left"){if(!s(h))this.plotLeft=x(this.plotLeft,f.legendWidth+q+p+a)}else if(y==="top"){if(!s(g))this.plotTop=x(this.plotTop,f.legendHeight+t+p+b)}else if(y===
-"bottom"&&!s(j))this.marginBottom=x(this.marginBottom,f.legendHeight-t+p+d);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);this.hasCartesianSeries&&n(this.axes,function(a){a.getOffset()});s(h)||(this.plotLeft+=e[3]);s(g)||(this.plotTop+=e[0]);s(j)||(this.marginBottom+=e[2]);s(i)||(this.marginRight+=e[1]);this.setChartSize()},initReflow:function(){function a(a){var g=c.width||Va(d,"width"),h=c.height||Va(d,"height"),a=a?
-a.target:N;if(g&&h&&(a===N||a===B)){if(g!==b.containerWidth||h!==b.containerHeight)clearTimeout(e),e=setTimeout(function(){b.resize(g,h,!1)},100);b.containerWidth=g;b.containerHeight=h}}var b=this,c=b.options.chart,d=b.renderTo,e;I(N,"resize",a);I(b,"destroy",function(){P(N,"resize",a)})},fireEndResize:function(){var a=this;a&&E(a,"endResize",null,function(){a.isResizing-=1})},resize:function(a,b,c){var d,e,f=this.title,g=this.subtitle;this.isResizing+=1;ua(c,this);this.oldChartHeight=this.chartHeight;
-this.oldChartWidth=this.chartWidth;if(s(a))this.chartWidth=d=t(a);if(s(b))this.chartHeight=e=t(b);F(this.container,{width:d+"px",height:e+"px"});this.renderer.setSize(d,e,c);this.plotWidth=d-this.plotLeft-this.marginRight;this.plotHeight=e-this.plotTop-this.marginBottom;this.maxTicks=null;n(this.axes,function(a){a.isDirty=!0;a.setScale()});n(this.series,function(a){a.isDirty=!0});this.isDirtyBox=this.isDirtyLegend=!0;this.getMargins();a=this.spacingBox;f&&f.align(null,null,a);g&&g.align(null,null,
-a);this.redraw(c);this.oldChartHeight=null;E(this,"resize");Ra===!1?this.fireEndResize():setTimeout(this.fireEndResize,Ra&&Ra.duration||500)},setChartSize:function(){var a=this.inverted,b=this.chartWidth,c=this.chartHeight,d=this.options.chart,e=d.spacingTop,f=d.spacingRight,g=d.spacingBottom,d=d.spacingLeft;this.plotLeft=t(this.plotLeft);this.plotTop=t(this.plotTop);this.plotWidth=t(b-this.plotLeft-this.marginRight);this.plotHeight=t(c-this.plotTop-this.marginBottom);this.plotSizeX=a?this.plotHeight:
-this.plotWidth;this.plotSizeY=a?this.plotWidth:this.plotHeight;this.spacingBox={x:d,y:e,width:b-d-f,height:c-e-g};n(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this.options.chart,b=a.spacingRight,c=a.spacingBottom,d=a.spacingLeft;this.plotTop=o(this.optionsMarginTop,a.spacingTop);this.marginRight=o(this.optionsMarginRight,b);this.marginBottom=o(this.optionsMarginBottom,c);this.plotLeft=o(this.optionsMarginLeft,d);this.axisOffset=[0,0,0,0]},drawChartBox:function(){var a=
-this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,j=a.backgroundColor,k=a.plotBackgroundColor,l=a.plotBackgroundImage,m,p={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};m=i+(a.shadow?8:0);if(i||j)if(e)e.animate(e.crisp(null,null,null,c-m,d-m));else{e={fill:j||U};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(m/2,m/2,c-
-m,d-m,a.borderRadius,i).attr(e).add().shadow(a.shadow)}if(k)f?f.animate(p):this.plotBackground=b.rect(this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight,0).attr({fill:k}).add().shadow(a.plotShadow);if(l)h?h.animate(p):this.plotBGImage=b.image(l,this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight).add();if(a.plotBorderWidth)g?g.animate(g.crisp(null,this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight)):this.plotBorder=b.rect(this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight,
-0,a.plotBorderWidth).attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth,zIndex:4}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;n(["inverted","angular","polar"],function(g){c=Y[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&&e--;)(c=Y[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},render:function(){var a=this,b=a.axes,c=a.renderer,d=a.options,e=d.labels,d=d.credits,f;a.setTitle();a.legend=new qb(a);
-n(b,function(a){a.setScale()});a.getMargins();a.maxTicks=null;n(b,function(a){a.setTickPositions(!0);a.setMaxTicks()});a.adjustTickAmounts();a.getMargins();a.drawChartBox();a.hasCartesianSeries&&n(b,function(a){a.render()});if(!a.seriesGroup)a.seriesGroup=c.g("series-group").attr({zIndex:3}).add();n(a.series,function(a){a.translate();a.setTooltipPoints();a.render()});e.items&&n(e.items,function(){var b=u(e.style,this.style),d=w(b.left)+a.plotLeft,f=w(b.top)+a.plotTop+12;delete b.left;delete b.top;
-c.text(this.html,d,f).attr({zIndex:2}).css(b).add()});if(d.enabled&&!a.credits)f=d.href,a.credits=c.text(d.text,0,0).on("click",function(){if(f)location.href=f}).attr({align:d.position.align,zIndex:8}).css(d.style).add().align(d.position);a.hasRendered=!0},destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;if(a!==null){E(a,"destroy");P(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();n("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,tracker,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),
-function(b){var c=a[b];c&&(a[b]=c.destroy())});if(d)d.innerHTML="",P(d),f&&Qa(d),d=null;for(e in a)delete a[e];a=a.options=null}},firstRender:function(){var a=this,b=a.options,c=a.callback;if(!Da&&N==N.top&&B.readyState!=="complete"||ga&&!N.canvg)ga?Nb.push(function(){a.firstRender()},b.global.canvasToolsURL):B.attachEvent("onreadystatechange",function(){B.detachEvent("onreadystatechange",a.firstRender);B.readyState==="complete"&&a.firstRender()});else{a.getContainer();E(a,"init");if(Highcharts.RangeSelector&&
-b.rangeSelector.enabled)a.rangeSelector=new Highcharts.RangeSelector(a);a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();n(b.series||[],function(b){a.initSeries(b)});if(Highcharts.Scroller&&(b.navigator.enabled||b.scrollbar.enabled))a.scroller=new Highcharts.Scroller(a);a.tracker=new Db(a,b);a.render();a.renderer.draw();c&&c.apply(a,[a]);n(a.callbacks,function(b){b.apply(a,[a])});a.cloneRenderTo(!0);E(a,"load")}},init:function(a){var b=this.options.chart,c;b.reflow!==!1&&I(this,"load",
-this.initReflow);if(a)for(c in a)I(this,c,a[c]);this.xAxis=[];this.yAxis=[];this.animation=ga?!1:o(b.animation,!0);this.setSize=this.resize;this.pointCount=0;this.counters=new Ab;this.firstRender()}};rb.prototype.callbacks=[];var Wa=function(){};Wa.prototype={init:function(a,b,c){var d=a.chart.counters;this.series=a;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint){b=a.chart.options.colors;if(!this.options)this.options={};this.color=this.options.color=this.color||b[d.color++];d.wrapColor(b.length)}a.chart.pointCount++;
-return this},applyOptions:function(a,b){var c=this.series,d=typeof a;this.config=a;if(d==="number"||a===null)this.y=a;else if(typeof a[0]==="number")this.x=a[0],this.y=a[1];else if(d==="object"&&typeof a.length!=="number"){if(u(this,a),this.options=a,a.dataLabels)c._hasPointLabels=!0}else if(typeof a[0]==="string")this.name=a[0],this.y=a[1];if(this.x===A)this.x=b===A?c.autoIncrement():b},destroy:function(){var a=this.series.chart,b=a.hoverPoints,c;a.pointCount--;if(b&&(this.setState(),za(b,this),
-!b.length))a.hoverPoints=null;if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)P(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(){for(var a="graphic,tracker,dataLabel,group,connector,shadowGroup".split(","),b,c=6;c--;)b=a[c],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,
-total:this.total||this.stackTotal}},select:function(a,b){var c=this,d=c.series.chart,a=o(a,!c.selected);c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=a;c.setState(a&&"select");b||n(d.getSelectedPoints(),function(a){if(a.selected&&a!==c)a.selected=!1,a.setState(""),a.firePointEvent("unselect")})})},onMouseOver:function(){var a=this.series,b=a.chart,c=b.tooltip,d=b.hoverPoint;if(d&&d!==this)d.onMouseOut();this.firePointEvent("mouseOver");c&&(!c.shared||a.noSharedTooltip)&&
-c.refresh(this);this.setState("hover");b.hoverPoint=this},onMouseOut:function(){this.firePointEvent("mouseOut");this.setState();this.series.chart.hoverPoint=null},tooltipFormatter:function(a){var b=this.series,c=b.tooltipOptions,d=a.match(/\{(series|point)\.[a-zA-Z]+\}/g),e=/[{\.}]/,f,g,h,i,j={y:0,open:0,high:0,low:0,close:0,percentage:1,total:1};c.valuePrefix=c.valuePrefix||c.yPrefix;c.valueDecimals=c.valueDecimals||c.yDecimals;c.valueSuffix=c.valueSuffix||c.ySuffix;for(i in d)g=d[i],ra(g)&&g!==
-a&&(h=(" "+g).split(e),f={point:this,series:b}[h[1]],h=h[2],f===this&&j.hasOwnProperty(h)?(f=j[h]?h:"value",f=(c[f+"Prefix"]||"")+Xa(this[h],o(c[f+"Decimals"],-1))+(c[f+"Suffix"]||"")):f=f[h],a=a.replace(g,f));return a},update:function(a,b,c){var d=this,e=d.series,f=d.graphic,g,h=e.data,i=h.length,j=e.chart,b=o(b,!0);d.firePointEvent("update",{options:a},function(){d.applyOptions(a);aa(a)&&(e.getAttribs(),f&&f.attr(d.pointAttr[e.state]));for(g=0;g<i;g++)if(h[g]===d){e.xData[g]=d.x;e.yData[g]=d.y;
-e.options.data[g]=a;break}e.isDirty=!0;e.isDirtyData=!0;b&&j.redraw(c)})},remove:function(a,b){var c=this,d=c.series,e=d.chart,f,g=d.data,h=g.length;ua(b,e);a=o(a,!0);c.firePointEvent("remove",null,function(){for(f=0;f<h;f++)if(g[f]===c){g.splice(f,1);d.options.data.splice(f,1);d.xData.splice(f,1);d.yData.splice(f,1);break}c.destroy();d.isDirty=!0;d.isDirtyData=!0;a&&e.redraw()})},firePointEvent:function(a,b,c){var d=this,e=this.series.options;(e.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&
-this.importEvents();a==="click"&&e.allowPointSelect&&(c=function(a){d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});E(this,a,b,c)},importEvents:function(){if(!this.hasImportedEvents){var a=C(this.series.options.point,this.options).events,b;this.events=a;for(b in a)I(this,b,a[b]);this.hasImportedEvents=!0}},setState:function(a){var b=this.plotX,c=this.plotY,d=this.series,e=d.options.states,f=Z[d.type].marker&&d.options.marker,g=f&&!f.enabled,h=f&&f.states[a],i=h&&h.enabled===!1,j=d.stateMarkerGraphic,
-k=d.chart,l=this.pointAttr,a=a||"";if(!(a===this.state||this.selected&&a!=="select"||e[a]&&e[a].enabled===!1||a&&(i||g&&!h.enabled))){if(this.graphic)e=f&&this.graphic.symbolName&&l[a].r,this.graphic.attr(C(l[a],e?{x:b-e,y:c-e,width:2*e,height:2*e}:{}));else{if(a&&h){if(!j)e=h.radius,d.stateMarkerGraphic=j=k.renderer.symbol(d.symbol,-e,-e,2*e,2*e).attr(l[a]).add(d.group);j.translate(b,c)}if(j)j[a?"show":"hide"]()}this.state=a}}};var R=function(){};R.prototype={isCartesian:!0,type:"line",pointClass:Wa,
-sorted:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},init:function(a,b){var c,d;d=a.series.length;this.chart=a;this.options=b=this.setOptions(b);this.bindAxes();u(this,{index:d,name:b.name||"Series "+(d+1),state:"",pointAttr:{},visible:b.visible!==!1,selected:b.selected===!0});if(ga)b.animation=!1;d=b.events;for(c in d)I(this,c,d[c]);if(d&&d.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;this.getColor();
-this.getSymbol();this.setData(b.data,!1);if(this.isCartesian)a.hasCartesianSeries=!0;a.series.push(this)},bindAxes:function(){var a=this,b=a.options,c=a.chart,d;a.isCartesian&&n(["xAxis","yAxis"],function(e){n(c[e],function(c){d=c.options;if(b[e]===d.index||b[e]===A&&d.index===0)c.series.push(a),a[e]=c,c.isDirty=!0})})},autoIncrement:function(){var a=this.options,b=this.xIncrement,b=o(b,a.pointStart,0);this.pointInterval=o(this.pointInterval,a.pointInterval,1);this.xIncrement=b+this.pointInterval;
-return b},getSegments:function(){var a=-1,b=[],c,d=this.points,e=d.length;if(e)if(this.options.connectNulls){for(c=e;c--;)d[c].y===null&&d.splice(c,1);d.length&&(b=[d])}else n(d,function(c,g){c.y===null?(g>a+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b=this.chart.options,c=b.plotOptions,d=a.data;a.data=null;c=C(c[this.type],c.series,a);c.data=a.data=d;this.tooltipOptions=C(b.tooltip,c.tooltip);return c},getColor:function(){var a=
-this.options,b=this.chart.options.colors,c=this.chart.counters;this.color=a.color||!a.colorByPoint&&b[c.color++]||"gray";c.wrapColor(b.length)},getSymbol:function(){var a=this.options.marker,b=this.chart,c=b.options.symbols,b=b.counters;this.symbol=a.symbol||c[b.symbol++];if(/^url/.test(this.symbol))a.radius=0;b.wrapSymbol(c.length)},drawLegendSymbol:function(a){var b=this.options,c=b.marker,d=a.options.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline,g;if(b.lineWidth){g={"stroke-width":b.lineWidth};
-if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M",0,a-4,"L",d,a-4]).attr(g).add(f)}if(c&&c.enabled)b=c.radius,this.legendSymbol=e.symbol(this.symbol,d/2-b,a-4-b,2*b,2*b).attr(this.pointAttr[""]).add(f)},addPoint:function(a,b,c,d){var e=this.data,f=this.graph,g=this.area,h=this.chart,i=this.xData,j=this.yData,k=f&&f.shift||0,l=this.options.data;ua(d,h);if(f&&c)f.shift=k+1;if(g){if(c)g.shift=k+1;g.isArea=!0}b=o(b,!0);d={series:this};this.pointClass.prototype.applyOptions.apply(d,[a]);
-i.push(d.x);j.push(this.valueCount===4?[d.open,d.high,d.low,d.close]:d.y);l.push(a);c&&(e[0]&&e[0].remove?e[0].remove(!1):(e.shift(),i.shift(),j.shift(),l.shift()));this.getAttribs();this.isDirtyData=this.isDirty=!0;b&&h.redraw()},setData:function(a,b){var c=this.points,d=this.options,e=this.initialColor,f=this.chart,g=null,h=this.xAxis,i=this.pointClass.prototype;this.xIncrement=null;this.pointRange=h&&h.categories&&1||d.pointRange;if(s(e))f.counters.color=e;var j=[],k=[],l=a?a.length:[],m=this.valueCount;
-if(l>(d.turboThreshold||1E3)){for(e=0;g===null&&e<l;)g=a[e],e++;if(Ka(g)){i=o(d.pointStart,0);d=o(d.pointInterval,1);for(e=0;e<l;e++)j[e]=i,k[e]=a[e],i+=d;this.xIncrement=i}else if(Ja(g))if(m)for(e=0;e<l;e++)d=a[e],j[e]=d[0],k[e]=d.slice(1,m+1);else for(e=0;e<l;e++)d=a[e],j[e]=d[0],k[e]=d[1]}else for(e=0;e<l;e++)d={series:this},i.applyOptions.apply(d,[a[e]]),j[e]=d.x,k[e]=i.toYData?i.toYData.apply(d):d.y;this.data=[];this.options.data=a;this.xData=j;this.yData=k;for(e=c&&c.length||0;e--;)c[e]&&c[e].destroy&&
-c[e].destroy();if(h)h.minRange=h.userMinRange;this.isDirty=this.isDirtyData=f.isDirtyBox=!0;o(b,!0)&&f.redraw(!1)},remove:function(a,b){var c=this,d=c.chart,a=o(a,!0);if(!c.isRemoving)c.isRemoving=!0,E(c,"remove",null,function(){c.destroy();d.isDirtyLegend=d.isDirtyBox=!0;a&&d.redraw(b)});c.isRemoving=!1},processData:function(a){var b=this.xData,c=this.yData,d=b.length,e=0,f=d,g,h,i=this.xAxis,j=this.options,k=j.cropThreshold,l=this.isCartesian;if(l&&!this.isDirty&&!i.isDirty&&!this.yAxis.isDirty&&
-!a)return!1;if(l&&this.sorted&&(!k||d>k||this.forceCrop))if(a=i.getExtremes(),i=a.min,k=a.max,b[d-1]<i||b[0]>k)b=[],c=[];else if(b[0]<i||b[d-1]>k){for(a=0;a<d;a++)if(b[a]>=i){e=x(0,a-1);break}for(;a<d;a++)if(b[a]>k){f=a+1;break}b=b.slice(e,f);c=c.slice(e,f);g=!0}for(a=b.length-1;a>0;a--)if(d=b[a]-b[a-1],d>0&&(h===A||d<h))h=d;this.cropped=g;this.cropStart=e;this.processedXData=b;this.processedYData=c;if(j.pointRange===null)this.pointRange=h||1;this.closestPointRange=h},generatePoints:function(){var a=
-this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,h=this.cropStart||0,i,j=this.hasGroupedData,k,l=[],m;if(!b&&!j)b=[],b.length=a.length,b=this.data=b;for(m=0;m<g;m++)i=h+m,j?l[m]=(new f).init(this,[d[m]].concat(na(e[m]))):(b[i]?k=b[i]:a[i]!==A&&(b[i]=k=(new f).init(this,a[i],d[m])),l[m]=k);if(b&&(g!==(c=b.length)||j))for(m=0;m<c;m++)if(m===h&&!j&&(m+=g),b[m])b[m].destroyElements(),b[m].plotX=A;this.data=b;this.points=l},translate:function(){this.processedXData||
-this.processData();this.generatePoints();for(var a=this.chart,b=this.options,c=b.stacking,d=this.xAxis,e=d.categories,f=this.yAxis,g=this.points,h=g.length,i=!!this.modifyValue,j,k=f.series,l=k.length;l--;)if(k[l].visible){l===this.index&&(j=!0);break}for(l=0;l<h;l++){var k=g[l],m=k.x,p=k.y,n=k.low,o=f.stacks[(p<b.threshold?"-":"")+this.stackKey];k.plotX=d.translate(m,0,0,0,1);if(c&&this.visible&&o&&o[m]){n=o[m];m=n.total;n.cum=n=n.cum-p;p=n+p;if(j)n=b.threshold;c==="percent"&&(n=m?n*100/m:0,p=m?
-p*100/m:0);k.percentage=m?k.y*100/m:0;k.stackTotal=m;k.stackY=p}k.yBottom=s(n)?f.translate(n,0,1,0,1):null;i&&(p=this.modifyValue(p,k));k.plotY=typeof p==="number"?t(f.translate(p,0,1,0,1)*10)/10:A;k.clientX=a.inverted?a.plotHeight-k.plotX:k.plotX;k.category=e&&e[k.x]!==A?e[k.x]:k.x}this.getSegments()},setTooltipPoints:function(a){var b=[],c=this.chart.plotSizeX,d,e;d=this.xAxis;var f,g,h=[];if(this.options.enableMouseTracking!==!1){if(a)this.tooltipPoints=null;n(this.segments||this.points,function(a){b=
-b.concat(a)});d&&d.reversed&&(b=b.reverse());a=b.length;for(g=0;g<a;g++){f=b[g];d=b[g-1]?b[g-1]._high+1:0;for(f._high=e=b[g+1]?x(0,W((f.plotX+(b[g+1]?b[g+1].plotX:c))/2)):c;d>=0&&d<=e;)h[d++]=f}this.tooltipPoints=h}},tooltipHeaderFormatter:function(a){var b=this.tooltipOptions,c=b.xDateFormat,d=this.xAxis,e=d&&d.options.type==="datetime",f;if(e&&!c)for(f in D)if(D[f]>=d.closestPointRange){c=b.dateTimeLabelFormats[f];break}return b.headerFormat.replace("{point.key}",e?db(c,a):a).replace("{series.name}",
-this.name).replace("{series.color}",this.color)},onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(ea||!a.mouseIsDown){if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&E(this,"mouseOver");this.setState("hover");a.hoverSeries=this}},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;if(d)d.onMouseOut();this&&a.events.mouseOut&&E(this,"mouseOut");c&&!a.stickyTracking&&!c.shared&&c.hide();this.setState();b.hoverSeries=null},animate:function(a){var b=
-this.chart,c=this.clipRect,d=this.options.animation;d&&!aa(d)&&(d={});if(a){if(!c.isAnimating)c.attr("width",0),c.isAnimating=!0}else c.animate({width:b.plotSizeX},d),this.animate=null},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,i,j,k;if(this.options.marker.enabled)for(f=b.length;f--;)if(g=b[f],d=g.plotX,e=g.plotY,k=g.graphic,e!==A&&!isNaN(e))if(a=g.pointAttr[g.selected?"select":""],h=a.r,i=o(g.marker&&g.marker.symbol,this.symbol),j=i.indexOf("url")===0,k)k.animate(u({x:d-h,
-y:e-h},k.symbolName?{width:2*h,height:2*h}:{}));else if(h>0||j)g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h).attr(a).add(this.group)},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=o(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=Z[a.type].marker?a.options.marker:a.options,c=b.states,d=c.hover,e,f=a.color,g={stroke:f,fill:f},h=a.points||[],i=[],j,k=a.pointAttrToOptions,l;a.options.marker?(d.radius=
-d.radius||b.radius+2,d.lineWidth=d.lineWidth||b.lineWidth+1):d.color=d.color||pa(d.color||f).brighten(d.brightness).get();i[""]=a.convertAttribs(b,g);n(["hover","select"],function(b){i[b]=a.convertAttribs(c[b],i[""])});a.pointAttr=i;for(f=h.length;f--;){g=h[f];if((b=g.options&&g.options.marker||g.options)&&b.enabled===!1)b.radius=0;e=!1;if(g.options)for(l in k)s(b[k[l]])&&(e=!0);if(e){j=[];c=b.states||{};e=c.hover=c.hover||{};if(!a.options.marker)e.color=pa(e.color||g.options.color).brighten(e.brightness||
-d.brightness).get();j[""]=a.convertAttribs(b,i[""]);j.hover=a.convertAttribs(c.hover,i.hover,j[""]);j.select=a.convertAttribs(c.select,i.select,j[""])}else j=i;g.pointAttr=j}},destroy:function(){var a=this,b=a.chart,c=a.clipRect,d=/AppleWebKit\/533/.test(ya),e,f,g=a.data||[],h,i,j;E(a,"destroy");P(a);n(["xAxis","yAxis"],function(b){if(j=a[b])za(j.series,a),j.isDirty=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(f=g.length;f--;)(h=g[f])&&h.destroy&&h.destroy();a.points=null;if(c&&c!==b.clipRect)a.clipRect=
-c.destroy();n("area,graph,dataLabelsGroup,group,tracker,trackerGroup".split(","),function(b){a[b]&&(e=d&&b==="group"?"hide":"destroy",a[b][e]())});if(b.hoverSeries===a)b.hoverSeries=null;za(b.series,a);for(i in a)delete a[i]},drawDataLabels:function(){var a=this,b=a.options,c=b.dataLabels;if(c.enabled||a._hasPointLabels){var d,e,f=a.points,g,h,i,j=a.dataLabelsGroup,k=a.chart,l=a.xAxis,l=l?l.left:k.plotLeft,m=a.yAxis,m=m?m.top:k.plotTop,p=k.renderer,q=k.inverted,u=a.type,r=b.stacking,y=u==="column"||
-u==="bar",x=c.verticalAlign===null,w=c.y===null,v=p.fontMetrics(c.style.fontSize),H=v.h,J=v.b,K,z;y&&(v={top:J,middle:J-H/2,bottom:-H+J},r?(x&&(c=C(c,{verticalAlign:"middle"})),w&&(c=C(c,{y:v[c.verticalAlign]}))):x?c=C(c,{verticalAlign:"top"}):w&&(c=C(c,{y:v[c.verticalAlign]})));j?j.translate(l,m):j=a.dataLabelsGroup=p.g("data-labels").attr({visibility:a.visible?"visible":"hidden",zIndex:6}).translate(l,m).add();h=c;n(f,function(f){K=f.dataLabel;c=h;(g=f.options)&&g.dataLabels&&(c=C(c,g.dataLabels));
-if(z=c.enabled){var l=f.barX&&f.barX+f.barW/2||o(f.plotX,-999),m=o(f.plotY,-999),n=c.y===null?f.y>=b.threshold?-H+J:J:c.y;d=(q?k.plotWidth-m:l)+c.x;e=t((q?k.plotHeight-l:m)+n)}if(K&&a.isCartesian&&(!k.isInsidePlot(d,e)||!z))f.dataLabel=K.destroy();else if(z){var l=c.align,v;i=c.formatter.call(f.getLabelConfig(),c);u==="column"&&(d+={left:-1,right:1}[l]*f.barW/2||0);!r&&q&&f.y<0&&(l="right",d-=10);c.style.color=o(c.color,c.style.color,a.color,"black");if(K)K.attr({text:i}).animate({x:d,y:e});else if(s(i)){l=
-{align:l,fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":c.borderWidth,r:c.borderRadius||0,rotation:c.rotation,padding:c.padding,zIndex:1};for(v in l)l[v]===A&&delete l[v];K=f.dataLabel=p[c.rotation?"text":"label"](i,d,e,null,null,null,c.useHTML,!0).attr(l).css(c.style).add(j).shadow(c.shadow)}if(y&&b.stacking&&K)v=f.barX,l=f.barY,m=f.barW,f=f.barH,K.align(c,null,{x:q?k.plotWidth-l-f:v,y:q?k.plotHeight-v-m:l,width:q?f:m,height:q?m:f})}})}},getSegmentPath:function(a){var b=this,c=[];n(a,
-function(d,e){b.getPointSpline?c.push.apply(c,b.getPointSpline(a,d,e)):(c.push(e?"L":"M"),e&&b.options.step&&c.push(d.plotX,a[e-1].plotY),c.push(d.plotX,d.plotY))});return c},drawGraph:function(){var a=this,b=a.options,c=a.graph,d=[],e=a.group,f=b.lineColor||a.color,g=b.lineWidth,h=b.dashStyle,i,j=a.chart.renderer,k=[];n(a.segments,function(b){i=a.getSegmentPath(b);b.length>1?d=d.concat(i):k.push(b[0])});a.graphPath=d;a.singlePoints=k;if(c)Fa(c),c.animate({d:d});else if(g){c={stroke:f,"stroke-width":g};
-if(h)c.dashstyle=h;a.graph=j.path(d).attr(c).add(e).shadow(b.shadow)}},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};c.attr(a).invert();d&&d.attr(a).invert()}var b=this,c=b.group,d=b.trackerGroup,e=b.chart;I(e,"resize",a);I(b,"destroy",function(){P(e,"resize",a)});a();b.invertGroups=a},createGroup:function(){var a=this.chart;(this.group=a.renderer.g("series")).attr({visibility:this.visible?"visible":"hidden",zIndex:this.options.zIndex}).translate(this.xAxis.left,
-this.yAxis.top).add(a.seriesGroup);this.createGroup=Sb},render:function(){var a=this,b=a.chart,c,d=a.options,e=d.clip!==!1,f=d.animation,f=(d=f&&a.animate)?f&&f.duration||500:0,g=a.clipRect,h=b.renderer;if(!g&&(g=a.clipRect=!b.hasRendered&&b.clipRect?b.clipRect:h.clipRect(0,0,b.plotSizeX,b.plotSizeY+1),!b.clipRect))b.clipRect=g;a.createGroup();c=a.group;a.drawDataLabels();d&&a.animate(!0);a.getAttribs();a.drawGraph&&a.drawGraph();a.drawPoints();a.options.enableMouseTracking!==!1&&a.drawTracker();
-b.inverted&&a.invertGroups();e&&!a.hasRendered&&(c.clip(g),a.trackerGroup&&a.trackerGroup.clip(b.clipRect));d&&a.animate();setTimeout(function(){g.isAnimating=!1;if((c=a.group)&&g!==b.clipRect&&g.renderer){if(e)c.clip(a.clipRect=b.clipRect);g.destroy()}},f);a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.group;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:this.xAxis.left,translateY:this.yAxis.top}));
-this.translate();this.setTooltipPoints(!0);this.render();b&&E(this,"updatedData")},setState:function(a){var b=this.options,c=this.graph,d=b.states,b=b.lineWidth,a=a||"";if(this.state!==a)this.state=a,d[a]&&d[a].enabled===!1||(a&&(b=d[a].lineWidth||b+1),c&&!c.dashstyle&&c.attr({"stroke-width":b},a?0:500))},setVisible:function(a,b){var c=this.chart,d=this.legendItem,e=this.group,f=this.tracker,g=this.dataLabelsGroup,h,i=this.points,j=c.options.chart.ignoreHiddenSeries;h=this.visible;h=(this.visible=
-a=a===A?!h:a)?"show":"hide";if(e)e[h]();if(f)f[h]();else if(i)for(e=i.length;e--;)if(f=i[e],f.tracker)f.tracker[h]();if(g)g[h]();d&&c.legend.colorizeItem(this,a);this.isDirty=!0;this.options.stacking&&n(c.series,function(a){if(a.options.stacking&&a.visible)a.isDirty=!0});if(j)c.isDirtyBox=!0;b!==!1&&c.redraw();E(this,h)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=a===A?!this.selected:a;if(this.checkbox)this.checkbox.checked=a;E(this,
-a?"select":"unselect")},drawTrackerGroup:function(){var a=this.trackerGroup,b=this.chart;if(this.isCartesian){if(!a)this.trackerGroup=a=b.renderer.g().attr({zIndex:this.options.zIndex||1}).add(b.trackerGroup);a.translate(this.xAxis.left,this.yAxis.top)}return a},drawTracker:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,g=f.renderer,h=f.options.tooltip.snap,i=a.tracker,j=b.cursor,j=j&&{cursor:j},k=a.singlePoints,l=a.drawTrackerGroup(),
-m;if(e&&!c)for(m=e+1;m--;)d[m]==="M"&&d.splice(m+1,0,d[m+1]-h,d[m+2],"L"),(m&&d[m]==="M"||m===e)&&d.splice(m,0,"L",d[m-2]+h,d[m-1]);for(m=0;m<k.length;m++)e=k[m],d.push("M",e.plotX-h,e.plotY,"L",e.plotX+h,e.plotY);i?i.attr({d:d}):a.tracker=g.path(d).attr({isTracker:!0,"stroke-linejoin":"bevel",visibility:a.visible?"visible":"hidden",stroke:tb,fill:c?tb:U,"stroke-width":b.lineWidth+(c?0:2*h)}).on(ea?"touchstart":"mouseover",function(){if(f.hoverSeries!==a)a.onMouseOver()}).on("mouseout",function(){if(!b.stickyTracking)a.onMouseOut()}).css(j).add(l)}};
-G=ca(R);Y.line=G;Z.area=C(T,{threshold:0});G=ca(R,{type:"area",getSegmentPath:function(a){var b=R.prototype.getSegmentPath.call(this,a),c=[].concat(b),d,e=this.options;d=b.length;var f=this.yAxis.getThreshold(e.threshold);d===3&&c.push("L",b[1],b[2]);if(e.stacking&&this.type!=="areaspline")for(d=a.length-1;d>=0;d--)d<a.length-1&&e.step&&c.push(a[d+1].plotX,a[d].yBottom),c.push(a[d].plotX,a[d].yBottom);else c.push("L",a[a.length-1].plotX,f,"L",a[0].plotX,f);this.areaPath=this.areaPath.concat(c);return b},
-drawGraph:function(){this.areaPath=[];R.prototype.drawGraph.apply(this);var a=this.areaPath,b=this.options,c=this.area;c?c.animate({d:a}):this.area=this.chart.renderer.path(a).attr({fill:o(b.fillColor,pa(this.color).setOpacity(b.fillOpacity||0.75).get())}).add(this.group)},drawLegendSymbol:function(a,b){b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,a.options.symbolWidth,12,2).attr({zIndex:3}).add(b.legendGroup)}});Y.area=G;Z.spline=C(T);ha=ca(R,{type:"spline",getPointSpline:function(a,b,
-c){var d=b.plotX,e=b.plotY,f=a[c-1],g=a[c+1],h,i,j,k;if(c&&c<a.length-1){a=f.plotY;j=g.plotX;var g=g.plotY,l;h=(1.5*d+f.plotX)/2.5;i=(1.5*e+a)/2.5;j=(1.5*d+j)/2.5;k=(1.5*e+g)/2.5;l=(k-i)*(j-d)/(j-h)+e-k;i+=l;k+=l;i>a&&i>e?(i=x(a,e),k=2*e-i):i<a&&i<e&&(i=O(a,e),k=2*e-i);k>g&&k>e?(k=x(g,e),i=2*e-k):k<g&&k<e&&(k=O(g,e),i=2*e-k);b.rightContX=j;b.rightContY=k}c?(b=["C",f.rightContX||f.plotX,f.rightContY||f.plotY,h||d,i||e,d,e],f.rightContX=f.rightContY=null):b=["M",d,e];return b}});Y.spline=ha;Z.areaspline=
-C(Z.area);var Ia=G.prototype,ha=ca(ha,{type:"areaspline",getSegmentPath:Ia.getSegmentPath,drawGraph:Ia.drawGraph});Y.areaspline=ha;Z.column=C(T,{borderColor:"#FFFFFF",borderWidth:1,borderRadius:0,groupPadding:0.2,marker:null,pointPadding:0.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:0.1,shadow:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{y:null,verticalAlign:null},threshold:0});ha=ca(R,{type:"column",tooltipOutsidePlot:!0,pointAttrToOptions:{stroke:"borderColor",
-"stroke-width":"borderWidth",fill:"color",r:"borderRadius"},init:function(){R.prototype.init.apply(this,arguments);var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0})},translate:function(){var a=this,b=a.chart,c=a.options,d=c.stacking,e=c.borderWidth,f=0,g=a.xAxis,h=g.reversed,i={},j,k;R.prototype.translate.apply(a);n(b.series,function(b){if(b.type===a.type&&b.visible&&a.options.group===b.options.group)b.options.stacking?(j=b.stackKey,i[j]===A&&(i[j]=f++),
-k=i[j]):k=f++,b.columnIndex=k});var l=a.points,g=M(g.transA)*(g.ordinalSlope||c.pointRange||g.closestPointRange||1),m=g*c.groupPadding,p=(g-2*m)/f,q=c.pointWidth,t=s(q)?(p-q)/2:p*c.pointPadding,r=o(q,p-2*t),y=wa(x(r,1+2*e)),w=t+(m+((h?f-a.columnIndex:a.columnIndex)||0)*p-g/2)*(h?-1:1),z=a.yAxis.getThreshold(c.threshold),v=o(c.minPointLength,5);n(l,function(c){var f=c.plotY,g=o(c.yBottom,z),h=c.plotX+w,i=wa(O(f,g)),j=wa(x(f,g)-i),k=a.yAxis.stacks[(c.y<0?"-":"")+a.stackKey];d&&a.visible&&k&&k[c.x]&&
-k[c.x].setOffset(w,y);M(j)<v&&v&&(j=v,i=M(i-z)>v?g-v:z-(f<=z?v:0));u(c,{barX:h,barY:i,barW:y,barH:j,pointWidth:r});c.shapeType="rect";c.shapeArgs=f=b.renderer.Element.prototype.crisp.call(0,e,h,i,y,j);e%2&&(f.y-=1,f.height+=1);c.trackerArgs=M(j)<3&&C(c.shapeArgs,{height:6,y:i-3})})},getSymbol:function(){},drawLegendSymbol:G.prototype.drawLegendSymbol,drawGraph:function(){},drawPoints:function(){var a=this,b=a.options,c=a.chart.renderer,d,e;n(a.points,function(f){var g=f.plotY;if(g!==A&&!isNaN(g)&&
-f.y!==null)d=f.graphic,e=f.shapeArgs,d?(Fa(d),d.animate(C(e))):f.graphic=d=c[f.shapeType](e).attr(f.pointAttr[f.selected?"select":""]).add(a.group).shadow(b.shadow,null,b.stacking&&!b.borderRadius)})},drawTracker:function(){var a=this,b=a.chart,c=b.renderer,d,e,f=+new Date,g=a.options,h=g.cursor,i=h&&{cursor:h},j=a.drawTrackerGroup(),k,l,m;n(a.points,function(h){e=h.tracker;d=h.trackerArgs||h.shapeArgs;l=h.plotY;m=!a.isCartesian||l!==A&&!isNaN(l);delete d.strokeWidth;if(h.y!==null&&m)e?e.attr(d):
-h.tracker=c[h.shapeType](d).attr({isTracker:f,fill:tb,visibility:a.visible?"visible":"hidden"}).on(ea?"touchstart":"mouseover",function(c){k=c.relatedTarget||c.fromElement;if(b.hoverSeries!==a&&z(k,"isTracker")!==f)a.onMouseOver();h.onMouseOver()}).on("mouseout",function(b){if(!g.stickyTracking&&(k=b.relatedTarget||b.toElement,z(k,"isTracker")!==f))a.onMouseOut()}).css(i).add(h.group||j)})},animate:function(a){var b=this,c=b.points,d=b.options;if(!a)n(c,function(a){var c=a.graphic,a=a.shapeArgs,g=
-b.yAxis,h=d.threshold;c&&(c.attr({height:0,y:s(h)?g.getThreshold(h):g.translate(g.getExtremes().min,0,1,0,1)}),c.animate({height:a.height,y:a.y},d.animation))}),b.animate=null},remove:function(){var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0});R.prototype.remove.apply(a,arguments)}});Y.column=ha;Z.bar=C(Z.column,{dataLabels:{align:"left",x:5,y:null,verticalAlign:"middle"}});Ia=ca(ha,{type:"bar",inverted:!0});Y.bar=Ia;Z.scatter=C(T,{lineWidth:0,states:{hover:{lineWidth:0}},
-tooltip:{headerFormat:'<span style="font-size: 10px; color:{series.color}">{series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}});Ia=ca(R,{type:"scatter",sorted:!1,translate:function(){var a=this;R.prototype.translate.apply(a);n(a.points,function(b){b.shapeType="circle";b.shapeArgs={x:b.plotX,y:b.plotY,r:a.chart.options.tooltip.snap}})},drawTracker:function(){for(var a=this,b=a.options.cursor,b=b&&{cursor:b},c=a.points,d=c.length,e;d--;)if(e=c[d].graphic)e.element._i=
-d;a._hasTracking?a._hasTracking=!0:a.group.attr({isTracker:!0}).on(ea?"touchstart":"mouseover",function(b){a.onMouseOver();if(b.target._i!==A)c[b.target._i].onMouseOver()}).on("mouseout",function(){if(!a.options.stickyTracking)a.onMouseOut()}).css(b)}});Y.scatter=Ia;Z.pie=C(T,{borderColor:"#FFFFFF",borderWidth:1,center:["50%","50%"],colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name},y:5},legendType:"point",marker:null,size:"75%",showInLegend:!1,slicedOffset:10,
-states:{hover:{brightness:0.1,shadow:!1}}});T={type:"pie",isCartesian:!1,pointClass:ca(Wa,{init:function(){Wa.prototype.init.apply(this,arguments);var a=this,b;u(a,{visible:a.visible!==!1,name:o(a.name,"Slice")});b=function(){a.slice()};I(a,"select",b);I(a,"unselect",b);return a},setVisible:function(a){var b=this.series.chart,c=this.tracker,d=this.dataLabel,e=this.connector,f=this.shadowGroup,g;g=(this.visible=a=a===A?!this.visible:a)?"show":"hide";this.group[g]();if(c)c[g]();if(d)d[g]();if(e)e[g]();
-if(f)f[g]();this.legendItem&&b.legend.colorizeItem(this,a)},slice:function(a,b,c){var d=this.series.chart,e=this.slicedTranslation;ua(c,d);o(b,!0);a=this.sliced=s(a)?a:!this.sliced;a={translateX:a?e[0]:d.plotLeft,translateY:a?e[1]:d.plotTop};this.group.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)}}),pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:function(){this.initialColor=this.chart.counters.color},animate:function(){var a=this;n(a.points,
-function(b){var c=b.graphic,b=b.shapeArgs,d=-xa/2;c&&(c.attr({r:0,start:d,end:d}),c.animate({r:b.r,start:b.start,end:b.end},a.options.animation))});a.animate=null},setData:function(a,b){R.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();o(b,!0)&&this.chart.redraw()},getCenter:function(){var a=this.options,b=this.chart,c=b.plotWidth,d=b.plotHeight,a=a.center.concat([a.size,a.innerSize||0]),e=O(c,d),f;return Ea(a,function(a,b){return(f=/%$/.test(a))?[c,d,e,e][b]*w(a)/100:a})},
-translate:function(){this.generatePoints();var a=0,b=-0.25,c=this.options,d=c.slicedOffset,e=d+c.borderWidth,f,g=this.chart,h,i,j,k=this.points,l=2*xa,m,p,o,s=c.dataLabels.distance;this.center=f=this.getCenter();this.getX=function(a,b){j=L.asin((a-f[1])/(f[2]/2+s));return f[0]+(b?-1:1)*X(j)*(f[2]/2+s)};n(k,function(b){a+=b.y});n(k,function(c){m=a?c.y/a:0;h=t(b*l*1E3)/1E3;b+=m;i=t(b*l*1E3)/1E3;c.shapeType="arc";c.shapeArgs={x:f[0],y:f[1],r:f[2]/2,innerR:f[3]/2,start:h,end:i};j=(i+h)/2;c.slicedTranslation=
-Ea([X(j)*d+g.plotLeft,da(j)*d+g.plotTop],t);p=X(j)*f[2]/2;o=da(j)*f[2]/2;c.tooltipPos=[f[0]+p*0.7,f[1]+o*0.7];c.labelPos=[f[0]+p+X(j)*s,f[1]+o+da(j)*s,f[0]+p+X(j)*e,f[1]+o+da(j)*e,f[0]+p,f[1]+o,s<0?"center":j<l/4?"left":"right",j];c.percentage=m*100;c.total=a});this.setTooltipPoints()},render:function(){this.getAttribs();this.drawPoints();this.options.enableMouseTracking!==!1&&this.drawTracker();this.drawDataLabels();this.options.animation&&this.animate&&this.animate();this.isDirty=!1},drawPoints:function(){var a=
-this,b=a.chart,c=b.renderer,d,e,f,g=a.options.shadow,h,i;n(a.points,function(j){e=j.graphic;i=j.shapeArgs;f=j.group;h=j.shadowGroup;if(g&&!h)h=j.shadowGroup=c.g("shadow").attr({zIndex:4}).add();if(!f)f=j.group=c.g("point").attr({zIndex:5}).add();d=j.sliced?j.slicedTranslation:[b.plotLeft,b.plotTop];f.translate(d[0],d[1]);h&&h.translate(d[0],d[1]);e?e.animate(i):j.graphic=e=c.arc(i).setRadialReference(a.center).attr(u(j.pointAttr[""],{"stroke-linejoin":"round"})).add(j.group).shadow(g,h);j.visible===
-!1&&j.setVisible(!1)})},drawDataLabels:function(){var a=this.data,b,c=this.chart,d=this.options.dataLabels,e=o(d.connectorPadding,10),f=o(d.connectorWidth,1),g,h,i=o(d.softConnector,!0),j=d.distance,k=this.center,l=k[2]/2,m=k[1],p=j>0,q=[[],[]],s,r,t,u,x=2,v;if(d.enabled){R.prototype.drawDataLabels.apply(this);n(a,function(a){a.dataLabel&&q[a.labelPos[7]<xa/2?0:1].push(a)});q[1].reverse();u=function(a,b){return b.y-a.y};for(a=q[0][0]&&q[0][0].dataLabel&&(q[0][0].dataLabel.getBBox().height||21);x--;){var w=
-[],C=[],z=q[x],A=z.length,B;if(j>0){for(v=m-l-j;v<=m+l+j;v+=a)w.push(v);t=w.length;if(A>t){h=[].concat(z);h.sort(u);for(v=A;v--;)h[v].rank=v;for(v=A;v--;)z[v].rank>=t&&z.splice(v,1);A=z.length}for(v=0;v<A;v++){b=z[v];h=b.labelPos;b=9999;for(r=0;r<t;r++)g=M(w[r]-h[1]),g<b&&(b=g,B=r);if(B<v&&w[v]!==null)B=v;else for(t<A-v+B&&w[v]!==null&&(B=t-A+v);w[B]===null;)B++;C.push({i:B,y:w[B]});w[B]=null}C.sort(u)}for(v=0;v<A;v++){b=z[v];h=b.labelPos;g=b.dataLabel;t=b.visible===!1?"hidden":"visible";s=h[1];if(j>
-0){if(r=C.pop(),B=r.i,r=r.y,s>r&&w[B+1]!==null||s<r&&w[B-1]!==null)r=s}else r=s;s=d.justify?k[0]+(x?-1:1)*(l+j):this.getX(B===0||B===w.length-1?s:r,x);g.attr({visibility:t,align:h[6]})[g.moved?"animate":"attr"]({x:s+d.x+({left:e,right:-e}[h[6]]||0),y:r+d.y});g.moved=!0;if(p&&f)g=b.connector,h=i?["M",s+(h[6]==="left"?5:-5),r,"C",s,r,2*h[2]-h[4],2*h[3]-h[5],h[2],h[3],"L",h[4],h[5]]:["M",s+(h[6]==="left"?5:-5),r,"L",h[2],h[3],"L",h[4],h[5]],g?(g.animate({d:h}),g.attr("visibility",t)):b.connector=g=this.chart.renderer.path(h).attr({"stroke-width":f,
-stroke:d.connectorColor||b.color||"#606060",visibility:t,zIndex:3}).translate(c.plotLeft,c.plotTop).add()}}}},drawTracker:ha.prototype.drawTracker,drawLegendSymbol:G.prototype.drawLegendSymbol,getSymbol:function(){}};T=ca(R,T);Y.pie=T;u(Highcharts,{Axis:ob,CanVGRenderer:fb,Chart:rb,Color:pa,Legend:qb,Point:Wa,Tick:Sa,Tooltip:pb,Renderer:Ta,Series:R,SVGRenderer:qa,VMLRenderer:ka,dateFormat:db,pathAnim:Ua,getOptions:function(){return V},hasBidiBug:Rb,numberFormat:Xa,seriesTypes:Y,setOptions:function(a){V=
-C(V,a);Bb();return V},addEvent:I,removeEvent:P,createElement:S,discardElement:Qa,css:F,each:n,extend:u,map:Ea,merge:C,pick:o,splat:na,extendClass:ca,pInt:w,product:"Highcharts",version:"2.2.5"})})();
diff --git a/plugins/redmine_monitoring_controlling/assets/javascripts/highstock.js b/plugins/redmine_monitoring_controlling/assets/javascripts/highstock.js
deleted file mode 100644
index 17b614a..0000000
--- a/plugins/redmine_monitoring_controlling/assets/javascripts/highstock.js
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- Highstock JS v1.1.6 (2012-06-08)
-
- (c) 2009-2011 Torstein H?nsi
-
- License: www.highcharts.com/license
-*/
-(function(){function z(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}function ha(){for(var a=0,b=arguments,c=b.length,d={};a<c;a++)d[b[a++]]=b[a];return d}function F(a,b){return parseInt(a,b||10)}function ya(a){return typeof a==="string"}function ia(a){return typeof a==="object"}function Va(a){return Object.prototype.toString.call(a)==="[object Array]"}function Wa(a){return typeof a==="number"}function ra(a){return R.log(a)/R.LN10}function ja(a){return R.pow(10,a)}function Ka(a,b){for(var c=
-a.length;c--;)if(a[c]===b){a.splice(c,1);break}}function s(a){return a!==v&&a!==null}function G(a,b,c){var d,e;if(ya(b))s(c)?a.setAttribute(b,c):a&&a.getAttribute&&(e=a.getAttribute(b));else if(s(b)&&ia(b))for(d in b)a.setAttribute(d,b[d]);return e}function la(a){return Va(a)?a:[a]}function p(){var a=arguments,b,c,d=a.length;for(b=0;b<d;b++)if(c=a[b],typeof c!=="undefined"&&c!==null)return c}function M(a,b){if(Xa&&b&&b.opacity!==v)b.filter="alpha(opacity="+b.opacity*100+")";z(a.style,b)}function V(a,
-b,c,d,e){a=I.createElement(a);b&&z(a,b);e&&M(a,{padding:0,border:da,margin:0});c&&M(a,c);d&&d.appendChild(a);return a}function ca(a,b){var c=function(){};c.prototype=new a;z(c.prototype,b);return c}function Ya(a,b,c,d){var e=T.lang,f=a;b===-1?(b=(a||0).toString(),a=b.indexOf(".")>-1?b.split(".")[1].length:0):a=isNaN(b=W(b))?2:b;var b=a,c=c===void 0?e.decimalPoint:c,d=d===void 0?e.thousandsSep:d,e=f<0?"-":"",a=String(F(f=W(+f||0).toFixed(b))),g=a.length>3?a.length%3:0;return e+(g?a.substr(0,g)+d:"")+
-a.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(b?c+W(f-a).toFixed(b).slice(2):"")}function za(a,b){return Array((b||2)+1-String(a).length).join(0)+a}function pb(a,b,c,d){var e,c=p(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allowDecimals===!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d<b.length;d++)if(a=b[d],e<=(b[d]+(b[d+1]||b[d]))/2)break;a*=c;return a}function Cb(a,b){var c=b||[[fb,[1,2,5,10,20,25,50,100,200,500]],[Za,[1,2,5,10,15,30]],[La,[1,2,5,10,15,30]],[sa,[1,2,3,4,6,8,12]],[fa,[1,2]],[Aa,
-[1,2]],[Ba,[1,2,3,4,6]],[na,null]],d=c[c.length-1],e=E[d[0]],f=d[1],g;for(g=0;g<c.length;g++)if(d=c[g],e=E[d[0]],f=d[1],c[g+1]&&a<=(e*f[f.length-1]+E[c[g+1][0]])/2)break;e===E[na]&&a<5*e&&(f=[1,2,5]);e===E[na]&&a<5*e&&(f=[1,2,5]);c=pb(a/e,f);return{unitRange:e,count:c,unitName:d[0]}}function gb(a,b,c,d){var e=[],f={},g=T.global.useUTC,h,k=new Date(b),b=a.unitRange,i=a.count;b>=E[Za]&&(k.setMilliseconds(0),k.setSeconds(b>=E[La]?0:i*$(k.getSeconds()/i)));if(b>=E[La])k[Db](b>=E[sa]?0:i*$(k[qb]()/i));
-if(b>=E[sa])k[Eb](b>=E[fa]?0:i*$(k[rb]()/i));if(b>=E[fa])k[sb](b>=E[Ba]?1:i*$(k[Ca]()/i));b>=E[Ba]&&(k[Fb](b>=E[na]?0:i*$(k[hb]()/i)),h=k[ib]());b>=E[na]&&(h-=h%i,k[Gb](h));if(b===E[Aa])k[sb](k[Ca]()-k[tb]()+p(d,1));d=1;h=k[ib]();for(var j=k.getTime(),l=k[hb](),m=k[Ca](),k=g?0:(864E5+k.getTimezoneOffset()*6E4)%864E5;j<c;)e.push(j),b===E[na]?j=jb(h+d*i,0):b===E[Ba]?j=jb(h,l+d*i):!g&&(b===E[fa]||b===E[Aa])?j=jb(h,l,m+d*i*(b===E[fa]?1:7)):(j+=b*i,b<=E[sa]&&j%E[fa]===k&&(f[j]=fa)),d++;e.push(j);e.info=
-z(a,{higherRanks:f,totalRange:b*i});return e}function Hb(){this.symbol=this.color=0}function ac(a,b){var c=a.length,d,e;for(e=0;e<c;e++)a[e].ss_i=e;a.sort(function(a,c){d=b(a,c);return d===0?a.ss_i-c.ss_i:d});for(e=0;e<c;e++)delete a[e].ss_i}function Ma(a){for(var b=a.length,c=a[0];b--;)a[b]<c&&(c=a[b]);return c}function Da(a){for(var b=a.length,c=a[0];b--;)a[b]>c&&(c=a[b]);return c}function ta(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Na(a){kb||(kb=V(oa));
-a&&kb.appendChild(a);kb.innerHTML=""}function ub(a,b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;else Y.console&&console.log(c)}function pa(a){return parseFloat(a.toPrecision(14))}function Ea(a,b){$a=p(a,b.animation)}function Ib(){var a=T.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set";jb=a?Date.UTC:function(a,b,c,g,h,k){return(new Date(a,b,p(c,1),p(g,0),p(h,0),p(k,0))).getTime()};qb=b+"Minutes";rb=b+"Hours";tb=b+"Day";Ca=b+"Date";hb=b+"Month";ib=b+"FullYear";Db=
-c+"Minutes";Eb=c+"Hours";sb=c+"Date";Fb=c+"Month";Gb=c+"FullYear"}function Fa(){}function ab(a,b,c){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;c||this.addLabel()}function vb(a,b){this.axis=a;if(b)this.options=b,this.id=b.id;return this}function Jb(a,b,c,d,e){var f=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.stack=e;this.alignOptions={align:b.align||(f?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(f?"middle":c?"bottom":"top"),y:p(b.y,f?4:c?14:
--6),x:p(b.x,f?c?-6:6:0)};this.textAlign=b.textAlign||(f?c?"right":"left":"center")}function bb(){this.init.apply(this,arguments)}function wb(a,b){var c=b.borderWidth,d=b.style,e=b.shared,f=F(d.padding);this.chart=a;this.options=b;d.padding=0;this.crosshairs=[];this.currentY=this.currentX=0;this.tooltipIsHidden=!0;this.label=a.renderer.label("",0,0,null,null,null,b.useHTML,null,"tooltip").attr({padding:f,fill:b.backgroundColor,"stroke-width":c,r:b.borderRadius,zIndex:8}).css(d).hide().add();ma||this.label.shadow(b.shadow);
-this.shared=e}function Kb(a,b){var c=ma?"":b.chart.zoomType;this.zoomX=/x/.test(c);this.zoomY=/y/.test(c);this.options=b;this.chart=a;this.init(a,b.tooltip)}function xb(a){this.init(a)}function cb(a,b){var c,d=a.series;a.series=null;c=y(T,a);c.series=a.series=d;var d=c.chart,e=d.margin,e=ia(e)?e:[e,e,e,e];this.optionsMarginTop=p(d.marginTop,e[0]);this.optionsMarginRight=p(d.marginRight,e[1]);this.optionsMarginBottom=p(d.marginBottom,e[2]);this.optionsMarginLeft=p(d.marginLeft,e[3]);this.runChartClick=
-(e=d.events)&&!!e.click;this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;this.init(e)}function Lb(a){var b=a.options,c=b.navigator,d=c.enabled,b=b.scrollbar,e=b.enabled,f=d?c.height:0,g=e?b.height:0,h=c.baseSeries;this.baseSeries=a.series[h]||typeof h==="string"&&a.get(h)||a.series[0];this.handles=[];this.scrollbarButtons=[];this.elementsToDestroy=[];a.resetZoomEnabled=!1;this.chart=a;this.height=f;this.scrollbarHeight=g;this.scrollbarEnabled=
-e;this.navigatorEnabled=d;this.navigatorOptions=c;this.scrollbarOptions=b;this.outlineHeight=f+g;this.init()}function Mb(a){a.resetZoomEnabled=!1;this.chart=a;this.buttons=[];this.boxSpanElements={};this.init([{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}])}var v,I=document,Y=window,R=Math,u=R.round,$=R.floor,Ga=R.ceil,t=R.max,O=R.min,W=R.abs,ga=R.cos,ka=R.sin,Ha=R.PI,
-Nb=Ha*2/360,Ia=navigator.userAgent,Xa=/msie/i.test(Ia)&&!Y.opera,Oa=I.documentMode===8,Ob=/AppleWebKit/.test(Ia),Pb=/Firefox/.test(Ia),Pa=!!I.createElementNS&&!!I.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,bc=Pb&&parseInt(Ia.split("Firefox/")[1],10)<4,ma=!Pa&&!Xa&&!!I.createElement("canvas").getContext,Qa,aa=I.documentElement.ontouchstart!==v,Qb={},yb=0,kb,T,ua,$a,db,E,Rb=function(){},oa="div",da="none",zb="rgba(192,192,192,"+(Pa?1.0E-6:0.0020)+")",fb="millisecond",Za="second",
-La="minute",sa="hour",fa="day",Aa="week",Ba="month",na="year",jb,qb,rb,tb,Ca,hb,ib,Db,Eb,sb,Fb,Gb,U={};Y.Highcharts={};ua=function(a,b,c){if(!s(b)||isNaN(b))return"Invalid date";var a=p(a,"%Y-%m-%d %H:%M:%S"),d=new Date(b),e,f=d[rb](),g=d[tb](),h=d[Ca](),k=d[hb](),i=d[ib](),j=T.lang,l=j.weekdays,b={a:l[g].substr(0,3),A:l[g],d:za(h),e:h,b:j.shortMonths[k],B:j.months[k],m:za(k+1),y:i.toString().substr(2,2),Y:i,H:za(f),I:za(f%12||12),l:f%12||12,M:za(d[qb]()),p:f<12?"AM":"PM",P:f<12?"am":"pm",S:za(d.getSeconds()),
-L:za(u(b%1E3),3)};for(e in b)a=a.replace("%"+e,b[e]);return c?a.substr(0,1).toUpperCase()+a.substr(1):a};Hb.prototype={wrapColor:function(a){if(this.color>=a)this.color=0},wrapSymbol:function(a){if(this.symbol>=a)this.symbol=0}};E=ha(fb,1,Za,1E3,La,6E4,sa,36E5,fa,864E5,Aa,6048E5,Ba,2592E6,na,31556952E3);db={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,k,i=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+
-2])};e&&(i(b),i(c));a.isArea&&(h=b.splice(b.length-6,6),k=c.splice(c.length-6,6));if(d<=c.length/f)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift=0;if(b.length)for(a=c.length;b.length<a;)d=[].concat(b).splice(b.length-f,f),e&&(d[f-6]=d[f-2],d[f-5]=d[f-1]),b=b.concat(d);h&&(b=b.concat(h),c=c.concat(k));return[b,c]},step:function(a,b,c,d){var e=[],f=a.length;if(c===1)e=d;else if(f===b.length&&c<1)for(;f--;)d=parseFloat(a[f]),e[f]=isNaN(d)?a[f]:c*parseFloat(b[f]-d)+d;else e=b;return e}};var P=
-Y.HighchartsAdapter,L=P||{},eb=L.adapterRun,Sb=L.getScript,n=L.each,Ab=L.grep,Tb=L.offset,va=L.map,y=L.merge,B=L.addEvent,Q=L.removeEvent,N=L.fireEvent,Ub=L.washMouseEvent,lb=L.animate,Ra=L.stop;P&&P.init&&P.init(db);if(!P&&Y.jQuery){var ba=jQuery,Sb=ba.getScript,eb=function(a,b){return ba(a)[b]()},n=function(a,b){for(var c=0,d=a.length;c<d;c++)if(b.call(a[c],a[c],c,a)===!1)return c},Ab=ba.grep,va=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++)c[d]=b.call(a[d],a[d],d,a);return c},y=function(){var a=
-arguments;return ba.extend(!0,null,a[0],a[1],a[2],a[3])},Tb=function(a){return ba(a).offset()},B=function(a,b,c){ba(a).bind(b,c)},Q=function(a,b,c){var d=I.removeEventListener?"removeEventListener":"detachEvent";I[d]&&!a[d]&&(a[d]=function(){});ba(a).unbind(b,c)},N=function(a,b,c,d){var e=ba.Event(b),f="detached"+b,g;!Xa&&c&&(delete c.layerX,delete c.layerY);z(e,c);a[b]&&(a[f]=a[b],a[b]=null);n(["preventDefault","stopPropagation"],function(a){var b=e[a];e[a]=function(){try{b.call(e)}catch(c){a===
-"preventDefault"&&(g=!0)}}});ba(a).trigger(e);a[f]&&(a[b]=a[f],a[f]=null);d&&!e.isDefaultPrevented()&&!g&&d(e)},Ub=function(a){return a},lb=function(a,b,c){var d=ba(a);if(b.d)a.toD=b.d,b.d=1;d.stop();d.animate(b,c)},Ra=function(a){ba(a).stop()};ba.extend(ba.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}});var Vb=ba.fx,Wb=Vb.step;n(["cur","_default","width","height"],function(a,b){var c=Wb,d,e;a==="cur"?c=Vb.prototype:a==="_default"&&ba.Tween&&(c=ba.Tween.propHooks[a],a="set");(d=
-c[a])&&(c[a]=function(c){c=b?c:this;e=c.elem;return e.attr?e.attr(c.prop,a==="cur"?v:c.now):d.apply(this,arguments)})});Wb.d=function(a){var b=a.elem;if(!a.started){var c=db.init(b,b.d,b.toD);a.start=c[0];a.end=c[1];a.started=!0}b.attr("d",db.step(a.start,a.end,a.pos,b.toD))}}L={enabled:!0,align:"center",x:0,y:15,style:{color:"#666",fontSize:"11px",lineHeight:"14px"}};T={colors:"#4572A7,#AA4643,#89A54E,#80699B,#3D96AE,#DB843D,#92A8CD,#A47D7C,#B5CA92".split(","),symbols:["circle","diamond","square",
-"triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),decimalPoint:".",resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:","},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/stock/1.1.6/modules/canvas-tools.js"},
-chart:{borderColor:"#4572A7",borderRadius:5,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacingTop:10,spacingRight:10,spacingBottom:15,spacingLeft:10,style:{fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif',fontSize:"12px"},backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",y:15,style:{color:"#3E576F",fontSize:"16px"}},subtitle:{text:"",align:"center",
-y:30,style:{color:"#6D869F"}},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},lineWidth:2,shadow:!0,marker:{enabled:!0,lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:y(L,{enabled:!1,y:-6,formatter:function(){return this.y}}),cropThreshold:300,pointRange:0,showInLegend:!0,states:{hover:{marker:{}},select:{marker:{}}},stickyTracking:!0}},labels:{style:{position:"absolute",
-color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderWidth:1,borderColor:"#909090",borderRadius:5,navigation:{activeColor:"#3E576F",inactiveColor:"#CCC"},shadow:!1,itemStyle:{cursor:"pointer",color:"#3E576F",fontSize:"12px"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolWidth:16,symbolPadding:5,verticalAlign:"bottom",x:0,y:0},loading:{labelStyle:{fontWeight:"bold",
-position:"relative",top:"1em"},style:{position:"absolute",backgroundColor:"white",opacity:0.5,textAlign:"center"}},tooltip:{enabled:!0,backgroundColor:"rgba(255, 255, 255, .85)",borderWidth:2,borderRadius:5,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',
-shadow:!0,shared:ma,snap:aa?25:10,style:{color:"#333333",fontSize:"12px",padding:"5px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"10px"}}};var S=T.plotOptions,P=S.line;Ib();var wa=function(a){var b=[],c;(function(a){(c=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(a))?b=[F(c[1]),F(c[2]),
-F(c[3]),parseFloat(c[4],10)]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))&&(b=[F(c[1],16),F(c[2],16),F(c[3],16),1])})(a);return{get:function(c){return b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+b[1]+","+b[2]+")":c==="a"?b[3]:"rgba("+b.join(",")+")":a},brighten:function(a){if(Wa(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=F(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},setOpacity:function(a){b[3]=a;return this}}};Fa.prototype={init:function(a,b){this.element=b==="span"?V(b):
-I.createElementNS("http://www.w3.org/2000/svg",b);this.renderer=a;this.attrSetters={}},animate:function(a,b,c){b=p(b,$a,!0);Ra(this);if(b){b=y(b);if(c)b.complete=c;lb(this,a,b)}else this.attr(a),c&&c()},attr:function(a,b){var c,d,e,f,g=this.element,h=g.nodeName,k=this.renderer,i,j=this.attrSetters,l=this.shadows,m,o,r=this;ya(a)&&s(b)&&(c=a,a={},a[c]=b);if(ya(a))c=a,h==="circle"?c={x:"cx",y:"cy"}[c]||c:c==="strokeWidth"&&(c="stroke-width"),r=G(g,c)||this[c]||0,c!=="d"&&c!=="visibility"&&(r=parseFloat(r));
-else for(c in a)if(i=!1,d=a[c],e=j[c]&&j[c](d,c),e!==!1){e!==v&&(d=e);if(c==="d")d&&d.join&&(d=d.join(" ")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0");else if(c==="x"&&h==="text"){for(e=0;e<g.childNodes.length;e++)f=g.childNodes[e],G(f,"x")===G(g,"x")&&G(f,"x",d);this.rotation&&G(g,"transform","rotate("+this.rotation+" "+d+" "+F(a.y||G(g,"y"))+")")}else if(c==="fill")d=k.color(d,g,c);else if(h==="circle"&&(c==="x"||c==="y"))c={x:"cx",y:"cy"}[c]||c;else if(h==="rect"&&c==="r")G(g,{rx:d,ry:d}),i=!0;else if(c===
-"translateX"||c==="translateY"||c==="rotation"||c==="verticalAlign")i=o=!0;else if(c==="stroke")d=k.color(d,g,c);else if(c==="dashstyle")if(c="stroke-dasharray",d=d&&d.toLowerCase(),d==="solid")d=da;else{if(d){d=d.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=d.length;e--;)d[e]=F(d[e])*a["stroke-width"];d=d.join(",")}}else if(c===
-"isTracker")this[c]=d;else if(c==="width")d=F(d);else if(c==="align")c="text-anchor",d={left:"start",center:"middle",right:"end"}[d];else if(c==="title")e=g.getElementsByTagName("title")[0],e||(e=I.createElementNS("http://www.w3.org/2000/svg","title"),g.appendChild(e)),e.textContent=d;c==="strokeWidth"&&(c="stroke-width");Ob&&c==="stroke-width"&&d===0&&(d=1.0E-6);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(c)&&(m||(this.symbolAttr(a),m=!0),i=!0);if(l&&/^(width|height|visibility|x|y|d|transform)$/.test(c))for(e=
-l.length;e--;)G(l[e],c,c==="height"?t(d-(l[e].cutHeight||0),0):d);if((c==="width"||c==="height")&&h==="rect"&&d<0)d=0;this[c]=d;o&&this.updateTransform();c==="text"?(this.textStr=d,this.added&&k.buildText(this)):i||G(g,c,d)}if(Ob&&/Chrome\/(18|19)/.test(Ia)&&h==="text"&&(a.x!==v||a.y!==v))c=g.parentNode,d=g.nextSibling,c&&(c.removeChild(g),d?c.insertBefore(g,d):c.appendChild(g));return r},symbolAttr:function(a){var b=this;n("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(c){b[c]=
-p(a[c],b[c])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path","url("+this.renderer.url+"#"+a.id+")")},crisp:function(a,b,c,d,e){var f,g={},h={},k,a=a||this.strokeWidth||this.attr&&this.attr("stroke-width")||0;k=u(a)%2/2;h.x=$(b||this.x||0)+k;h.y=$(c||this.y||0)+k;h.width=$((d||this.width||0)-2*k);h.height=$((e||this.height||0)-2*k);h.strokeWidth=a;for(f in h)this[f]!==h[f]&&(this[f]=g[f]=h[f]);return g},css:function(a){var b=
-this.element,b=a&&a.width&&b.nodeName==="text",c,d="",e=function(a,b){return"-"+b.toLowerCase()};if(a&&a.color)a.fill=a.color;this.styles=a=z(this.styles,a);if(Xa&&!Pa)b&&delete a.width,M(this.element,a);else{for(c in a)d+=c.replace(/([A-Z])/g,e)+":"+a[c]+";";this.attr({style:d})}b&&this.added&&this.renderer.buildText(this);return this},on:function(a,b){var c=b;aa&&a==="click"&&(a="touchstart",c=function(a){a.preventDefault();b()});this.element["on"+a]=c;return this},setRadialReference:function(a){this.element.radialReference=
-a;return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(){this.inverted=!0;this.updateTransform();return this},htmlCss:function(a){var b=this.element;if(b=a&&b.tagName==="SPAN"&&a.width)delete a.width,this.textWidth=b,this.updateTransform();this.styles=z(this.styles,a);M(this.element,a);return this},htmlGetBBox:function(a){var b=this.element,c=this.bBox;if(!c||a){if(b.nodeName==="text")b.style.position="absolute";c=this.bBox={x:b.offsetLeft,y:b.offsetTop,
-width:b.offsetWidth,height:b.offsetHeight}}return c},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,c=this.translateX||0,d=this.translateY||0,e=this.x||0,f=this.y||0,g=this.textAlign||"left",h={left:0,center:0.5,right:1}[g],k=g&&g!=="left",i=this.shadows;if(c||d)M(b,{marginLeft:c,marginTop:d}),i&&n(i,function(a){M(a,{marginLeft:c+1,marginTop:d+1})});this.inverted&&n(b.childNodes,function(c){a.invertChild(c,b)});if(b.tagName==="SPAN"){var j,l,i=this.rotation,m;j=0;
-var o=1,r=0,A;m=F(this.textWidth);var q=this.xCorr||0,C=this.yCorr||0,J=[i,g,b.innerHTML,this.textWidth].join(",");if(J!==this.cTT)s(i)&&(j=i*Nb,o=ga(j),r=ka(j),M(b,{filter:i?["progid:DXImageTransform.Microsoft.Matrix(M11=",o,", M12=",-r,", M21=",r,", M22=",o,", sizingMethod='auto expand')"].join(""):da})),j=p(this.elemWidth,b.offsetWidth),l=p(this.elemHeight,b.offsetHeight),j>m&&/[ \-]/.test(b.innerText)&&(M(b,{width:m+"px",display:"block",whiteSpace:"normal"}),j=m),m=a.fontMetrics(b.style.fontSize).b,
-q=o<0&&-j,C=r<0&&-l,A=o*r<0,q+=r*m*(A?1-h:h),C-=o*m*(i?A?h:1-h:1),k&&(q-=j*h*(o<0?-1:1),i&&(C-=l*h*(r<0?-1:1)),M(b,{textAlign:g})),this.xCorr=q,this.yCorr=C;M(b,{left:e+q+"px",top:f+C+"px"});this.cTT=J}}else this.alignOnAdd=!0},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=this.inverted,d=this.rotation,e=[];c&&(a+=this.attr("width"),b+=this.attr("height"));(a||b)&&e.push("translate("+a+","+b+")");c?e.push("rotate(90) scale(-1,1)"):d&&e.push("rotate("+d+" "+(this.x||0)+
-" "+(this.y||0)+")");e.length&&G(this.element,"transform",e.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){a?(this.alignOptions=a,this.alignByTranslate=b,c||this.renderer.alignedObjects.push(this)):(a=this.alignOptions,b=this.alignByTranslate);var c=p(c,this.renderer),d=a.align,e=a.verticalAlign,f=(c.x||0)+(a.x||0),g=(c.y||0)+(a.y||0),h={};/^(right|center)$/.test(d)&&(f+=(c.width-(a.width||0))/{right:1,center:2}[d]);h[b?"translateX":
-"x"]=u(f);/^(bottom|middle)$/.test(e)&&(g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1));h[b?"translateY":"y"]=u(g);this[this.placed?"animate":"attr"](h);this.placed=!0;this.alignAttr=h;return this},getBBox:function(a){var b,c,d=this.rotation;c=this.element;var e=d*Nb;if(c.namespaceURI==="http://www.w3.org/2000/svg"||this.renderer.forExport){try{b=c.getBBox?z({},c.getBBox()):{width:c.offsetWidth,height:c.offsetHeight}}catch(f){}if(!b||b.width<0)b={width:0,height:0};a=b.width;c=b.height;if(d)b.width=
-W(c*ka(e))+W(a*ga(e)),b.height=W(c*ga(e))+W(a*ka(e))}else b=this.htmlGetBBox(a);return b},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},add:function(a){var b=this.renderer,c=a||b,d=c.element||b.box,e=d.childNodes,f=this.element,g=G(f,"zIndex"),h;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this);if(g)c.handleZ=!0,g=F(g);if(c.handleZ)for(c=0;c<e.length;c++)if(a=e[c],b=G(a,"zIndex"),a!==f&&(F(b)>g||!s(g)&&s(b))){d.insertBefore(f,
-a);h=!0;break}h||d.appendChild(f);this.added=!0;N(this,"add");return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d=a.box,e,f;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=null;Ra(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(f=0;f<a.stops.length;f++)a.stops[f]=a.stops[f].destroy();a.stops=null}a.safeRemoveChild(b);c&&n(c,function(b){a.safeRemoveChild(b)});d&&d.destroy();Ka(a.renderer.alignedObjects,
-a);for(e in a)delete a[e];return null},empty:function(){for(var a=this.element,b=a.childNodes,c=b.length;c--;)a.removeChild(b[c])},shadow:function(a,b,c){var d=[],e,f=this.element,g,h=this.parentInverted?"(-1,-1)":"(1,1)";if(a){for(a=1;a<=3;a++){e=f.cloneNode(0);g=7-2*a;G(e,{isShadow:"true",stroke:"rgb(0, 0, 0)","stroke-opacity":0.05*a,"stroke-width":g,transform:"translate"+h,fill:da});if(c)G(e,"height",t(G(e,"height")-g,0)),e.cutHeight=g;b?b.element.appendChild(e):f.parentNode.insertBefore(e,f);
-d.push(e)}this.shadows=d}return this}};var qa=function(){this.init.apply(this,arguments)};qa.prototype={Element:Fa,init:function(a,b,c,d){var e=location,f;f=this.createElement("svg").attr({xmlns:"http://www.w3.org/2000/svg",version:"1.1"});a.appendChild(f.element);this.isSVG=!0;this.box=f.element;this.boxWrapper=f;this.alignedObjects=[];this.url=Xa?"":e.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1");this.defs=this.createElement("defs").add();this.forExport=d;this.gradients={};this.setSize(b,
-c,!1);var g;if(Pb&&a.getBoundingClientRect)this.subPixelFix=b=function(){M(a,{left:0,top:0});g=a.getBoundingClientRect();M(a,{left:Ga(g.left)-g.left+"px",top:Ga(g.top)-g.top+"px"})},b(),B(Y,"resize",b)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();ta(this.gradients||{});this.gradients=null;if(a)this.defs=a.destroy();this.subPixelFix&&Q(Y,"resize",this.subPixelFix);return this.alignedObjects=null},
-createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:function(){},buildText:function(a){for(var b=a.element,c=p(a.textStr,"").toString().replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g),d=b.childNodes,e=/style="([^"]+)"/,f=/href="([^"]+)"/,g=G(b,"x"),h=a.styles,k=h&&F(h.width),i=h&&h.lineHeight,j,h=d.length,l=[];h--;)b.removeChild(d[h]);
-k&&!a.added&&this.box.appendChild(b);c[c.length-1]===""&&c.pop();n(c,function(c,d){var h,A=0,q,c=c.replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");h=c.split("|||");n(h,function(c){if(c!==""||h.length===1){var m={},n=I.createElementNS("http://www.w3.org/2000/svg","tspan");e.test(c)&&G(n,"style",c.match(e)[1].replace(/(;| |^)color([ :])/,"$1fill$2"));f.test(c)&&(G(n,"onclick",'location.href="'+c.match(f)[1]+'"'),M(n,{cursor:"pointer"}));c=(c.replace(/<(.|\n)*?>/g,"")||" ").replace(/&lt;/g,
-"<").replace(/&gt;/g,">");n.appendChild(I.createTextNode(c));A?m.dx=3:m.x=g;if(!A){if(d){!Pa&&a.renderer.forExport&&M(n,{display:"block"});q=Y.getComputedStyle&&F(Y.getComputedStyle(j,null).getPropertyValue("line-height"));if(!q||isNaN(q)){var p;if(!(p=i))if(!(p=j.offsetHeight))l[d]=b.getBBox().height,p=u(l[d]-(l[d-1]||0))||18;q=p}G(n,"dy",q)}j=n}G(n,m);b.appendChild(n);A++;if(k)for(var c=c.replace(/-/g,"- ").split(" "),D=[];c.length||D.length;)p=a.getBBox().width,m=p>k,!m||c.length===1?(c=D,D=[],
-c.length&&(n=I.createElementNS("http://www.w3.org/2000/svg","tspan"),G(n,{dy:i||16,x:g}),b.appendChild(n),p>k&&(k=p))):(n.removeChild(n.firstChild),D.unshift(c.pop())),c.length&&n.appendChild(I.createTextNode(c.join(" ").replace(/- /g,"-")))}})})},button:function(a,b,c,d,e,f,g){var h=this.label(a,b,c),k=0,i,j,l,m,o,a={x1:0,y1:0,x2:0,y2:1},e=y(ha("stroke-width",1,"stroke","#999","fill",ha("linearGradient",a,"stops",[[0,"#FFF"],[1,"#DDD"]]),"r",3,"padding",3,"style",ha("color","black")),e);l=e.style;
-delete e.style;f=y(e,ha("stroke","#68A","fill",ha("linearGradient",a,"stops",[[0,"#FFF"],[1,"#ACF"]])),f);m=f.style;delete f.style;g=y(e,ha("stroke","#68A","fill",ha("linearGradient",a,"stops",[[0,"#9BD"],[1,"#CDF"]])),g);o=g.style;delete g.style;B(h.element,"mouseenter",function(){h.attr(f).css(m)});B(h.element,"mouseleave",function(){i=[e,f,g][k];j=[l,m,o][k];h.attr(i).css(j)});h.setState=function(a){(k=a)?a===2&&h.attr(g).css(o):h.attr(e).css(l)};return h.on("click",function(){d.call(h)}).attr(e).css(z({cursor:"default"},
-l))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=u(a[1])+b%2/2);a[2]===a[5]&&(a[2]=a[5]=u(a[2])+b%2/2);return a},path:function(a){var b={fill:da};Va(a)?b.d=a:ia(a)&&z(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=ia(a)?a:{x:a,y:b,r:c};return this.createElement("circle").attr(a)},arc:function(a,b,c,d,e,f){if(ia(a))b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;return this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0})},rect:function(a,b,c,d,e,f){e=
-ia(a)?a.r:e;e=this.createElement("rect").attr({rx:e,ry:e,fill:da});return e.attr(ia(a)?a:e.crisp(f,a,b,t(c,0),t(d,0)))},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[p(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return s(a)?b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:da};arguments.length>1&&z(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);
-f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(u(b),u(c),d,e,f),k=/^url\((.*?)\)$/,i,j;h?(g=this.path(h),z(g,{symbolName:a,x:b,y:c,width:d,height:e}),f&&z(g,f)):k.test(a)&&(j=function(a,b){a.attr({width:b[0],height:b[1]});a.alignByTranslate||a.translate(-u(b[0]/2),-u(b[1]/2))},i=a.match(k)[1],a=Qb[i],g=this.image(i).attr({x:b,y:c}),a?j(g,a):(g.attr({width:0,
-height:0}),V("img",{onload:function(){j(g,Qb[i]=[this.width,this.height])},src:i})));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+
-c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-1.0E-6,d=e.innerR,h=e.open,k=ga(f),i=ka(f),j=ga(g),g=ka(g),e=e.end-f<Ha?0:1;return["M",a+c*k,b+c*i,"A",c,c,0,e,1,a+c*j,b+c*g,h?"M":"L",a+d*j,b+d*g,"A",d,d,0,e,0,a+d*k,b+d*i,h?"":"Z"]}},clipRect:function(a,b,c,d){var e="highcharts-"+yb++,f=this.createElement("clipPath").attr({id:e}).add(this.defs),a=this.rect(a,b,c,d,0).add(f);a.id=e;a.clipPath=f;return a},color:function(a,b,c){var d=this,e,f=/^rgba/,g;a&&a.linearGradient?
-g="linearGradient":a&&a.radialGradient&&(g="radialGradient");if(g){var c=a[g],h=d.gradients,k,i,j,b=b.radialReference;if(!c.id||!h[c.id])Va(c)&&(a[g]=c={x1:c[0],y1:c[1],x2:c[2],y2:c[3],gradientUnits:"userSpaceOnUse"}),g==="radialGradient"&&b&&!s(c.gradientUnits)&&z(c,{cx:b[0]-b[2]/2+c.cx*b[2],cy:b[1]-b[2]/2+c.cy*b[2],r:c.r*b[2],gradientUnits:"userSpaceOnUse"}),c.id="highcharts-"+yb++,h[c.id]=k=d.createElement(g).attr(c).add(d.defs),k.stops=[],n(a.stops,function(a){f.test(a[1])?(e=wa(a[1]),i=e.get("rgb"),
-j=e.get("a")):(i=a[1],j=1);a=d.createElement("stop").attr({offset:a[0],"stop-color":i,"stop-opacity":j}).add(k);k.stops.push(a)});return"url("+d.url+"#"+c.id+")"}else return f.test(a)?(e=wa(a),G(b,c+"-opacity",e.get("a")),e.get("rgb")):(b.removeAttribute(c+"-opacity"),a)},text:function(a,b,c,d){var e=T.chart.style;if(d&&!this.forExport)return this.html(a,b,c);b=u(p(b,0));c=u(p(c,0));a=this.createElement("text").attr({x:b,y:c,text:a}).css({fontFamily:e.fontFamily,fontSize:e.fontSize});a.x=b;a.y=c;
-return a},html:function(a,b,c){var d=T.chart.style,e=this.createElement("span"),f=e.attrSetters,g=e.element,h=e.renderer;f.text=function(a){g.innerHTML=a;return!1};f.x=f.y=f.align=function(a,b){b==="align"&&(b="textAlign");e[b]=a;e.htmlUpdateTransform();return!1};e.attr({text:a,x:u(b),y:u(c)}).css({position:"absolute",whiteSpace:"nowrap",fontFamily:d.fontFamily,fontSize:d.fontSize});e.css=e.htmlCss;if(h.isSVG)e.add=function(a){var b,c,d=h.box.parentNode;if(a){if(b=a.div,!b)b=a.div=V(oa,{className:G(a.element,
-"class")},{position:"absolute",left:a.attr("translateX")+"px",top:a.attr("translateY")+"px"},d),c=b.style,z(a.attrSetters,{translateX:function(a){c.left=a+"px"},translateY:function(a){c.top=a+"px"},visibility:function(a,b){c[b]=a}})}else b=d;b.appendChild(g);e.added=!0;e.alignOnAdd&&e.htmlUpdateTransform();return e};return e},fontMetrics:function(a){var a=F(a||11),a=a<24?a+4:u(a*1.2),b=u(a*0.8);return{h:a,b:b}},label:function(a,b,c,d,e,f,g,h,k){function i(){var a=o.styles,a=a&&a.textAlign,b=J*(1-
-p),c;c=h?0:Sa;if(s(w)&&(a==="center"||a==="right"))b+={center:0.5,right:1}[a]*(w-q.width);(b!==r.x||c!==r.y)&&r.attr({x:b,y:c});r.x=b;r.y=c}function j(a,b){A?A.attr(a,b):t[a]=b}function l(){o.attr({text:a,x:b,y:c});s(e)&&o.attr({anchorX:e,anchorY:f})}var m=this,o=m.g(k),r=m.text("",0,0,g).attr({zIndex:1}).add(o),A,q,p=0,J=3,w,x,D,K,H=0,t={},Sa,g=o.attrSetters;B(o,"add",l);g.width=function(a){w=a;return!1};g.height=function(a){x=a;return!1};g.padding=function(a){s(a)&&a!==J&&(J=a,i());return!1};g.align=
-function(a){p={left:0,center:0.5,right:1}[a];return!1};g.text=function(a,b){r.attr(b,a);var c;c=r.element.style;q=(w===void 0||x===void 0||o.styles.textAlign)&&r.getBBox(!0);o.width=(w||q.width||0)+2*J;o.height=(x||q.height||0)+2*J;Sa=J+m.fontMetrics(c&&c.fontSize).b;if(!A)c=h?-Sa:0,o.box=A=d?m.symbol(d,-p*J,c,o.width,o.height):m.rect(-p*J,c,o.width,o.height,0,t["stroke-width"]),A.add(o);A.attr(y({width:o.width,height:o.height},t));t=null;i();return!1};g["stroke-width"]=function(a,b){H=a%2/2;j(b,
-a);return!1};g.stroke=g.fill=g.r=function(a,b){j(b,a);return!1};g.anchorX=function(a,b){e=a;j(b,a+H-D);return!1};g.anchorY=function(a,b){f=a;j(b,a-K);return!1};g.x=function(a){o.x=a;a-=p*((w||q.width)+J);D=u(a);o.attr("translateX",D);return!1};g.y=function(a){K=o.y=u(a);o.attr("translateY",a);return!1};var cc=o.css;return z(o,{css:function(a){if(a){var b={},a=y({},a);n("fontSize,fontWeight,fontFamily,color,lineHeight,width".split(","),function(c){a[c]!==v&&(b[c]=a[c],delete a[c])});r.css(b)}return cc.call(o,
-a)},getBBox:function(){return A.getBBox()},shadow:function(a){A.shadow(a);return o},destroy:function(){Q(o,"add",l);Q(o.element,"mouseenter");Q(o.element,"mouseleave");r&&(r=r.destroy());Fa.prototype.destroy.call(o)}})}};Qa=qa;var Ja;if(!Pa&&!ma){var ea={init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],d=["position: ","absolute",";"];(b==="shape"||b===oa)&&d.push("left:0;top:0;width:1px;height:1px;");Oa&&d.push("visibility: ",b===oa?"hidden":"visible");c.push(' style="',d.join(""),'"/>');
-if(b)c=b===oa||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=V(c);this.renderer=a;this.attrSetters={}},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);Oa&&d.gVis==="hidden"&&M(c,{visibility:"hidden"});d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();N(this,"add");return this},toggleChildren:function(a,b){for(var c=a.childNodes,d=c.length;d--;)M(c[d],{visibility:b}),c[d].nodeName===
-"DIV"&&this.toggleChildren(c[d],b)},updateTransform:Fa.prototype.htmlUpdateTransform,attr:function(a,b){var c,d,e,f=this.element||{},g=f.style,h=f.nodeName,k=this.renderer,i=this.symbolName,j,l=this.shadows,m,o=this.attrSetters,r=this;ya(a)&&s(b)&&(c=a,a={},a[c]=b);if(ya(a))c=a,r=c==="strokeWidth"||c==="stroke-width"?this.strokeweight:this[c];else for(c in a)if(d=a[c],m=!1,e=o[c]&&o[c](d,c),e!==!1&&d!==null){e!==v&&(d=e);if(i&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(c))j||(this.symbolAttr(a),
-j=!0),m=!0;else if(c==="d"){d=d||[];this.d=d.join(" ");e=d.length;for(m=[];e--;)m[e]=Wa(d[e])?u(d[e]*10)-5:d[e]==="Z"?"x":d[e];d=m.join(" ")||"x";f.path=d;if(l)for(e=l.length;e--;)l[e].path=l[e].cutOff?this.cutOffPath(d,l[e].cutOff):d;m=!0}else if(c==="zIndex"||c==="visibility"){if(Oa&&c==="visibility"&&h==="DIV")f.gVis=d,this.toggleChildren(f,d),d==="visible"&&(d=null);d&&(g[c]=d);m=!0}else if(c==="width"||c==="height")d=t(0,d),this[c]=d,this.updateClipping?(this[c]=d,this.updateClipping()):g[c]=
-d,m=!0;else if(c==="x"||c==="y")this[c]=d,g[{x:"left",y:"top"}[c]]=d;else if(c==="class")f.className=d;else if(c==="stroke")d=k.color(d,f,c),c="strokecolor";else if(c==="stroke-width"||c==="strokeWidth")f.stroked=d?!0:!1,c="strokeweight",this[c]=d,Wa(d)&&(d+="px");else if(c==="dashstyle")(f.getElementsByTagName("stroke")[0]||V(k.prepVML(["<stroke/>"]),null,null,f))[c]=d||"solid",this.dashstyle=d,m=!0;else if(c==="fill")h==="SPAN"?g.color=d:(f.filled=d!==da?!0:!1,d=k.color(d,f,c),c="fillcolor");else if(h===
-"shape"&&c==="rotation")this[c]=d;else if(c==="translateX"||c==="translateY"||c==="rotation")this[c]=d,this.updateTransform(),m=!0;else if(c==="text")this.bBox=null,f.innerHTML=d,m=!0;if(l&&c==="visibility")for(e=l.length;e--;)l[e].style[c]=d;m||(Oa?f[c]=d:G(f,c,d))}return r},clip:function(a){var b=this,c=a.members,d=b.element,e=d.parentNode;c.push(b);b.destroyClip=function(){Ka(c,b)};e&&e.className==="highcharts-tracker"&&!Oa&&M(d,{visibility:"hidden"});return b.css(a.getCSS(b))},css:Fa.prototype.htmlCss,
-safeRemoveChild:function(a){a.parentNode&&Na(a)},destroy:function(){this.destroyClip&&this.destroyClip();return Fa.prototype.destroy.apply(this)},empty:function(){for(var a=this.element.childNodes,b=a.length,c;b--;)c=a[b],c.parentNode.removeChild(c)},on:function(a,b){this.element["on"+a]=function(){var a=Y.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length;if(c===9||c===11)a[c-4]=a[c-2]=F(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,
-c){var d=[],e=this.element,f=this.renderer,g,h=e.style,k,i=e.path,j,l;i&&typeof i.value!=="string"&&(i="x");l=i;if(a){for(a=1;a<=3;a++){j=7-2*a;c&&(l=this.cutOffPath(i.value,j+0.5));k=['<shape isShadow="true" strokeweight="',7-2*a,'" filled="false" path="',l,'" coordsize="10 10" style="',e.style.cssText,'" />'];g=V(f.prepVML(k),null,{left:F(h.left)+1,top:F(h.top)+1});if(c)g.cutOff=j+1;k=['<stroke color="black" opacity="',0.05*a,'"/>'];V(f.prepVML(k),null,null,g);b?b.element.appendChild(g):e.parentNode.insertBefore(g,
-e);d.push(g)}this.shadows=d}return this}},ea=ca(Fa,ea),ea={Element:ea,isIE8:Ia.indexOf("MSIE 8.0")>-1,init:function(a,b,c){var d,e;this.alignedObjects=[];d=this.createElement(oa);e=d.element;e.style.position="relative";a.appendChild(d.element);this.box=e;this.boxWrapper=d;this.setSize(b,c,!1);if(!I.namespaces.hcv)I.namespaces.add("hcv","urn:schemas-microsoft-com:vml"),I.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "},
-isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement();return z(e,{members:[],left:a,top:b,width:c,height:d,getCSS:function(a){var b=a.inverted,c=this.top,d=this.left,e=d+this.width,j=c+this.height,c={clip:"rect("+u(b?d:c)+"px,"+u(b?j:e)+"px,"+u(b?e:j)+"px,"+u(b?c:d)+"px)"};!b&&Oa&&a.element.nodeName!=="IMG"&&z(c,{width:e+"px",height:j+"px"});return c},updateClipping:function(){n(e.members,function(a){a.css(e.getCSS(a))})}})},color:function(a,b,c){var d,
-e=/^rgba/,f,g=da;a&&a.linearGradient?f="gradient":a&&a.radialGradient&&(f="pattern");if(f){var h,k,i=a.linearGradient||a.radialGradient,j,l,m,o,r,A,q="",a=a.stops,p,J=[];l=a[0];p=a[a.length-1];l[0]>0&&a.unshift([0,l[1]]);p[0]<1&&a.push([1,p[1]]);n(a,function(a,b){e.test(a[1])?(d=wa(a[1]),h=d.get("rgb"),k=d.get("a")):(h=a[1],k=1);J.push(a[0]*100+"% "+h);b?(o=k,r=h):(m=k,A=h)});f==="gradient"?(j=i.x1||i[0]||0,a=i.y1||i[1]||0,l=i.x2||i[2]||0,i=i.y2||i[3]||0,j=90-R.atan((i-a)/(l-j))*180/Ha):(g=i.r*2,
-q='src="http://code.highcharts.com/gfx/radial-gradient.png" size="'+g+","+g+'" origin="0.5,0.5" position="'+i.cx+","+i.cy+'" color2="'+A+'" ',g=r);c==="fill"?(c=['<fill colors="'+J.join(",")+'" angle="',j,'" opacity="',o,'" o:opacity2="',m,'" type="',f,'" ',q,'focus="100%" method="any" />'],V(this.prepVML(c),null,null,b)):g=h}else if(e.test(a)&&b.tagName!=="IMG")d=wa(a),c=["<",c,' opacity="',d.get("a"),'"/>'],V(this.prepVML(c),null,null,b),g=d.get("rgb");else{b=b.getElementsByTagName(c);if(b.length)b[0].opacity=
-1;g=a}return g},prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","<hcv:");return a},text:qa.prototype.html,path:function(a){var b={coordsize:"10 10"};Va(a)?b.d=a:ia(a)&&z(b,a);return this.createElement("shape").attr(b)},circle:function(a,
-b,c){return this.symbol("circle").attr({x:a-c,y:b-c,width:2*c,height:2*c})},g:function(a){var b;a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement(oa).attr(b)},image:function(a,b,c,d,e){var f=this.createElement("img").attr({src:a});arguments.length>1&&f.css({left:b,top:c,width:d,height:e});return f},rect:function(a,b,c,d,e,f){if(ia(a))b=a.y,c=a.width,d=a.height,f=a.strokeWidth,a=a.x;var g=this.symbol("rect");g.r=e;return g.attr(g.crisp(f,a,b,t(c,0),t(d,0)))},invertChild:function(a,
-b){var c=b.style;M(a,{flip:"x",left:F(c.width)-1,top:F(c.height)-1,rotation:-90})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=ga(f),d=ka(f),k=ga(g),i=ka(g),j=e.innerR,l=0.08/h,m=j&&0.1/j||0;if(g-f===0)return["x"];else 2*Ha-g+f<l?k=-l:g-f<m&&(k=ga(f+m));f=["wa",a-h,b-h,a+h,b+h,a+h*c,b+h*d,a+h*k,b+h*i];e.open&&f.push("M",a-j,b-j);f.push("at",a-j,b-j,a+j,b+j,a+j*k,b+j*i,a+j*c,b+j*d,"x","e");return f},circle:function(a,b,c,d){return["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},
-rect:function(a,b,c,d,e){var f=a+c,g=b+d,h;!s(e)||!e.r?f=qa.prototype.symbols.square.apply(0,arguments):(h=O(e.r,c,d),f=["M",a+h,b,"L",f-h,b,"wa",f-2*h,b,f,b+2*h,f-h,b,f,b+h,"L",f,g-h,"wa",f-2*h,g-2*h,f,g,f,g-h,f-h,g,"L",a+h,g,"wa",a,g-2*h,a+2*h,g,a+h,g,a,g-h,"L",a,b+h,"wa",a,b,a+2*h,b+2*h,a,b+h,a+h,b,"x","e"]);return f}}};Ja=function(){this.init.apply(this,arguments)};Ja.prototype=y(qa.prototype,ea);Qa=Ja}var mb,Xb;if(ma)mb=function(){},mb.prototype.symbols={},Xb=function(){function a(){var a=b.length,
-d;for(d=0;d<a;d++)b[d]();b=[]}var b=[];return{push:function(c,d){b.length===0&&Sb(d,a);b.push(c)}}}();Qa=Ja||mb||qa;ab.prototype={addLabel:function(){var a=this.axis,b=a.options,c=a.chart,d=a.horiz,e=a.categories,f=this.pos,g=b.labels,h=a.tickPositions,d=e&&d&&e.length&&!g.step&&!g.staggerLines&&!g.rotation&&c.plotWidth/h.length||!d&&c.plotWidth/2,k=f===h[0],i=f===h[h.length-1],j=e&&s(e[f])?e[f]:f,e=this.label,h=h.info,l;a.isDatetimeAxis&&h&&(l=b.dateTimeLabelFormats[h.higherRanks[f]||h.unitName]);
-this.isFirst=k;this.isLast=i;b=a.labelFormatter.call({axis:a,chart:c,isFirst:k,isLast:i,dateTimeLabelFormat:l,value:a.isLog?pa(ja(j)):j});f=d&&{width:t(1,u(d-2*(g.padding||10)))+"px"};f=z(f,g.style);if(s(e))e&&e.attr({text:b}).css(f);else{d={align:g.align};if(Wa(g.rotation))d.rotation=g.rotation;this.label=s(b)&&g.enabled?c.renderer.text(b,0,0,g.useHTML).attr(d).css(f).add(a.axisGroup):null}},getLabelSize:function(){var a=this.label,b=this.axis;return a?(this.labelBBox=a.getBBox(!0))[b.horiz?"height":
-"width"]:0},getLabelSides:function(){var a=this.axis.options.labels,b=this.labelBBox.width,a=b*{left:0,center:0.5,right:1}[a.align]-a.x;return[-a,b-a]},handleOverflow:function(a,b){var c=!0,d=this.axis,e=d.chart,f=this.isFirst,g=this.isLast,h=b.x,k=d.reversed,i=d.tickPositions;if(f||g){var j=this.getLabelSides(),l=j[0],j=j[1],e=e.plotLeft,m=e+d.len,i=(d=d.ticks[i[a+(f?1:-1)]])&&d.label.xy.x+d.getLabelSides()[f?0:1];f&&!k||g&&k?h+l<e&&(h=e-l,d&&h+j>i&&(c=!1)):h+j>m&&(h=m-j,d&&h+l<i&&(c=!1));b.x=h}return c},
-getPosition:function(a,b,c,d){var e=this.axis,f=e.chart,g=d&&f.oldChartHeight||f.chartHeight;return{x:a?e.translate(b+c,null,null,d)+e.transB:e.left+e.offset+(e.opposite?(d&&f.oldChartWidth||f.chartWidth)-e.right-e.left:0),y:a?g-e.bottom+e.offset-(e.opposite?e.height:0):g-e.translate(b+c,null,null,d)-e.transB}},getLabelPosition:function(a,b,c,d,e,f,g,h){var k=this.axis,i=k.transA,j=k.reversed,k=k.staggerLines,a=a+e.x-(f&&d?f*i*(j?-1:1):0),b=b+e.y-(f&&!d?f*i*(j?1:-1):0);s(e.y)||(b+=F(c.styles.lineHeight)*
-0.9-c.getBBox().height/2);k&&(b+=g/(h||1)%k*16);return{x:a,y:b}},getMarkPath:function(a,b,c,d,e,f){return f.crispLine(["M",a,b,"L",a+(e?0:-c),b+(e?c:0)],d)},render:function(a,b){var c=this.axis,d=c.options,e=c.chart.renderer,f=c.horiz,g=this.type,h=this.label,k=this.pos,i=d.labels,j=this.gridLine,l=g?g+"Grid":"grid",m=g?g+"Tick":"tick",o=d[l+"LineWidth"],r=d[l+"LineColor"],A=d[l+"LineDashStyle"],q=d[m+"Length"],l=d[m+"Width"]||0,n=d[m+"Color"],J=d[m+"Position"],m=this.mark,w=i.step,x=!0,D=d.categories&&
-d.tickmarkPlacement==="between"?0.5:0,K=this.getPosition(f,k,D,b),H=K.x,K=K.y,s=c.staggerLines;if(o){k=c.getPlotLinePath(k+D,o,b);if(j===v){j={stroke:r,"stroke-width":o};if(A)j.dashstyle=A;if(!g)j.zIndex=1;this.gridLine=j=o?e.path(k).attr(j).add(c.gridGroup):null}if(!b&&j&&k)j[this.isNew?"attr":"animate"]({d:k})}if(l)J==="inside"&&(q=-q),c.opposite&&(q=-q),g=this.getMarkPath(H,K,q,l,f,e),m?m.animate({d:g}):this.mark=e.path(g).attr({stroke:n,"stroke-width":l}).add(c.axisGroup);if(h&&!isNaN(H))h.xy=
-K=this.getLabelPosition(H,K,h,f,i,D,a,w),this.isFirst&&!p(d.showFirstLabel,1)||this.isLast&&!p(d.showLastLabel,1)?x=!1:!s&&f&&i.overflow==="justify"&&!this.handleOverflow(a,K)&&(x=!1),w&&a%w&&(x=!1),x?(h[this.isNew?"attr":"animate"](K),h.show(),this.isNew=!1):h.hide()},destroy:function(){ta(this,this.axis)}};vb.prototype={render:function(){var a=this,b=a.axis,c=b.horiz,d=(b.pointRange||0)/2,e=a.options,f=e.label,g=a.label,h=e.width,k=e.to,i=e.from,j=s(i)&&s(k),l=e.value,m=e.dashStyle,o=a.svgElem,
-r=[],A,q=e.color,n=e.zIndex,J=e.events,w=b.chart.renderer;b.isLog&&(i=ra(i),k=ra(k),l=ra(l));if(h){if(r=b.getPlotLinePath(l,h),d={stroke:q,"stroke-width":h},m)d.dashstyle=m}else if(j){if(i=t(i,b.min-d),k=O(k,b.max+d),r=b.getPlotBandPath(i,k,e),d={fill:q},e.borderWidth)d.stroke=e.borderColor,d["stroke-width"]=e.borderWidth}else return;if(s(n))d.zIndex=n;if(o)r?o.animate({d:r},null,o.onGetPath):(o.hide(),o.onGetPath=function(){o.show()});else if(r&&r.length&&(a.svgElem=o=w.path(r).attr(d).add(),J))for(A in e=
-function(b){o.on(b,function(c){J[b].apply(a,[c])})},J)e(A);if(f&&s(f.text)&&r&&r.length&&b.width>0&&b.height>0){f=y({align:c&&j&&"center",x:c?!j&&4:10,verticalAlign:!c&&j&&"middle",y:c?j?16:10:j?6:-4,rotation:c&&!j&&90},f);if(!g)a.label=g=w.text(f.text,0,0).attr({align:f.textAlign||f.align,rotation:f.rotation,zIndex:n}).css(f.style).add();b=[r[1],r[4],p(r[6],r[1])];r=[r[2],r[5],p(r[7],r[2])];c=Ma(b);j=Ma(r);g.align(f,!1,{x:c,y:j,width:Da(b)-c,height:Da(r)-j});g.show()}else g&&g.hide();return a},destroy:function(){Ka(this.axis.plotLinesAndBands,
-this);ta(this,this.axis)}};Jb.prototype={destroy:function(){ta(this,this.axis)},setTotal:function(a){this.cum=this.total=a},render:function(a){var b=this.options.formatter.call(this);this.label?this.label.attr({text:b,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(b,0,0).css(this.options.style).attr({align:this.textAlign,rotation:this.options.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=this.isNegative,g=c.translate(this.total,
-0,0,0,1),c=c.translate(0),c=W(g-c),h=d.xAxis[0].translate(this.x)+a,d=d.plotHeight,e={x:e?f?g:g-c:h,y:e?d-h-b:f?d-g-c:d-g,width:e?c:b,height:e?b:c};this.label&&this.label.align(this.alignOptions,null,e).attr({visibility:"visible"})}};bb.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0",labels:L,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,
-maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#6D869F",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:0.05,
-minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Y-values"},stackLabels:{enabled:!1,formatter:function(){return this.total},style:L.style}},defaultLeftAxisOptions:{labels:{align:"right",x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{align:"left",x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{align:"center",x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{align:"center",x:0,y:-5},title:{rotation:0}},init:function(a,b){var c=b.isX;
-this.horiz=a.inverted?!c:c;this.xOrY=(this.isXAxis=c)?"x":"y";this.opposite=b.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(b);var d=this.options,e=d.type,f=e==="datetime";this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.staggerLines=this.horiz&&d.labels.staggerLines;this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.categories=d.categories;this.isLog=e==="logarithmic";this.isLinked=s(d.linkedTo);this.isDatetimeAxis=
-f;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.min=this.max=null;var g,d=this.options.events;a.axes.push(this);a[c?"xAxis":"yAxis"].push(this);this.series=[];if(a.inverted&&c&&this.reversed===v)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;this.addPlotLine=this.addPlotBand=this.addPlotBandOrLine;for(g in d)B(this,
-g,d[g]);if(this.isLog)this.val2lin=ra,this.lin2val=ja},setOptions:function(a){this.options=y(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],a)},defaultLabelFormatter:function(){var a=this.axis,b=this.value,c=a.tickInterval,d=this.dateTimeLabelFormat;return a.categories?b:d?ua(d,b):c%1E6===0?b/1E6+"M":c%1E3===0?b/1E3+"k":b>=1E3?Ya(b,0):Ya(b,-1)},getSeriesExtremes:function(){var a=
-this,b=a.chart,c=a.stacks,d=[],e=[],f;a.dataMin=a.dataMax=null;n(a.series,function(g){if(g.visible||!b.options.chart.ignoreHiddenSeries){var h=g.options,k,i,j,l,m,o,r,n,q,C=h.threshold,J,w=[],x=0;if(a.isLog&&C<=0)C=h.threshold=null;if(a.isXAxis){if(h=g.xData,h.length)a.dataMin=O(p(a.dataMin,h[0]),Ma(h)),a.dataMax=t(p(a.dataMax,h[0]),Da(h))}else{var D,K,H,u=g.cropped,Sa=g.xAxis.getExtremes(),y=!!g.modifyValue;k=h.stacking;a.usePercentage=k==="percent";if(k)m=h.stack,l=g.type+p(m,""),o="-"+l,g.stackKey=
-l,i=d[l]||[],d[l]=i,j=e[o]||[],e[o]=j;if(a.usePercentage)a.dataMin=0,a.dataMax=99;h=g.processedXData;r=g.processedYData;J=r.length;for(f=0;f<J;f++)if(n=h[f],q=r[f],q!==null&&q!==v&&(k?(K=(D=q<C)?j:i,H=D?o:l,q=K[n]=s(K[n])?K[n]+q:q,c[H]||(c[H]={}),c[H][n]||(c[H][n]=new Jb(a,a.options.stackLabels,D,n,m)),c[H][n].setTotal(q)):y&&(q=g.modifyValue(q)),u||(h[f+1]||n)>=Sa.min&&(h[f-1]||n)<=Sa.max))if(n=q.length)for(;n--;)q[n]!==null&&(w[x++]=q[n]);else w[x++]=q;if(!a.usePercentage&&w.length)a.dataMin=O(p(a.dataMin,
-w[0]),Ma(w)),a.dataMax=t(p(a.dataMax,w[0]),Da(w));if(s(C))if(a.dataMin>=C)a.dataMin=C,a.ignoreMinPadding=!0;else if(a.dataMax<C)a.dataMax=C,a.ignoreMaxPadding=!0}}})},translate:function(a,b,c,d,e){var f=this.len,g=1,h=0,k=d?this.oldTransA:this.transA,d=d?this.oldMin:this.min,e=this.options.ordinal||this.isLog&&e;if(!k)k=this.transA;c&&(g*=-1,h=f);this.reversed&&(g*=-1,h-=g*f);b?(this.reversed&&(a=f-a),a=a/k+d,e&&(a=this.lin2val(a))):(e&&(a=this.val2lin(a)),a=g*(a-d)*k+h+g*this.minPixelPadding);return a},
-getPlotLinePath:function(a,b,c){var d=this.chart,e=this.left,f=this.top,g,h,k,a=this.translate(a,null,null,c),i=c&&d.oldChartHeight||d.chartHeight,j=c&&d.oldChartWidth||d.chartWidth,l;g=this.transB;c=h=u(a+g);g=k=u(i-a-g);if(isNaN(a))l=!0;else if(this.horiz){if(g=f,k=i-this.bottom,c<e||c>e+this.width)l=!0}else if(c=e,h=j-this.right,g<f||g>f+this.height)l=!0;return l?null:d.renderer.crispLine(["M",c,g,"L",h,k],b||0)},getPlotBandPath:function(a,b){var c=this.getPlotLinePath(b),d=this.getPlotLinePath(a);
-d&&c?d.push(c[4],c[5],c[1],c[2]):d=null;return d},getLinearTickPositions:function(a,b,c){for(var d,b=pa($(b/a)*a),c=pa(Ga(c/a)*a),e=[];b<=c;){e.push(b);b=pa(b+a);if(b===d)break;d=b}return e},getLogTickPositions:function(a,b,c,d){var e=this.options,f=this.len,g=[];if(!d)this._minorAutoInterval=null;if(a>=0.5)a=u(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=$(b),h,k,i,j,l,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];f<c+1&&!l;f++){k=e.length;for(h=0;h<k&&!l;h++)i=ra(ja(f)*
-e[h]),i>b&&g.push(j),j>c&&(l=!0),j=i}else if(b=ja(b),c=ja(c),a=e[d?"minorTickInterval":"tickInterval"],a=p(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=pb(a,null,R.pow(10,$(R.log(a)/R.LN10))),g=va(this.getLinearTickPositions(a,b,c),ra),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g},getMinorTickPositions:function(){var a=this.tickPositions,b=this.minorTickInterval,c=[],d,e;if(this.isLog){e=a.length;for(d=
-1;d<e;d++)c=c.concat(this.getLogTickPositions(b,a[d-1],a[d],!0))}else for(a=this.min+(a[0]-this.min)%b;a<=this.max;a+=b)c.push(a);return c},adjustForMinRange:function(){var a=this.options,b=this.min,c=this.max,d,e=this.dataMax-this.dataMin>=this.minRange,f,g,h,k,i;if(this.isXAxis&&this.minRange===v&&!this.isLog)s(a.min)||s(a.max)?this.minRange=null:(n(this.series,function(a){k=a.xData;for(g=i=a.xIncrement?1:k.length-1;g>0;g--)if(h=k[g]-k[g-1],f===v||h<f)f=h}),this.minRange=O(f*5,this.dataMax-this.dataMin));
-if(c-b<this.minRange){var j=this.minRange;d=(j-c+b)/2;d=[b-d,p(a.min,b-d)];if(e)d[2]=this.dataMin;b=Da(d);c=[b+j,p(a.max,b+j)];if(e)c[2]=this.dataMax;c=Ma(c);c-b<j&&(d[0]=c-j,d[1]=p(a.min,c-j),b=Da(d))}this.min=b;this.max=c},setAxisTranslation:function(){var a=this.max-this.min,b=0,c,d,e=this.transA;if(this.isXAxis)this.isLinked?b=this.linkedParent.pointRange:n(this.series,function(a){b=t(b,a.pointRange);d=a.closestPointRange;!a.noSharedTooltip&&s(d)&&(c=s(c)?O(c,d):d)}),this.pointRange=b,this.closestPointRange=
-c;this.oldTransA=e;this.translationSlope=this.transA=e=this.len/(a+b||1);this.transB=this.horiz?this.left:this.bottom;this.minPixelPadding=e*(b/2)},setTickPositions:function(a){var b=this,c=b.chart,d=b.options,e=b.isLog,f=b.isDatetimeAxis,g=b.isXAxis,h=b.isLinked,k=b.options.tickPositioner,i=d.maxPadding,j=d.minPadding,l=d.tickInterval,m=d.tickPixelInterval,o=b.categories;h?(b.linkedParent=c[g?"xAxis":"yAxis"][d.linkedTo],c=b.linkedParent.getExtremes(),b.min=p(c.min,c.dataMin),b.max=p(c.max,c.dataMax),
-d.type!==b.linkedParent.options.type&&ub(11,1)):(b.min=p(b.userMin,d.min,b.dataMin),b.max=p(b.userMax,d.max,b.dataMax));if(e)!a&&O(b.min,p(b.dataMin,b.min))<=0&&ub(10,1),b.min=pa(ra(b.min)),b.max=pa(ra(b.max));if(b.range&&(b.userMin=b.min=t(b.min,b.max-b.range),b.userMax=b.max,a))b.range=null;b.adjustForMinRange();if(!o&&!b.usePercentage&&!h&&s(b.min)&&s(b.max)){c=b.max-b.min||1;if(!s(d.min)&&!s(b.userMin)&&j&&(b.dataMin<0||!b.ignoreMinPadding))b.min-=c*j;if(!s(d.max)&&!s(b.userMax)&&i&&(b.dataMax>
-0||!b.ignoreMaxPadding))b.max+=c*i}b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!l&&m===b.linkedParent.options.tickPixelInterval?b.linkedParent.tickInterval:p(l,o?1:(b.max-b.min)*m/(b.len||1));g&&!a&&n(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation();b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval);if(!f&&!e&&(a=R.pow(10,$(R.log(b.tickInterval)/
-R.LN10)),!s(d.tickInterval)))b.tickInterval=pb(b.tickInterval,null,a,d);b.minorTickInterval=d.minorTickInterval==="auto"&&b.tickInterval?b.tickInterval/5:d.minorTickInterval;b.tickPositions=k=d.tickPositions||k&&k.apply(b,[b.min,b.max]);if(!k)k=f?(b.getNonLinearTimeTicks||gb)(Cb(b.tickInterval,d.units),b.min,b.max,d.startOfWeek,b.ordinalPositions,b.closestPointRange,!0):e?b.getLogTickPositions(b.tickInterval,b.min,b.max):b.getLinearTickPositions(b.tickInterval,b.min,b.max),b.tickPositions=k;if(!h)e=
-k[0],f=k[k.length-1],d.startOnTick?b.min=e:b.min>e&&k.shift(),d.endOnTick?b.max=f:b.max<f&&k.pop()},setMaxTicks:function(){var a=this.chart,b=a.maxTicks,c=this.tickPositions,d=this.xOrY;b||(b={x:0,y:0});if(!this.isLinked&&!this.isDatetimeAxis&&c.length>b[d]&&this.options.alignTicks!==!1)b[d]=c.length;a.maxTicks=b},adjustTickAmount:function(){var a=this.xOrY,b=this.tickPositions,c=this.chart.maxTicks;if(c&&c[a]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){var d=
-this.tickAmount,e=b.length;this.tickAmount=a=c[a];if(e<a){for(;b.length<a;)b.push(pa(b[b.length-1]+this.tickInterval));this.transA*=(e-1)/(a-1);this.max=b[b.length-1]}if(s(d)&&a!==d)this.isDirty=!0}},setScale:function(){var a=this.stacks,b,c,d,e;this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();e=this.len!==this.oldAxisLength;n(this.series,function(a){if(a.isDirtyData||a.isDirty||a.xAxis.isDirty)d=!0});if(e||d||this.isLinked||this.userMin!==this.oldUserMin||
-this.userMax!==this.oldUserMax)if(this.getSeriesExtremes(),this.setTickPositions(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,!this.isDirty)this.isDirty=e||this.min!==this.oldMin||this.max!==this.oldMax;if(!this.isXAxis)for(b in a)for(c in a[b])a[b][c].cum=a[b][c].total;this.setMaxTicks()},setExtremes:function(a,b,c,d,e){var f=this,g=f.chart,c=p(c,!0),e=z(e,{min:a,max:b});N(f,"setExtremes",e,function(){f.userMin=a;f.userMax=b;f.isDirtyExtremes=!0;c&&g.redraw(d)})},setAxisSize:function(){var a=
-this.chart,b=this.options,c=b.offsetLeft||0,d=b.offsetRight||0;this.left=p(b.left,a.plotLeft+c);this.top=p(b.top,a.plotTop);this.width=p(b.width,a.plotWidth-c+d);this.height=p(b.height,a.plotHeight);this.bottom=a.chartHeight-this.height-this.top;this.right=a.chartWidth-this.width-this.left;this.len=t(this.horiz?this.width:this.height,0)},getExtremes:function(){var a=this.isLog;return{min:a?pa(ja(this.min)):this.min,max:a?pa(ja(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,
-userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?ja(this.min):this.min,b=b?ja(this.max):this.max;c>a||a===null?a=c:b<a&&(a=b);return this.translate(a,0,1,0,1)},addPlotBandOrLine:function(a){a=(new vb(this,a)).render();this.plotLinesAndBands.push(a);return a},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,k,i=0,j,l=0,m=d.title,o=d.labels,r=0,A=b.axisOffset,q=[-1,1,1,-1][h],C;a.hasData=b=a.series.length&&s(a.min)&&
-s(a.max);a.showAxis=k=b||p(d.showEmpty,!0);if(!a.axisGroup)a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||7}).add(),a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).add();if(b||a.isLinked)n(e,function(b){f[b]?f[b].addLabel():f[b]=new ab(a,b)}),n(e,function(a){if(h===0||h===2||{1:"left",3:"right"}[h]===o.align)r=t(f[a].getLabelSize(),r)}),a.staggerLines&&(r+=(a.staggerLines-1)*16);else for(C in f)f[C].destroy(),delete f[C];if(m&&m.text){if(!a.axisTitle)a.axisTitle=c.text(m.text,0,0,m.useHTML).attr({zIndex:7,
-rotation:m.rotation||0,align:m.textAlign||{low:"left",middle:"center",high:"right"}[m.align]}).css(m.style).add(a.axisGroup),a.axisTitle.isNew=!0;if(k)i=a.axisTitle.getBBox()[g?"height":"width"],l=p(m.margin,g?5:10),j=m.offset;a.axisTitle[k?"show":"hide"]()}a.offset=q*p(d.offset,A[h]);a.axisTitleMargin=p(j,r+l+(h!==2&&r&&q*d.labels[g?"y":"x"]));A[h]=t(A[h],a.axisTitleMargin+i+q*a.offset)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:
-0)+d,c=b.chartHeight-this.bottom-(c?this.height:0)+d;return b.renderer.crispLine(["M",e?this.left:f,e?c:this.top,"L",e?b.chartWidth-this.right:f,e?c:b.chartHeight-this.bottom],a)},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite,h=this.offset,k=F(e.style.fontSize||12),d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(this.side===2?k:0);return{x:a?d:b+(g?this.width:
-0)+h+(e.x||0),y:a?b-(g?this.height:0)+h:d+(e.y||0)}},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.isLog,f=a.isLinked,g=a.tickPositions,h=a.axisTitle,k=a.stacks,i=a.ticks,j=a.minorTicks,l=a.alternateBands,m=d.stackLabels,o=d.alternateGridColor,r=d.lineWidth,p,q=b.hasRendered&&s(a.oldMin)&&!isNaN(a.oldMin),C=a.showAxis,J,w;if(a.hasData||f)if(a.minorTickInterval&&!a.categories&&n(a.getMinorTickPositions(),function(b){j[b]||(j[b]=new ab(a,b,"minor"));q&&j[b].isNew&&j[b].render(null,
-!0);j[b].isActive=!0;j[b].render()}),n(g.slice(1).concat([g[0]]),function(b,c){c=c===g.length-1?0:c+1;if(!f||b>=a.min&&b<=a.max)i[b]||(i[b]=new ab(a,b)),q&&i[b].isNew&&i[b].render(c,!0),i[b].isActive=!0,i[b].render(c)}),o&&n(g,function(b,c){if(c%2===0&&b<a.max)l[b]||(l[b]=new vb(a)),J=b,w=g[c+1]!==v?g[c+1]:a.max,l[b].options={from:e?ja(J):J,to:e?ja(w):w,color:o},l[b].render(),l[b].isActive=!0}),!a._addedPlotLB)n((d.plotLines||[]).concat(d.plotBands||[]),function(b){a.addPlotBandOrLine(b)}),a._addedPlotLB=
-!0;n([i,j,l],function(a){for(var b in a)a[b].isActive?a[b].isActive=!1:(a[b].destroy(),delete a[b])});if(r)p=a.getLinePath(r),a.axisLine?a.axisLine.animate({d:p}):a.axisLine=c.path(p).attr({stroke:d.lineColor,"stroke-width":r,zIndex:7}).add(),a.axisLine[C?"show":"hide"]();if(h&&C)h[h.isNew?"attr":"animate"](a.getTitlePosition()),h.isNew=!1;if(m&&m.enabled){var x,D,d=a.stackTotalGroup;if(!d)a.stackTotalGroup=d=c.g("stack-labels").attr({visibility:"visible",zIndex:6}).add();d.translate(b.plotLeft,b.plotTop);
-for(x in k)for(D in b=k[x],b)b[D].render(d)}a.isDirty=!1},removePlotBandOrLine:function(a){for(var b=this.plotLinesAndBands,c=b.length;c--;)b[c].id===a&&b[c].destroy()},setTitle:function(a,b){var c=this.chart,d=this.options;d.title=y(d.title,a);this.axisTitle=void 0;this.isDirty=!0;p(b,!0)&&c.redraw()},redraw:function(){var a=this.chart;a.tracker.resetTracker&&a.tracker.resetTracker(!0);this.render();n(this.plotLinesAndBands,function(a){a.render()});n(this.series,function(a){a.isDirty=!0})},setCategories:function(a,
-b){var c=this.chart;this.categories=this.userOptions.categories=a;n(this.series,function(a){a.translate();a.setTooltipPoints(!0)});this.isDirty=!0;p(b,!0)&&c.redraw()},destroy:function(){var a=this,b=a.stacks,c;Q(a);for(c in b)ta(b[c]),b[c]=null;n([a.ticks,a.minorTicks,a.alternateBands,a.plotLinesAndBands],function(a){ta(a)});n(["stackTotalGroup","axisLine","axisGroup","gridGroup","axisTitle"],function(b){a[b]&&(a[b]=a[b].destroy())})}};wb.prototype={destroy:function(){n(this.crosshairs,function(a){a&&
-a.destroy()});if(this.label)this.label=this.label.destroy()},move:function(a,b){var c=this;c.currentX=c.tooltipIsHidden?a:(2*c.currentX+a)/3;c.currentY=c.tooltipIsHidden?b:(c.currentY+b)/2;c.label.attr({x:c.currentX,y:c.currentY});c.tooltipTick=W(a-c.currentX)>1||W(b-c.currentY)>1?function(){c.move(a,b)}:null},hide:function(){if(!this.tooltipIsHidden){var a=this.chart.hoverPoints;this.label.hide();a&&n(a,function(a){a.setState()});this.chart.hoverPoints=null;this.tooltipIsHidden=!0}},hideCrosshairs:function(){n(this.crosshairs,
-function(a){a&&a.hide()})},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f=0,g=0,a=la(a);c=a[0].tooltipPos;c||(n(a,function(a){f+=a.plotX;g+=a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY}),f/=a.length,g/=a.length,c=[e?d.plotWidth-g:f,this.shared&&!e&&a.length>1&&b?b.chartY-d.plotTop:e?d.plotHeight-f:g]);return va(c,u)},getPosition:function(a,b,c){var d=this.chart,e=d.plotLeft,f=d.plotTop,g=d.plotWidth,h=d.plotHeight,k=p(this.options.distance,12),i=c.plotX,c=c.plotY,d=i+e+(d.inverted?k:-a-k),
-j=c-b+f+15,l;d<7&&(d=e+i+k);d+a>e+g&&(d-=d+a-(e+g),j=c-b+f-k,l=!0);j<f+5&&(j=f+5,l&&c>=j&&c<=j+b&&(j=c+f+k));j+b>f+h&&(j=t(f,f+h-b-k));return{x:d,y:j}},refresh:function(a,b){function c(){var a=this.points||la(this),b=a[0].series,c;c=[b.tooltipHeaderFormatter(a[0].key)];n(a,function(a){b=a.series;c.push(b.tooltipFormatter&&b.tooltipFormatter(a)||a.point.tooltipFormatter(b.tooltipOptions.pointFormat))});c.push(f.footerFormat||"");return c.join("")}var d=this.chart,e=this.label,f=this.options,g,h,k,
-i={},j,l=[];j=f.formatter||c;var i=d.hoverPoints,m,o=f.crosshairs;k=this.shared;h=this.getAnchor(a,b);g=h[0];h=h[1];k&&(!a.series||!a.series.noSharedTooltip)?(i&&n(i,function(a){a.setState()}),d.hoverPoints=a,n(a,function(a){a.setState("hover");l.push(a.getLabelConfig())}),i={x:a[0].category,y:a[0].y},i.points=l,a=a[0]):i=a.getLabelConfig();j=j.call(i);i=a.series;k=k||!i.isCartesian||i.tooltipOutsidePlot||d.isInsidePlot(g,h);j===!1||!k?this.hide():(this.tooltipIsHidden&&e.show(),e.attr({text:j}),
-m=f.borderColor||a.color||i.color||"#606060",e.attr({stroke:m}),e=(f.positioner||this.getPosition).call(this,e.width,e.height,{plotX:g,plotY:h}),this.move(u(e.x),u(e.y)),this.tooltipIsHidden=!1);if(o){o=la(o);for(e=o.length;e--;)if(k=a.series[e?"yAxis":"xAxis"],o[e]&&k)if(k=k.getPlotLinePath(e?p(a.stackY,a.y):a.x,1),this.crosshairs[e])this.crosshairs[e].attr({d:k,visibility:"visible"});else{i={"stroke-width":o[e].width||1,stroke:o[e].color||"#C0C0C0",zIndex:o[e].zIndex||2};if(o[e].dashStyle)i.dashstyle=
-o[e].dashStyle;this.crosshairs[e]=d.renderer.path(k).attr(i).add()}}N(d,"tooltipRefresh",{text:j,x:g+d.plotLeft,y:h+d.plotTop,borderColor:m})},tick:function(){this.tooltipTick&&this.tooltipTick()}};Kb.prototype={normalizeMouseEvent:function(a){var b,c,d,a=a||Y.event;if(!a.target)a.target=a.srcElement;if(a.originalEvent)a=a.originalEvent;if(a.event)a=a.event;d=a.touches?a.touches.item(0):a;this.chartPosition=b=Tb(this.chart.container);d.pageX===v?(c=a.x,b=a.y):(c=d.pageX-b.left,b=d.pageY-b.top);return z(a,
-{chartX:u(c),chartY:u(b)})},getMouseCoordinates:function(a){var b={xAxis:[],yAxis:[]},c=this.chart;n(c.axes,function(d){var e=d.isXAxis;b[e?"xAxis":"yAxis"].push({axis:d,value:d.translate((c.inverted?!e:e)?a.chartX-c.plotLeft:c.plotHeight-a.chartY+c.plotTop,!0)})});return b},onmousemove:function(a){var b=this.chart,c=b.series,d,e,f=b.hoverPoint,g=b.hoverSeries,h,k,i=b.chartWidth,j=b.inverted?b.plotHeight+b.plotTop-a.chartY:a.chartX-b.plotLeft;if(b.tooltip&&this.options.tooltip.shared&&(!g||!g.noSharedTooltip)){e=
-[];h=c.length;for(k=0;k<h;k++)if(c[k].visible&&c[k].options.enableMouseTracking!==!1&&!c[k].noSharedTooltip&&c[k].tooltipPoints.length)d=c[k].tooltipPoints[j],d._dist=W(j-d.plotX),i=O(i,d._dist),e.push(d);for(h=e.length;h--;)e[h]._dist>i&&e.splice(h,1);if(e.length&&e[0].plotX!==this.hoverX)b.tooltip.refresh(e,a),this.hoverX=e[0].plotX}if(g&&g.tracker&&(d=g.tooltipPoints[j])&&d!==f)d.onMouseOver()},resetTracker:function(a){var b=this.chart,c=b.hoverSeries,d=b.hoverPoint,e=b.hoverPoints||d,b=b.tooltip;
-(a=a&&b&&e)&&la(e)[0].plotX===v&&(a=!1);if(a)b.refresh(e);else{if(d)d.onMouseOut();if(c)c.onMouseOut();b&&(b.hide(),b.hideCrosshairs());this.hoverX=null}},setDOMEvents:function(){function a(){if(b.selectionMarker){var f={xAxis:[],yAxis:[]},g=b.selectionMarker.getBBox(),h=g.x-c.plotLeft,l=g.y-c.plotTop,m;e&&(n(c.axes,function(a){if(a.options.zoomEnabled!==!1){var b=a.isXAxis,d=c.inverted?!b:b,e=a.translate(d?h:c.plotHeight-l-g.height,!0,0,0,1),d=a.translate(d?h+g.width:c.plotHeight-l,!0,0,0,1);!isNaN(e)&&
-!isNaN(d)&&(f[b?"xAxis":"yAxis"].push({axis:a,min:O(e,d),max:t(e,d)}),m=!0)}}),m&&N(c,"selection",f,function(a){c.zoom(a)}));b.selectionMarker=b.selectionMarker.destroy()}if(c)M(d,{cursor:"auto"}),c.cancelClick=e,c.mouseIsDown=e=!1;Q(I,aa?"touchend":"mouseup",a)}var b=this,c=b.chart,d=c.container,e,f=b.zoomX&&!c.inverted||b.zoomY&&c.inverted,g=b.zoomY&&!c.inverted||b.zoomX&&c.inverted;b.hideTooltipOnMouseMove=function(a){Ub(a);b.chartPosition&&c.hoverSeries&&c.hoverSeries.isCartesian&&!c.isInsidePlot(a.pageX-
-b.chartPosition.left-c.plotLeft,a.pageY-b.chartPosition.top-c.plotTop)&&b.resetTracker()};b.hideTooltipOnMouseLeave=function(){b.resetTracker();b.chartPosition=null};d.onmousedown=function(d){d=b.normalizeMouseEvent(d);!aa&&d.preventDefault&&d.preventDefault();c.mouseIsDown=!0;c.cancelClick=!1;c.mouseDownX=b.mouseDownX=d.chartX;b.mouseDownY=d.chartY;B(I,aa?"touchend":"mouseup",a)};var h=function(a){if(!a||!(a.touches&&a.touches.length>1)){a=b.normalizeMouseEvent(a);if(!aa)a.returnValue=!1;var d=a.chartX,
-h=a.chartY,l=!c.isInsidePlot(d-c.plotLeft,h-c.plotTop);aa&&a.type==="touchstart"&&(G(a.target,"isTracker")?c.runTrackerClick||a.preventDefault():!c.runChartClick&&!l&&a.preventDefault());if(l)d<c.plotLeft?d=c.plotLeft:d>c.plotLeft+c.plotWidth&&(d=c.plotLeft+c.plotWidth),h<c.plotTop?h=c.plotTop:h>c.plotTop+c.plotHeight&&(h=c.plotTop+c.plotHeight);if(c.mouseIsDown&&a.type!=="touchstart"){if(e=Math.sqrt(Math.pow(b.mouseDownX-d,2)+Math.pow(b.mouseDownY-h,2)),e>10){a=c.isInsidePlot(b.mouseDownX-c.plotLeft,
-b.mouseDownY-c.plotTop);if(c.hasCartesianSeries&&(b.zoomX||b.zoomY)&&a&&!b.selectionMarker)b.selectionMarker=c.renderer.rect(c.plotLeft,c.plotTop,f?1:c.plotWidth,g?1:c.plotHeight,0).attr({fill:b.options.chart.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();if(b.selectionMarker&&f){var m=d-b.mouseDownX;b.selectionMarker.attr({width:W(m),x:(m>0?0:m)+b.mouseDownX})}b.selectionMarker&&g&&(h-=b.mouseDownY,b.selectionMarker.attr({height:W(h),y:(h>0?0:h)+b.mouseDownY}));a&&!b.selectionMarker&&
-b.options.chart.panning&&c.pan(d)}}else if(!l)b.onmousemove(a);return l||!c.hasCartesianSeries}};d.onmousemove=h;B(d,"mouseleave",b.hideTooltipOnMouseLeave);B(I,"mousemove",b.hideTooltipOnMouseMove);d.ontouchstart=function(a){if(b.zoomX||b.zoomY)d.onmousedown(a);h(a)};d.ontouchmove=h;d.ontouchend=function(){e&&b.resetTracker()};d.onclick=function(a){var d=c.hoverPoint,e,f,a=b.normalizeMouseEvent(a);a.cancelBubble=!0;if(!c.cancelClick)d&&(G(a.target,"isTracker")||G(a.target.parentNode,"isTracker"))?
-(e=d.plotX,f=d.plotY,z(d,{pageX:b.chartPosition.left+c.plotLeft+(c.inverted?c.plotWidth-f:e),pageY:b.chartPosition.top+c.plotTop+(c.inverted?c.plotHeight-e:f)}),N(d.series,"click",z(a,{point:d})),d.firePointEvent("click",a)):(z(a,b.getMouseCoordinates(a)),c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&N(c,"click",a))}},destroy:function(){var a=this.chart,b=a.container;if(a.trackerGroup)a.trackerGroup=a.trackerGroup.destroy();Q(b,"mouseleave",this.hideTooltipOnMouseLeave);Q(I,"mousemove",
-this.hideTooltipOnMouseMove);b.onclick=b.onmousedown=b.onmousemove=b.ontouchstart=b.ontouchend=b.ontouchmove=null;clearInterval(this.tooltipInterval)},init:function(a,b){if(!a.trackerGroup)a.trackerGroup=a.renderer.g("tracker").attr({zIndex:9}).add();if(b.enabled)a.tooltip=new wb(a,b),this.tooltipInterval=setInterval(function(){a.tooltip.tick()},32);this.setDOMEvents()}};xb.prototype={init:function(a){var b=this,c=b.options=a.options.legend;if(c.enabled){var d=c.itemStyle,e=p(c.padding,8),f=c.itemMarginTop||
-0;b.baseline=F(d.fontSize)+3+f;b.itemStyle=d;b.itemHiddenStyle=y(d,c.itemHiddenStyle);b.itemMarginTop=f;b.padding=e;b.initialItemX=e;b.initialItemY=e-5;b.maxItemWidth=0;b.chart=a;b.itemHeight=0;b.lastLineHeight=0;b.render();B(b.chart,"endResize",function(){b.positionCheckboxes()})}},colorizeItem:function(a,b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,g=b?a.color:g;d&&d.css({fill:c});e&&e.attr({stroke:g});f&&f.attr({stroke:g,
-fill:g})},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;a.legendGroup&&a.legendGroup.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;n(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&a[b].destroy()});b&&Na(a.checkbox)},destroy:function(){var a=this.group,b=this.box;if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(){var a=
-this;n(a.allItems,function(b){var c=b.checkbox,d=a.group.alignAttr;c&&M(c,{left:d.translateX+b.legendItemWidth+c.x-20+"px",top:d.translateY+c.y+3+"px"})})},renderItem:function(a){var x;var b=this,c=b.chart,d=c.renderer,e=b.options,f=e.layout==="horizontal",g=e.symbolWidth,h=e.symbolPadding,k=b.itemStyle,i=b.itemHiddenStyle,j=b.padding,l=!e.rtl,m=e.width,o=e.itemMarginBottom||0,r=b.itemMarginTop,n=b.initialItemX,q=a.legendItem,p=a.series||a,s=p.options,w=s.showCheckbox;if(!q&&(a.legendGroup=d.g("legend-item").attr({zIndex:1}).add(b.scrollGroup),
-p.drawLegendSymbol(b,a),a.legendItem=q=d.text(e.labelFormatter.call(a),l?g+h:-h,b.baseline,e.useHTML).css(y(a.visible?k:i)).attr({align:l?"left":"right",zIndex:2}).add(a.legendGroup),a.legendGroup.on("mouseover",function(){a.setState("hover");q.css(b.options.itemHoverStyle)}).on("mouseout",function(){q.css(a.visible?k:i);a.setState()}).on("click",function(b){var c=function(){a.setVisible()},b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):N(a,"legendItemClick",b,c)}),b.colorizeItem(a,
-a.visible),s&&w))a.checkbox=V("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},e.itemCheckboxStyle,c.container),B(a.checkbox,"click",function(b){N(a,"checkboxClick",{checked:b.target.checked},function(){a.select()})});d=q.getBBox();x=a.legendItemWidth=e.itemWidth||g+h+d.width+j+(w?20:0),e=x;b.itemHeight=g=d.height;if(f&&b.itemX-n+e>(m||c.chartWidth-2*j-n))b.itemX=n,b.itemY+=r+b.lastLineHeight+o,b.lastLineHeight=0;b.maxItemWidth=t(b.maxItemWidth,e);b.lastItemY=r+b.itemY+o;b.lastLineHeight=
-t(g,b.lastLineHeight);a._legendItemPos=[b.itemX,b.itemY];f?b.itemX+=e:(b.itemY+=r+g+o,b.lastLineHeight=g);b.offsetWidth=m||t(f?b.itemX-n:e,b.offsetWidth)},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,k=a.box,i=a.options,j=a.padding,l=i.borderWidth,m=i.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup),
-a.clipRect=c.clipRect(0,0,9999,b.chartHeight),a.contentGroup.clip(a.clipRect);e=[];n(b.series,function(a){var b=a.options;b.showInLegend&&(e=e.concat(a.legendItems||(b.legendType==="point"?a.data:a)))});ac(e,function(a,b){return(a.options.legendIndex||0)-(b.options.legendIndex||0)});i.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;n(e,function(b){a.renderItem(b)});g=i.width||a.offsetWidth;h=a.lastItemY+a.lastLineHeight;h=a.handleOverflow(h);if(l||m){g+=j;h+=j;if(k){if(g>0&&h>0)k[k.isNew?
-"attr":"animate"](k.crisp(null,null,null,g,h)),k.isNew=!1}else a.box=k=c.rect(0,0,g,h,i.borderRadius,l||0).attr({stroke:i.borderColor,"stroke-width":l||0,fill:m||da}).add(d).shadow(i.shadow),k.isNew=!0;k[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;n(e,function(b){a.positionItem(b)});f&&d.align(z({width:g,height:h},i),!0,b.spacingBox);b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign===
-"top"?-f:f)-this.padding,g=e.maxHeight,h=this.clipRect,k=e.navigation,i=p(k.animation,!0),j=k.arrowSize||12,l=this.nav;e.layout==="horizontal"&&(f/=2);g&&(f=O(f,g));if(a>f){this.clipHeight=c=f-20;this.pageCount=Ga(a/c);this.currentPage=p(this.currentPage,1);this.fullHeight=a;h.attr({height:c});if(!l)this.nav=l=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,j,j).on("click",function(){b.scroll(-1,i)}).add(l),this.pager=d.text("",15,10).css(k.style).add(l),this.down=d.symbol("triangle-down",
-0,0,j,j).on("click",function(){b.scroll(1,i)}).add(l);b.scroll(0);a=f}else l&&(h.attr({height:c.chartHeight}),l.hide(),this.scrollGroup.attr({translateY:1}));return a},scroll:function(a,b){var c=this.pageCount,d=this.currentPage+a,e=this.clipHeight,f=this.options.navigation,g=f.activeColor,f=f.inactiveColor,h=this.pager,k=this.padding;d>c&&(d=c);if(d>0)b!==v&&Ea(b,this.chart),this.nav.attr({translateX:k,translateY:e+7,visibility:"visible"}),this.up.attr({fill:d===1?f:g}).css({cursor:d===1?"default":
-"pointer"}),h.attr({text:d+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:d===c?f:g}).css({cursor:d===c?"default":"pointer"}),this.scrollGroup.animate({translateY:-O(e*(d-1),this.fullHeight-e+k)+1}),h.attr({text:d+"/"+c}),this.currentPage=d}};cb.prototype={initSeries:function(a){var b=this.options.chart,b=new U[a.type||b.type||b.defaultSeriesType];b.init(this,a);return b},addSeries:function(a,b,c){var d=this;a&&(Ea(c,d),b=p(b,!0),N(d,"addSeries",{options:a},function(){d.initSeries(a);
-d.isDirtyLegend=!0;b&&d.redraw()}))},isInsidePlot:function(a,b){return a>=0&&a<=this.plotWidth&&b>=0&&b<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&n(this.axes,function(a){a.adjustTickAmount()});this.maxTicks=null},redraw:function(a){var b=this.axes,c=this.series,d=this.tracker,e=this.legend,f=this.isDirtyLegend,g,h=this.isDirtyBox,k=c.length,i=k,j=this.clipRect,l=this.renderer,m=l.isHidden();Ea(a,this);for(m&&this.cloneRenderTo();i--;)if(a=c[i],a.isDirty&&a.options.stacking){g=
-!0;break}if(g)for(i=k;i--;)if(a=c[i],a.options.stacking)a.isDirty=!0;n(c,function(a){a.isDirty&&a.options.legendType==="point"&&(f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;if(this.hasCartesianSeries){if(!this.isResizing)this.maxTicks=null,n(b,function(a){a.setScale()});this.adjustTickAmounts();this.getMargins();n(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes=!1,N(a,"afterSetExtremes",a.getExtremes());if(a.isDirty||h||g)a.redraw(),h=!0})}h&&(this.drawChartBox(),j&&(Ra(j),
-j.animate({width:this.plotSizeX,height:this.plotSizeY+1})));n(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.resetTracker&&d.resetTracker(!0);l.draw();N(this,"redraw");m&&this.cloneRenderTo(!0)},showLoading:function(a){var b=this.options,c=this.loadingDiv,d=b.loading;if(!c)this.loadingDiv=c=V(oa,{className:"highcharts-loading"},z(d.style,{left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+"px",height:this.plotHeight+"px",zIndex:10,display:da}),this.container),
-this.loadingSpan=V("span",null,d.labelStyle,c);this.loadingSpan.innerHTML=a||b.lang.loading;if(!this.loadingShown)M(c,{opacity:0,display:""}),lb(c,{opacity:d.style.opacity},{duration:d.showDuration||0}),this.loadingShown=!0},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&lb(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){M(b,{display:da})}});this.loadingShown=!1},get:function(a){var b=this.axes,c=this.series,d,e;for(d=0;d<b.length;d++)if(b[d].options.id===a)return b[d];
-for(d=0;d<c.length;d++)if(c[d].options.id===a)return c[d];for(d=0;d<c.length;d++){e=c[d].points||[];for(b=0;b<e.length;b++)if(e[b].id===a)return e[b]}return null},getAxes:function(){var a=this,b=this.options,c=b.xAxis||{},b=b.yAxis||{},c=la(c);n(c,function(a,b){a.index=b;a.isX=!0});b=la(b);n(b,function(a,b){a.index=b});c=c.concat(b);n(c,function(b){new bb(a,b)});a.adjustTickAmounts()},getSelectedPoints:function(){var a=[];n(this.series,function(b){a=a.concat(Ab(b.points,function(a){return a.selected}))});
-return a},getSelectedSeries:function(){return Ab(this.series,function(a){return a.selected})},showResetZoom:function(){var a=this,b=T.lang,c=a.options.chart.resetZoomButton,d=c.theme,e=d.states,f=c.relativeTo==="chart"?null:{x:a.plotLeft,y:a.plotTop,width:a.plotWidth,height:a.plotHeight};this.resetZoomButton=a.renderer.button(b.resetZoom,null,null,function(){a.zoomOut()},d,e&&e.hover).attr({align:c.position.align,title:b.resetZoomTitle}).add().align(c.position,!1,f)},zoomOut:function(){var a=this,
-b=a.resetZoomButton;N(a,"selection",{resetSelection:!0},function(){a.zoom()});if(b)a.resetZoomButton=b.destroy()},zoom:function(a){var b=this,c=b.options.chart,d;b.resetZoomEnabled!==!1&&!b.resetZoomButton&&b.showResetZoom();!a||a.resetSelection?n(b.axes,function(a){a.options.zoomEnabled!==!1&&(a.setExtremes(null,null,!1),d=!0)}):n(a.xAxis.concat(a.yAxis),function(a){var c=a.axis;if(b.tracker[c.isXAxis?"zoomX":"zoomY"])c.setExtremes(a.min,a.max,!1),d=!0});d&&b.redraw(p(c.animation,b.pointCount<100))},
-pan:function(a){var b=this.xAxis[0],c=this.mouseDownX,d=b.pointRange/2,e=b.getExtremes(),f=b.translate(c-a,!0)+d,c=b.translate(c+this.plotWidth-a,!0)-d;(d=this.hoverPoints)&&n(d,function(a){a.setState()});b.series.length&&f>O(e.dataMin,e.min)&&c<t(e.dataMax,e.max)&&b.setExtremes(f,c,!0,!1);this.mouseDownX=a;M(this.container,{cursor:"move"})},setTitle:function(a,b){var c=this,d=c.options,e;c.chartTitleOptions=e=y(d.title,a);c.chartSubtitleOptions=d=y(d.subtitle,b);n([["title",a,e],["subtitle",b,d]],
-function(a){var b=a[0],d=c[b],e=a[1],a=a[2];d&&e&&(d=d.destroy());a&&a.text&&!d&&(c[b]=c.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,"class":"highcharts-"+b,zIndex:a.zIndex||4}).css(a.style).add().align(a,!1,c.spacingBox))})},getChartSize:function(){var a=this.options.chart,b=this.renderToClone||this.renderTo;this.containerWidth=eb(b,"width");this.containerHeight=eb(b,"height");this.chartWidth=a.width||this.containerWidth||600;this.chartHeight=a.height||(this.containerHeight>19?this.containerHeight:
-400)},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Na(b),delete this.renderToClone):(c&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),M(b,{position:"absolute",top:"-9999px",display:"block"}),I.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+yb++;if(ya(a))this.renderTo=a=I.getElementById(a);a||ub(13,!0);a.innerHTML="";
-a.offsetWidth||this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;this.container=a=V(oa,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},z({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal"},b.style),this.renderToClone||a);this.renderer=b.forExport?new qa(a,c,d,!0):new Qa(a,c,d);ma&&this.renderer.create(this,a,c,d)},getMargins:function(){var a=this.options.chart,b=a.spacingTop,c=a.spacingRight,d=
-a.spacingBottom,a=a.spacingLeft,e,f=this.legend,g=this.optionsMarginTop,h=this.optionsMarginLeft,k=this.optionsMarginRight,i=this.optionsMarginBottom,j=this.chartTitleOptions,l=this.chartSubtitleOptions,m=this.options.legend,o=p(m.margin,10),r=m.x,A=m.y,q=m.align,C=m.verticalAlign;this.resetMargins();e=this.axisOffset;if((this.title||this.subtitle)&&!s(this.optionsMarginTop))if(l=t(this.title&&!j.floating&&!j.verticalAlign&&j.y||0,this.subtitle&&!l.floating&&!l.verticalAlign&&l.y||0))this.plotTop=
-t(this.plotTop,l+p(j.margin,15)+b);if(f.display&&!m.floating)if(q==="right"){if(!s(k))this.marginRight=t(this.marginRight,f.legendWidth-r+o+c)}else if(q==="left"){if(!s(h))this.plotLeft=t(this.plotLeft,f.legendWidth+r+o+a)}else if(C==="top"){if(!s(g))this.plotTop=t(this.plotTop,f.legendHeight+A+o+b)}else if(C==="bottom"&&!s(i))this.marginBottom=t(this.marginBottom,f.legendHeight-A+o+d);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);
-this.hasCartesianSeries&&n(this.axes,function(a){a.getOffset()});s(h)||(this.plotLeft+=e[3]);s(g)||(this.plotTop+=e[0]);s(i)||(this.marginBottom+=e[2]);s(k)||(this.marginRight+=e[1]);this.setChartSize()},initReflow:function(){function a(a){var g=c.width||eb(d,"width"),h=c.height||eb(d,"height"),a=a?a.target:Y;if(g&&h&&(a===Y||a===I)){if(g!==b.containerWidth||h!==b.containerHeight)clearTimeout(e),e=setTimeout(function(){b.resize(g,h,!1)},100);b.containerWidth=g;b.containerHeight=h}}var b=this,c=b.options.chart,
-d=b.renderTo,e;B(Y,"resize",a);B(b,"destroy",function(){Q(Y,"resize",a)})},fireEndResize:function(){var a=this;a&&N(a,"endResize",null,function(){a.isResizing-=1})},resize:function(a,b,c){var d,e,f=this.title,g=this.subtitle;this.isResizing+=1;Ea(c,this);this.oldChartHeight=this.chartHeight;this.oldChartWidth=this.chartWidth;if(s(a))this.chartWidth=d=u(a);if(s(b))this.chartHeight=e=u(b);M(this.container,{width:d+"px",height:e+"px"});this.renderer.setSize(d,e,c);this.plotWidth=d-this.plotLeft-this.marginRight;
-this.plotHeight=e-this.plotTop-this.marginBottom;this.maxTicks=null;n(this.axes,function(a){a.isDirty=!0;a.setScale()});n(this.series,function(a){a.isDirty=!0});this.isDirtyBox=this.isDirtyLegend=!0;this.getMargins();a=this.spacingBox;f&&f.align(null,null,a);g&&g.align(null,null,a);this.redraw(c);this.oldChartHeight=null;N(this,"resize");$a===!1?this.fireEndResize():setTimeout(this.fireEndResize,$a&&$a.duration||500)},setChartSize:function(){var a=this.inverted,b=this.chartWidth,c=this.chartHeight,
-d=this.options.chart,e=d.spacingTop,f=d.spacingRight,g=d.spacingBottom,d=d.spacingLeft;this.plotLeft=u(this.plotLeft);this.plotTop=u(this.plotTop);this.plotWidth=u(b-this.plotLeft-this.marginRight);this.plotHeight=u(c-this.plotTop-this.marginBottom);this.plotSizeX=a?this.plotHeight:this.plotWidth;this.plotSizeY=a?this.plotWidth:this.plotHeight;this.spacingBox={x:d,y:e,width:b-d-f,height:c-e-g};n(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this.options.chart,
-b=a.spacingRight,c=a.spacingBottom,d=a.spacingLeft;this.plotTop=p(this.optionsMarginTop,a.spacingTop);this.marginRight=p(this.optionsMarginRight,b);this.marginBottom=p(this.optionsMarginBottom,c);this.plotLeft=p(this.optionsMarginLeft,d);this.axisOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,k=a.borderWidth||0,i=a.backgroundColor,j=a.plotBackgroundColor,
-l=a.plotBackgroundImage,m,o={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};m=k+(a.shadow?8:0);if(k||i)if(e)e.animate(e.crisp(null,null,null,c-m,d-m));else{e={fill:i||da};if(k)e.stroke=a.borderColor,e["stroke-width"]=k;this.chartBackground=b.rect(m/2,m/2,c-m,d-m,a.borderRadius,k).attr(e).add().shadow(a.shadow)}if(j)f?f.animate(o):this.plotBackground=b.rect(this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight,0).attr({fill:j}).add().shadow(a.plotShadow);if(l)h?h.animate(o):
-this.plotBGImage=b.image(l,this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight).add();if(a.plotBorderWidth)g?g.animate(g.crisp(null,this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight)):this.plotBorder=b.rect(this.plotLeft,this.plotTop,this.plotWidth,this.plotHeight,0,a.plotBorderWidth).attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth,zIndex:4}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;n(["inverted","angular",
-"polar"],function(g){c=U[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&&e--;)(c=U[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},render:function(){var a=this,b=a.axes,c=a.renderer,d=a.options,e=d.labels,d=d.credits,f;a.setTitle();a.legend=new xb(a);n(b,function(a){a.setScale()});a.getMargins();a.maxTicks=null;n(b,function(a){a.setTickPositions(!0);a.setMaxTicks()});a.adjustTickAmounts();a.getMargins();a.drawChartBox();a.hasCartesianSeries&&n(b,function(a){a.render()});
-if(!a.seriesGroup)a.seriesGroup=c.g("series-group").attr({zIndex:3}).add();n(a.series,function(a){a.translate();a.setTooltipPoints();a.render()});e.items&&n(e.items,function(){var b=z(e.style,this.style),d=F(b.left)+a.plotLeft,f=F(b.top)+a.plotTop+12;delete b.left;delete b.top;c.text(this.html,d,f).attr({zIndex:2}).css(b).add()});if(d.enabled&&!a.credits)f=d.href,a.credits=c.text(d.text,0,0).on("click",function(){if(f)location.href=f}).attr({align:d.position.align,zIndex:8}).css(d.style).add().align(d.position);
-a.hasRendered=!0},destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;if(a!==null){N(a,"destroy");Q(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();n("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,tracker,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(b){var c=a[b];c&&(a[b]=c.destroy())});if(d)d.innerHTML="",Q(d),f&&Na(d),d=null;for(e in a)delete a[e];
-a=a.options=null}},firstRender:function(){var a=this,b=a.options,c=a.callback;if(!Pa&&Y==Y.top&&I.readyState!=="complete"||ma&&!Y.canvg)ma?Xb.push(function(){a.firstRender()},b.global.canvasToolsURL):I.attachEvent("onreadystatechange",function(){I.detachEvent("onreadystatechange",a.firstRender);I.readyState==="complete"&&a.firstRender()});else{a.getContainer();N(a,"init");if(Highcharts.RangeSelector&&b.rangeSelector.enabled)a.rangeSelector=new Highcharts.RangeSelector(a);a.resetMargins();a.setChartSize();
-a.propFromSeries();a.getAxes();n(b.series||[],function(b){a.initSeries(b)});if(Highcharts.Scroller&&(b.navigator.enabled||b.scrollbar.enabled))a.scroller=new Highcharts.Scroller(a);a.tracker=new Kb(a,b);a.render();a.renderer.draw();c&&c.apply(a,[a]);n(a.callbacks,function(b){b.apply(a,[a])});a.cloneRenderTo(!0);N(a,"load")}},init:function(a){var b=this.options.chart,c;b.reflow!==!1&&B(this,"load",this.initReflow);if(a)for(c in a)B(this,c,a[c]);this.xAxis=[];this.yAxis=[];this.animation=ma?!1:p(b.animation,
-!0);this.setSize=this.resize;this.pointCount=0;this.counters=new Hb;this.firstRender()}};cb.prototype.callbacks=[];var xa=function(){};xa.prototype={init:function(a,b,c){var d=a.chart.counters;this.series=a;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint){b=a.chart.options.colors;if(!this.options)this.options={};this.color=this.options.color=this.color||b[d.color++];d.wrapColor(b.length)}a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=typeof a;this.config=
-a;if(d==="number"||a===null)this.y=a;else if(typeof a[0]==="number")this.x=a[0],this.y=a[1];else if(d==="object"&&typeof a.length!=="number"){if(z(this,a),this.options=a,a.dataLabels)c._hasPointLabels=!0}else if(typeof a[0]==="string")this.name=a[0],this.y=a[1];if(this.x===v)this.x=b===v?c.autoIncrement():b},destroy:function(){var a=this.series.chart,b=a.hoverPoints,c;a.pointCount--;if(b&&(this.setState(),Ka(b,this),!b.length))a.hoverPoints=null;if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||
-this.dataLabel)Q(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(){for(var a="graphic,tracker,dataLabel,group,connector,shadowGroup".split(","),b,c=6;c--;)b=a[c],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},select:function(a,b){var c=this,d=c.series.chart,
-a=p(a,!c.selected);c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=a;c.setState(a&&"select");b||n(d.getSelectedPoints(),function(a){if(a.selected&&a!==c)a.selected=!1,a.setState(""),a.firePointEvent("unselect")})})},onMouseOver:function(){var a=this.series,b=a.chart,c=b.tooltip,d=b.hoverPoint;if(d&&d!==this)d.onMouseOut();this.firePointEvent("mouseOver");c&&(!c.shared||a.noSharedTooltip)&&c.refresh(this);this.setState("hover");b.hoverPoint=this},onMouseOut:function(){this.firePointEvent("mouseOut");
-this.setState();this.series.chart.hoverPoint=null},tooltipFormatter:function(a){var b=this.series,c=b.tooltipOptions,d=a.match(/\{(series|point)\.[a-zA-Z]+\}/g),e=/[{\.}]/,f,g,h,k,i={y:0,open:0,high:0,low:0,close:0,percentage:1,total:1};c.valuePrefix=c.valuePrefix||c.yPrefix;c.valueDecimals=c.valueDecimals||c.yDecimals;c.valueSuffix=c.valueSuffix||c.ySuffix;for(k in d)g=d[k],ya(g)&&g!==a&&(h=(" "+g).split(e),f={point:this,series:b}[h[1]],h=h[2],f===this&&i.hasOwnProperty(h)?(f=i[h]?h:"value",f=(c[f+
-"Prefix"]||"")+Ya(this[h],p(c[f+"Decimals"],-1))+(c[f+"Suffix"]||"")):f=f[h],a=a.replace(g,f));return a},update:function(a,b,c){var d=this,e=d.series,f=d.graphic,g,h=e.data,k=h.length,i=e.chart,b=p(b,!0);d.firePointEvent("update",{options:a},function(){d.applyOptions(a);ia(a)&&(e.getAttribs(),f&&f.attr(d.pointAttr[e.state]));for(g=0;g<k;g++)if(h[g]===d){e.xData[g]=d.x;e.yData[g]=d.y;e.options.data[g]=a;break}e.isDirty=!0;e.isDirtyData=!0;b&&i.redraw(c)})},remove:function(a,b){var c=this,d=c.series,
-e=d.chart,f,g=d.data,h=g.length;Ea(b,e);a=p(a,!0);c.firePointEvent("remove",null,function(){for(f=0;f<h;f++)if(g[f]===c){g.splice(f,1);d.options.data.splice(f,1);d.xData.splice(f,1);d.yData.splice(f,1);break}c.destroy();d.isDirty=!0;d.isDirtyData=!0;a&&e.redraw()})},firePointEvent:function(a,b,c){var d=this,e=this.series.options;(e.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents();a==="click"&&e.allowPointSelect&&(c=function(a){d.select(null,a.ctrlKey||a.metaKey||
-a.shiftKey)});N(this,a,b,c)},importEvents:function(){if(!this.hasImportedEvents){var a=y(this.series.options.point,this.options).events,b;this.events=a;for(b in a)B(this,b,a[b]);this.hasImportedEvents=!0}},setState:function(a){var b=this.plotX,c=this.plotY,d=this.series,e=d.options.states,f=S[d.type].marker&&d.options.marker,g=f&&!f.enabled,h=f&&f.states[a],k=h&&h.enabled===!1,i=d.stateMarkerGraphic,j=d.chart,l=this.pointAttr,a=a||"";if(!(a===this.state||this.selected&&a!=="select"||e[a]&&e[a].enabled===
-!1||a&&(k||g&&!h.enabled))){if(this.graphic)e=f&&this.graphic.symbolName&&l[a].r,this.graphic.attr(y(l[a],e?{x:b-e,y:c-e,width:2*e,height:2*e}:{}));else{if(a&&h){if(!i)e=h.radius,d.stateMarkerGraphic=i=j.renderer.symbol(d.symbol,-e,-e,2*e,2*e).attr(l[a]).add(d.group);i.translate(b,c)}if(i)i[a?"show":"hide"]()}this.state=a}}};var Z=function(){};Z.prototype={isCartesian:!0,type:"line",pointClass:xa,sorted:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},
-init:function(a,b){var c,d;d=a.series.length;this.chart=a;this.options=b=this.setOptions(b);this.bindAxes();z(this,{index:d,name:b.name||"Series "+(d+1),state:"",pointAttr:{},visible:b.visible!==!1,selected:b.selected===!0});if(ma)b.animation=!1;d=b.events;for(c in d)B(this,c,d[c]);if(d&&d.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;this.getColor();this.getSymbol();this.setData(b.data,!1);if(this.isCartesian)a.hasCartesianSeries=!0;a.series.push(this)},
-bindAxes:function(){var a=this,b=a.options,c=a.chart,d;a.isCartesian&&n(["xAxis","yAxis"],function(e){n(c[e],function(c){d=c.options;if(b[e]===d.index||b[e]===v&&d.index===0)c.series.push(a),a[e]=c,c.isDirty=!0})})},autoIncrement:function(){var a=this.options,b=this.xIncrement,b=p(b,a.pointStart,0);this.pointInterval=p(this.pointInterval,a.pointInterval,1);this.xIncrement=b+this.pointInterval;return b},getSegments:function(){var a=-1,b=[],c,d=this.points,e=d.length;if(e)if(this.options.connectNulls){for(c=
-e;c--;)d[c].y===null&&d.splice(c,1);d.length&&(b=[d])}else n(d,function(c,g){c.y===null?(g>a+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b=this.chart.options,c=b.plotOptions,d=a.data;a.data=null;c=y(c[this.type],c.series,a);c.data=a.data=d;this.tooltipOptions=y(b.tooltip,c.tooltip);return c},getColor:function(){var a=this.options,b=this.chart.options.colors,c=this.chart.counters;this.color=a.color||!a.colorByPoint&&b[c.color++]||"gray";
-c.wrapColor(b.length)},getSymbol:function(){var a=this.options.marker,b=this.chart,c=b.options.symbols,b=b.counters;this.symbol=a.symbol||c[b.symbol++];if(/^url/.test(this.symbol))a.radius=0;b.wrapSymbol(c.length)},drawLegendSymbol:function(a){var b=this.options,c=b.marker,d=a.options.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline,g;if(b.lineWidth){g={"stroke-width":b.lineWidth};if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M",0,a-4,"L",d,a-4]).attr(g).add(f)}if(c&&
-c.enabled)b=c.radius,this.legendSymbol=e.symbol(this.symbol,d/2-b,a-4-b,2*b,2*b).attr(this.pointAttr[""]).add(f)},addPoint:function(a,b,c,d){var e=this.data,f=this.graph,g=this.area,h=this.chart,k=this.xData,i=this.yData,j=f&&f.shift||0,l=this.options.data;Ea(d,h);if(f&&c)f.shift=j+1;if(g){if(c)g.shift=j+1;g.isArea=!0}b=p(b,!0);d={series:this};this.pointClass.prototype.applyOptions.apply(d,[a]);k.push(d.x);i.push(this.valueCount===4?[d.open,d.high,d.low,d.close]:d.y);l.push(a);c&&(e[0]&&e[0].remove?
-e[0].remove(!1):(e.shift(),k.shift(),i.shift(),l.shift()));this.getAttribs();this.isDirtyData=this.isDirty=!0;b&&h.redraw()},setData:function(a,b){var c=this.points,d=this.options,e=this.initialColor,f=this.chart,g=null,h=this.xAxis,k=this.pointClass.prototype;this.xIncrement=null;this.pointRange=h&&h.categories&&1||d.pointRange;if(s(e))f.counters.color=e;var i=[],j=[],l=a?a.length:[],m=this.valueCount;if(l>(d.turboThreshold||1E3)){for(e=0;g===null&&e<l;)g=a[e],e++;if(Wa(g)){k=p(d.pointStart,0);d=
-p(d.pointInterval,1);for(e=0;e<l;e++)i[e]=k,j[e]=a[e],k+=d;this.xIncrement=k}else if(Va(g))if(m)for(e=0;e<l;e++)d=a[e],i[e]=d[0],j[e]=d.slice(1,m+1);else for(e=0;e<l;e++)d=a[e],i[e]=d[0],j[e]=d[1]}else for(e=0;e<l;e++)d={series:this},k.applyOptions.apply(d,[a[e]]),i[e]=d.x,j[e]=k.toYData?k.toYData.apply(d):d.y;this.data=[];this.options.data=a;this.xData=i;this.yData=j;for(e=c&&c.length||0;e--;)c[e]&&c[e].destroy&&c[e].destroy();if(h)h.minRange=h.userMinRange;this.isDirty=this.isDirtyData=f.isDirtyBox=
-!0;p(b,!0)&&f.redraw(!1)},remove:function(a,b){var c=this,d=c.chart,a=p(a,!0);if(!c.isRemoving)c.isRemoving=!0,N(c,"remove",null,function(){c.destroy();d.isDirtyLegend=d.isDirtyBox=!0;a&&d.redraw(b)});c.isRemoving=!1},processData:function(a){var b=this.xData,c=this.yData,d=b.length,e=0,f=d,g,h,k=this.xAxis,i=this.options,j=i.cropThreshold,l=this.isCartesian;if(l&&!this.isDirty&&!k.isDirty&&!this.yAxis.isDirty&&!a)return!1;if(l&&this.sorted&&(!j||d>j||this.forceCrop))if(a=k.getExtremes(),k=a.min,j=
-a.max,b[d-1]<k||b[0]>j)b=[],c=[];else if(b[0]<k||b[d-1]>j){for(a=0;a<d;a++)if(b[a]>=k){e=t(0,a-1);break}for(;a<d;a++)if(b[a]>j){f=a+1;break}b=b.slice(e,f);c=c.slice(e,f);g=!0}for(a=b.length-1;a>0;a--)if(d=b[a]-b[a-1],d>0&&(h===v||d<h))h=d;this.cropped=g;this.cropStart=e;this.processedXData=b;this.processedYData=c;if(i.pointRange===null)this.pointRange=h||1;this.closestPointRange=h},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,
-g=d.length,h=this.cropStart||0,k,i=this.hasGroupedData,j,l=[],m;if(!b&&!i)b=[],b.length=a.length,b=this.data=b;for(m=0;m<g;m++)k=h+m,i?l[m]=(new f).init(this,[d[m]].concat(la(e[m]))):(b[k]?j=b[k]:a[k]!==v&&(b[k]=j=(new f).init(this,a[k],d[m])),l[m]=j);if(b&&(g!==(c=b.length)||i))for(m=0;m<c;m++)if(m===h&&!i&&(m+=g),b[m])b[m].destroyElements(),b[m].plotX=v;this.data=b;this.points=l},translate:function(){this.processedXData||this.processData();this.generatePoints();for(var a=this.chart,b=this.options,
-c=b.stacking,d=this.xAxis,e=d.categories,f=this.yAxis,g=this.points,h=g.length,k=!!this.modifyValue,i,j=f.series,l=j.length;l--;)if(j[l].visible){l===this.index&&(i=!0);break}for(l=0;l<h;l++){var j=g[l],m=j.x,o=j.y,r=j.low,n=f.stacks[(o<b.threshold?"-":"")+this.stackKey];j.plotX=d.translate(m,0,0,0,1);if(c&&this.visible&&n&&n[m]){r=n[m];m=r.total;r.cum=r=r.cum-o;o=r+o;if(i)r=b.threshold;c==="percent"&&(r=m?r*100/m:0,o=m?o*100/m:0);j.percentage=m?j.y*100/m:0;j.stackTotal=m;j.stackY=o}j.yBottom=s(r)?
-f.translate(r,0,1,0,1):null;k&&(o=this.modifyValue(o,j));j.plotY=typeof o==="number"?u(f.translate(o,0,1,0,1)*10)/10:v;j.clientX=a.inverted?a.plotHeight-j.plotX:j.plotX;j.category=e&&e[j.x]!==v?e[j.x]:j.x}this.getSegments()},setTooltipPoints:function(a){var b=[],c=this.chart.plotSizeX,d,e;d=this.xAxis;var f,g,h=[];if(this.options.enableMouseTracking!==!1){if(a)this.tooltipPoints=null;n(this.segments||this.points,function(a){b=b.concat(a)});d&&d.reversed&&(b=b.reverse());a=b.length;for(g=0;g<a;g++){f=
-b[g];d=b[g-1]?b[g-1]._high+1:0;for(f._high=e=b[g+1]?t(0,$((f.plotX+(b[g+1]?b[g+1].plotX:c))/2)):c;d>=0&&d<=e;)h[d++]=f}this.tooltipPoints=h}},tooltipHeaderFormatter:function(a){var b=this.tooltipOptions,c=b.xDateFormat,d=this.xAxis,e=d&&d.options.type==="datetime",f;if(e&&!c)for(f in E)if(E[f]>=d.closestPointRange){c=b.dateTimeLabelFormats[f];break}return b.headerFormat.replace("{point.key}",e?ua(c,a):a).replace("{series.name}",this.name).replace("{series.color}",this.color)},onMouseOver:function(){var a=
-this.chart,b=a.hoverSeries;if(aa||!a.mouseIsDown){if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&N(this,"mouseOver");this.setState("hover");a.hoverSeries=this}},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;if(d)d.onMouseOut();this&&a.events.mouseOut&&N(this,"mouseOut");c&&!a.stickyTracking&&!c.shared&&c.hide();this.setState();b.hoverSeries=null},animate:function(a){var b=this.chart,c=this.clipRect,d=this.options.animation;d&&!ia(d)&&(d={});if(a){if(!c.isAnimating)c.attr("width",
-0),c.isAnimating=!0}else c.animate({width:b.plotSizeX},d),this.animate=null},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,k,i,j;if(this.options.marker.enabled)for(f=b.length;f--;)if(g=b[f],d=g.plotX,e=g.plotY,j=g.graphic,e!==v&&!isNaN(e))if(a=g.pointAttr[g.selected?"select":""],h=a.r,k=p(g.marker&&g.marker.symbol,this.symbol),i=k.indexOf("url")===0,j)j.animate(z({x:d-h,y:e-h},j.symbolName?{width:2*h,height:2*h}:{}));else if(h>0||i)g.graphic=c.renderer.symbol(k,d-h,e-h,2*h,2*h).attr(a).add(this.group)},
-convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=p(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=S[a.type].marker?a.options.marker:a.options,c=b.states,d=c.hover,e,f=a.color,g={stroke:f,fill:f},h=a.points||[],k=[],i,j=a.pointAttrToOptions,l;a.options.marker?(d.radius=d.radius||b.radius+2,d.lineWidth=d.lineWidth||b.lineWidth+1):d.color=d.color||wa(d.color||f).brighten(d.brightness).get();k[""]=a.convertAttribs(b,
-g);n(["hover","select"],function(b){k[b]=a.convertAttribs(c[b],k[""])});a.pointAttr=k;for(f=h.length;f--;){g=h[f];if((b=g.options&&g.options.marker||g.options)&&b.enabled===!1)b.radius=0;e=!1;if(g.options)for(l in j)s(b[j[l]])&&(e=!0);if(e){i=[];c=b.states||{};e=c.hover=c.hover||{};if(!a.options.marker)e.color=wa(e.color||g.options.color).brighten(e.brightness||d.brightness).get();i[""]=a.convertAttribs(b,k[""]);i.hover=a.convertAttribs(c.hover,k.hover,i[""]);i.select=a.convertAttribs(c.select,k.select,
-i[""])}else i=k;g.pointAttr=i}},destroy:function(){var a=this,b=a.chart,c=a.clipRect,d=/AppleWebKit\/533/.test(Ia),e,f,g=a.data||[],h,k,i;N(a,"destroy");Q(a);n(["xAxis","yAxis"],function(b){if(i=a[b])Ka(i.series,a),i.isDirty=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(f=g.length;f--;)(h=g[f])&&h.destroy&&h.destroy();a.points=null;if(c&&c!==b.clipRect)a.clipRect=c.destroy();n("area,graph,dataLabelsGroup,group,tracker,trackerGroup".split(","),function(b){a[b]&&(e=d&&b==="group"?"hide":"destroy",
-a[b][e]())});if(b.hoverSeries===a)b.hoverSeries=null;Ka(b.series,a);for(k in a)delete a[k]},drawDataLabels:function(){var a=this,b=a.options,c=b.dataLabels;if(c.enabled||a._hasPointLabels){var d,e,f=a.points,g,h,k,i=a.dataLabelsGroup,j=a.chart,l=a.xAxis,l=l?l.left:j.plotLeft,m=a.yAxis,m=m?m.top:j.plotTop,o=j.renderer,r=j.inverted,A=a.type,q=b.stacking,C=A==="column"||A==="bar",J=c.verticalAlign===null,w=c.y===null,x=o.fontMetrics(c.style.fontSize),D=x.h,K=x.b,H,t;C&&(x={top:K,middle:K-D/2,bottom:-D+
-K},q?(J&&(c=y(c,{verticalAlign:"middle"})),w&&(c=y(c,{y:x[c.verticalAlign]}))):J?c=y(c,{verticalAlign:"top"}):w&&(c=y(c,{y:x[c.verticalAlign]})));i?i.translate(l,m):i=a.dataLabelsGroup=o.g("data-labels").attr({visibility:a.visible?"visible":"hidden",zIndex:6}).translate(l,m).add();h=c;n(f,function(f){H=f.dataLabel;c=h;(g=f.options)&&g.dataLabels&&(c=y(c,g.dataLabels));if(t=c.enabled){var l=f.barX&&f.barX+f.barW/2||p(f.plotX,-999),m=p(f.plotY,-999),n=c.y===null?f.y>=b.threshold?-D+K:K:c.y;d=(r?j.plotWidth-
-m:l)+c.x;e=u((r?j.plotHeight-l:m)+n)}if(H&&a.isCartesian&&(!j.isInsidePlot(d,e)||!t))f.dataLabel=H.destroy();else if(t){var l=c.align,w;k=c.formatter.call(f.getLabelConfig(),c);A==="column"&&(d+={left:-1,right:1}[l]*f.barW/2||0);!q&&r&&f.y<0&&(l="right",d-=10);c.style.color=p(c.color,c.style.color,a.color,"black");if(H)H.attr({text:k}).animate({x:d,y:e});else if(s(k)){l={align:l,fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":c.borderWidth,r:c.borderRadius||0,rotation:c.rotation,padding:c.padding,
-zIndex:1};for(w in l)l[w]===v&&delete l[w];H=f.dataLabel=o[c.rotation?"text":"label"](k,d,e,null,null,null,c.useHTML,!0).attr(l).css(c.style).add(i).shadow(c.shadow)}if(C&&b.stacking&&H)w=f.barX,l=f.barY,m=f.barW,f=f.barH,H.align(c,null,{x:r?j.plotWidth-l-f:w,y:r?j.plotHeight-w-m:l,width:r?f:m,height:r?m:f})}})}},getSegmentPath:function(a){var b=this,c=[];n(a,function(d,e){b.getPointSpline?c.push.apply(c,b.getPointSpline(a,d,e)):(c.push(e?"L":"M"),e&&b.options.step&&c.push(d.plotX,a[e-1].plotY),c.push(d.plotX,
-d.plotY))});return c},drawGraph:function(){var a=this,b=a.options,c=a.graph,d=[],e=a.group,f=b.lineColor||a.color,g=b.lineWidth,h=b.dashStyle,k,i=a.chart.renderer,j=[];n(a.segments,function(b){k=a.getSegmentPath(b);b.length>1?d=d.concat(k):j.push(b[0])});a.graphPath=d;a.singlePoints=j;if(c)Ra(c),c.animate({d:d});else if(g){c={stroke:f,"stroke-width":g};if(h)c.dashstyle=h;a.graph=i.path(d).attr(c).add(e).shadow(b.shadow)}},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};
-c.attr(a).invert();d&&d.attr(a).invert()}var b=this,c=b.group,d=b.trackerGroup,e=b.chart;B(e,"resize",a);B(b,"destroy",function(){Q(e,"resize",a)});a();b.invertGroups=a},createGroup:function(){var a=this.chart;(this.group=a.renderer.g("series")).attr({visibility:this.visible?"visible":"hidden",zIndex:this.options.zIndex}).translate(this.xAxis.left,this.yAxis.top).add(a.seriesGroup);this.createGroup=Rb},render:function(){var a=this,b=a.chart,c,d=a.options,e=d.clip!==!1,f=d.animation,f=(d=f&&a.animate)?
-f&&f.duration||500:0,g=a.clipRect,h=b.renderer;if(!g&&(g=a.clipRect=!b.hasRendered&&b.clipRect?b.clipRect:h.clipRect(0,0,b.plotSizeX,b.plotSizeY+1),!b.clipRect))b.clipRect=g;a.createGroup();c=a.group;a.drawDataLabels();d&&a.animate(!0);a.getAttribs();a.drawGraph&&a.drawGraph();a.drawPoints();a.options.enableMouseTracking!==!1&&a.drawTracker();b.inverted&&a.invertGroups();e&&!a.hasRendered&&(c.clip(g),a.trackerGroup&&a.trackerGroup.clip(b.clipRect));d&&a.animate();setTimeout(function(){g.isAnimating=
-!1;if((c=a.group)&&g!==b.clipRect&&g.renderer){if(e)c.clip(a.clipRect=b.clipRect);g.destroy()}},f);a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.group;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:this.xAxis.left,translateY:this.yAxis.top}));this.translate();this.setTooltipPoints(!0);this.render();b&&N(this,"updatedData")},setState:function(a){var b=this.options,c=this.graph,d=b.states,b=b.lineWidth,
-a=a||"";if(this.state!==a)this.state=a,d[a]&&d[a].enabled===!1||(a&&(b=d[a].lineWidth||b+1),c&&!c.dashstyle&&c.attr({"stroke-width":b},a?0:500))},setVisible:function(a,b){var c=this.chart,d=this.legendItem,e=this.group,f=this.tracker,g=this.dataLabelsGroup,h,k=this.points,i=c.options.chart.ignoreHiddenSeries;h=this.visible;h=(this.visible=a=a===v?!h:a)?"show":"hide";if(e)e[h]();if(f)f[h]();else if(k)for(e=k.length;e--;)if(f=k[e],f.tracker)f.tracker[h]();if(g)g[h]();d&&c.legend.colorizeItem(this,a);
-this.isDirty=!0;this.options.stacking&&n(c.series,function(a){if(a.options.stacking&&a.visible)a.isDirty=!0});if(i)c.isDirtyBox=!0;b!==!1&&c.redraw();N(this,h)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=a===v?!this.selected:a;if(this.checkbox)this.checkbox.checked=a;N(this,a?"select":"unselect")},drawTrackerGroup:function(){var a=this.trackerGroup,b=this.chart;if(this.isCartesian){if(!a)this.trackerGroup=a=b.renderer.g().attr({zIndex:this.options.zIndex||
-1}).add(b.trackerGroup);a.translate(this.xAxis.left,this.yAxis.top)}return a},drawTracker:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,g=f.renderer,h=f.options.tooltip.snap,k=a.tracker,i=b.cursor,i=i&&{cursor:i},j=a.singlePoints,l=a.drawTrackerGroup(),m;if(e&&!c)for(m=e+1;m--;)d[m]==="M"&&d.splice(m+1,0,d[m+1]-h,d[m+2],"L"),(m&&d[m]==="M"||m===e)&&d.splice(m,0,"L",d[m-2]+h,d[m-1]);for(m=0;m<j.length;m++)e=j[m],d.push("M",e.plotX-h,e.plotY,
-"L",e.plotX+h,e.plotY);k?k.attr({d:d}):a.tracker=g.path(d).attr({isTracker:!0,"stroke-linejoin":"bevel",visibility:a.visible?"visible":"hidden",stroke:zb,fill:c?zb:da,"stroke-width":b.lineWidth+(c?0:2*h)}).on(aa?"touchstart":"mouseover",function(){if(f.hoverSeries!==a)a.onMouseOver()}).on("mouseout",function(){if(!b.stickyTracking)a.onMouseOut()}).css(i).add(l)}};L=ca(Z);U.line=L;S.area=y(P,{threshold:0});L=ca(Z,{type:"area",getSegmentPath:function(a){var b=Z.prototype.getSegmentPath.call(this,a),
-c=[].concat(b),d,e=this.options;d=b.length;var f=this.yAxis.getThreshold(e.threshold);d===3&&c.push("L",b[1],b[2]);if(e.stacking&&this.type!=="areaspline")for(d=a.length-1;d>=0;d--)d<a.length-1&&e.step&&c.push(a[d+1].plotX,a[d].yBottom),c.push(a[d].plotX,a[d].yBottom);else c.push("L",a[a.length-1].plotX,f,"L",a[0].plotX,f);this.areaPath=this.areaPath.concat(c);return b},drawGraph:function(){this.areaPath=[];Z.prototype.drawGraph.apply(this);var a=this.areaPath,b=this.options,c=this.area;c?c.animate({d:a}):
-this.area=this.chart.renderer.path(a).attr({fill:p(b.fillColor,wa(this.color).setOpacity(b.fillOpacity||0.75).get())}).add(this.group)},drawLegendSymbol:function(a,b){b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,a.options.symbolWidth,12,2).attr({zIndex:3}).add(b.legendGroup)}});U.area=L;S.spline=y(P);ea=ca(Z,{type:"spline",getPointSpline:function(a,b,c){var d=b.plotX,e=b.plotY,f=a[c-1],g=a[c+1],h,k,i,j;if(c&&c<a.length-1){a=f.plotY;i=g.plotX;var g=g.plotY,l;h=(1.5*d+f.plotX)/2.5;k=(1.5*
-e+a)/2.5;i=(1.5*d+i)/2.5;j=(1.5*e+g)/2.5;l=(j-k)*(i-d)/(i-h)+e-j;k+=l;j+=l;k>a&&k>e?(k=t(a,e),j=2*e-k):k<a&&k<e&&(k=O(a,e),j=2*e-k);j>g&&j>e?(j=t(g,e),k=2*e-j):j<g&&j<e&&(j=O(g,e),k=2*e-j);b.rightContX=i;b.rightContY=j}c?(b=["C",f.rightContX||f.plotX,f.rightContY||f.plotY,h||d,k||e,d,e],f.rightContX=f.rightContY=null):b=["M",d,e];return b}});U.spline=ea;S.areaspline=y(S.area);var Ta=L.prototype,ea=ca(ea,{type:"areaspline",getSegmentPath:Ta.getSegmentPath,drawGraph:Ta.drawGraph});U.areaspline=ea;S.column=
-y(P,{borderColor:"#FFFFFF",borderWidth:1,borderRadius:0,groupPadding:0.2,marker:null,pointPadding:0.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:0.1,shadow:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{y:null,verticalAlign:null},threshold:0});ea=ca(Z,{type:"column",tooltipOutsidePlot:!0,pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color",r:"borderRadius"},init:function(){Z.prototype.init.apply(this,arguments);
-var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0})},translate:function(){var a=this,b=a.chart,c=a.options,d=c.stacking,e=c.borderWidth,f=0,g=a.xAxis,h=g.reversed,k={},i,j;Z.prototype.translate.apply(a);n(b.series,function(b){if(b.type===a.type&&b.visible&&a.options.group===b.options.group)b.options.stacking?(i=b.stackKey,k[i]===v&&(k[i]=f++),j=k[i]):j=f++,b.columnIndex=j});var l=a.points,g=W(g.transA)*(g.ordinalSlope||c.pointRange||g.closestPointRange||1),
-m=g*c.groupPadding,o=(g-2*m)/f,r=c.pointWidth,A=s(r)?(o-r)/2:o*c.pointPadding,q=p(r,o-2*A),C=Ga(t(q,1+2*e)),u=A+(m+((h?f-a.columnIndex:a.columnIndex)||0)*o-g/2)*(h?-1:1),w=a.yAxis.getThreshold(c.threshold),x=p(c.minPointLength,5);n(l,function(c){var f=c.plotY,g=p(c.yBottom,w),h=c.plotX+u,i=Ga(O(f,g)),k=Ga(t(f,g)-i),j=a.yAxis.stacks[(c.y<0?"-":"")+a.stackKey];d&&a.visible&&j&&j[c.x]&&j[c.x].setOffset(u,C);W(k)<x&&x&&(k=x,i=W(i-w)>x?g-x:w-(f<=w?x:0));z(c,{barX:h,barY:i,barW:C,barH:k,pointWidth:q});
-c.shapeType="rect";c.shapeArgs=f=b.renderer.Element.prototype.crisp.call(0,e,h,i,C,k);e%2&&(f.y-=1,f.height+=1);c.trackerArgs=W(k)<3&&y(c.shapeArgs,{height:6,y:i-3})})},getSymbol:function(){},drawLegendSymbol:L.prototype.drawLegendSymbol,drawGraph:function(){},drawPoints:function(){var a=this,b=a.options,c=a.chart.renderer,d,e;n(a.points,function(f){var g=f.plotY;if(g!==v&&!isNaN(g)&&f.y!==null)d=f.graphic,e=f.shapeArgs,d?(Ra(d),d.animate(y(e))):f.graphic=d=c[f.shapeType](e).attr(f.pointAttr[f.selected?
-"select":""]).add(a.group).shadow(b.shadow,null,b.stacking&&!b.borderRadius)})},drawTracker:function(){var a=this,b=a.chart,c=b.renderer,d,e,f=+new Date,g=a.options,h=g.cursor,k=h&&{cursor:h},i=a.drawTrackerGroup(),j,l,m;n(a.points,function(h){e=h.tracker;d=h.trackerArgs||h.shapeArgs;l=h.plotY;m=!a.isCartesian||l!==v&&!isNaN(l);delete d.strokeWidth;if(h.y!==null&&m)e?e.attr(d):h.tracker=c[h.shapeType](d).attr({isTracker:f,fill:zb,visibility:a.visible?"visible":"hidden"}).on(aa?"touchstart":"mouseover",
-function(c){j=c.relatedTarget||c.fromElement;if(b.hoverSeries!==a&&G(j,"isTracker")!==f)a.onMouseOver();h.onMouseOver()}).on("mouseout",function(b){if(!g.stickyTracking&&(j=b.relatedTarget||b.toElement,G(j,"isTracker")!==f))a.onMouseOut()}).css(k).add(h.group||i)})},animate:function(a){var b=this,c=b.points,d=b.options;if(!a)n(c,function(a){var c=a.graphic,a=a.shapeArgs,g=b.yAxis,h=d.threshold;c&&(c.attr({height:0,y:s(h)?g.getThreshold(h):g.translate(g.getExtremes().min,0,1,0,1)}),c.animate({height:a.height,
-y:a.y},d.animation))}),b.animate=null},remove:function(){var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0});Z.prototype.remove.apply(a,arguments)}});U.column=ea;S.bar=y(S.column,{dataLabels:{align:"left",x:5,y:null,verticalAlign:"middle"}});Ta=ca(ea,{type:"bar",inverted:!0});U.bar=Ta;S.scatter=y(P,{lineWidth:0,states:{hover:{lineWidth:0}},tooltip:{headerFormat:'<span style="font-size: 10px; color:{series.color}">{series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}});
-Ta=ca(Z,{type:"scatter",sorted:!1,translate:function(){var a=this;Z.prototype.translate.apply(a);n(a.points,function(b){b.shapeType="circle";b.shapeArgs={x:b.plotX,y:b.plotY,r:a.chart.options.tooltip.snap}})},drawTracker:function(){for(var a=this,b=a.options.cursor,b=b&&{cursor:b},c=a.points,d=c.length,e;d--;)if(e=c[d].graphic)e.element._i=d;a._hasTracking?a._hasTracking=!0:a.group.attr({isTracker:!0}).on(aa?"touchstart":"mouseover",function(b){a.onMouseOver();if(b.target._i!==v)c[b.target._i].onMouseOver()}).on("mouseout",
-function(){if(!a.options.stickyTracking)a.onMouseOut()}).css(b)}});U.scatter=Ta;S.pie=y(P,{borderColor:"#FFFFFF",borderWidth:1,center:["50%","50%"],colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name},y:5},legendType:"point",marker:null,size:"75%",showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}}});P={type:"pie",isCartesian:!1,pointClass:ca(xa,{init:function(){xa.prototype.init.apply(this,arguments);var a=this,b;z(a,{visible:a.visible!==
-!1,name:p(a.name,"Slice")});b=function(){a.slice()};B(a,"select",b);B(a,"unselect",b);return a},setVisible:function(a){var b=this.series.chart,c=this.tracker,d=this.dataLabel,e=this.connector,f=this.shadowGroup,g;g=(this.visible=a=a===v?!this.visible:a)?"show":"hide";this.group[g]();if(c)c[g]();if(d)d[g]();if(e)e[g]();if(f)f[g]();this.legendItem&&b.legend.colorizeItem(this,a)},slice:function(a,b,c){var d=this.series.chart,e=this.slicedTranslation;Ea(c,d);p(b,!0);a=this.sliced=s(a)?a:!this.sliced;
-a={translateX:a?e[0]:d.plotLeft,translateY:a?e[1]:d.plotTop};this.group.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)}}),pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:function(){this.initialColor=this.chart.counters.color},animate:function(){var a=this;n(a.points,function(b){var c=b.graphic,b=b.shapeArgs,d=-Ha/2;c&&(c.attr({r:0,start:d,end:d}),c.animate({r:b.r,start:b.start,end:b.end},a.options.animation))});a.animate=null},setData:function(a,
-b){Z.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();p(b,!0)&&this.chart.redraw()},getCenter:function(){var a=this.options,b=this.chart,c=b.plotWidth,d=b.plotHeight,a=a.center.concat([a.size,a.innerSize||0]),e=O(c,d),f;return va(a,function(a,b){return(f=/%$/.test(a))?[c,d,e,e][b]*F(a)/100:a})},translate:function(){this.generatePoints();var a=0,b=-0.25,c=this.options,d=c.slicedOffset,e=d+c.borderWidth,f,g=this.chart,h,k,i,j=this.points,l=2*Ha,m,o,r,p=c.dataLabels.distance;
-this.center=f=this.getCenter();this.getX=function(a,b){i=R.asin((a-f[1])/(f[2]/2+p));return f[0]+(b?-1:1)*ga(i)*(f[2]/2+p)};n(j,function(b){a+=b.y});n(j,function(c){m=a?c.y/a:0;h=u(b*l*1E3)/1E3;b+=m;k=u(b*l*1E3)/1E3;c.shapeType="arc";c.shapeArgs={x:f[0],y:f[1],r:f[2]/2,innerR:f[3]/2,start:h,end:k};i=(k+h)/2;c.slicedTranslation=va([ga(i)*d+g.plotLeft,ka(i)*d+g.plotTop],u);o=ga(i)*f[2]/2;r=ka(i)*f[2]/2;c.tooltipPos=[f[0]+o*0.7,f[1]+r*0.7];c.labelPos=[f[0]+o+ga(i)*p,f[1]+r+ka(i)*p,f[0]+o+ga(i)*e,f[1]+
-r+ka(i)*e,f[0]+o,f[1]+r,p<0?"center":i<l/4?"left":"right",i];c.percentage=m*100;c.total=a});this.setTooltipPoints()},render:function(){this.getAttribs();this.drawPoints();this.options.enableMouseTracking!==!1&&this.drawTracker();this.drawDataLabels();this.options.animation&&this.animate&&this.animate();this.isDirty=!1},drawPoints:function(){var a=this,b=a.chart,c=b.renderer,d,e,f,g=a.options.shadow,h,k;n(a.points,function(i){e=i.graphic;k=i.shapeArgs;f=i.group;h=i.shadowGroup;if(g&&!h)h=i.shadowGroup=
-c.g("shadow").attr({zIndex:4}).add();if(!f)f=i.group=c.g("point").attr({zIndex:5}).add();d=i.sliced?i.slicedTranslation:[b.plotLeft,b.plotTop];f.translate(d[0],d[1]);h&&h.translate(d[0],d[1]);e?e.animate(k):i.graphic=e=c.arc(k).setRadialReference(a.center).attr(z(i.pointAttr[""],{"stroke-linejoin":"round"})).add(i.group).shadow(g,h);i.visible===!1&&i.setVisible(!1)})},drawDataLabels:function(){var a=this.data,b,c=this.chart,d=this.options.dataLabels,e=p(d.connectorPadding,10),f=p(d.connectorWidth,
-1),g,h,k=p(d.softConnector,!0),i=d.distance,j=this.center,l=j[2]/2,m=j[1],o=i>0,r=[[],[]],A,q,C,s,w=2,x;if(d.enabled){Z.prototype.drawDataLabels.apply(this);n(a,function(a){a.dataLabel&&r[a.labelPos[7]<Ha/2?0:1].push(a)});r[1].reverse();s=function(a,b){return b.y-a.y};for(a=r[0][0]&&r[0][0].dataLabel&&(r[0][0].dataLabel.getBBox().height||21);w--;){var D=[],u=[],H=r[w],v=H.length,t;if(i>0){for(x=m-l-i;x<=m+l+i;x+=a)D.push(x);C=D.length;if(v>C){h=[].concat(H);h.sort(s);for(x=v;x--;)h[x].rank=x;for(x=
-v;x--;)H[x].rank>=C&&H.splice(x,1);v=H.length}for(x=0;x<v;x++){b=H[x];h=b.labelPos;b=9999;for(q=0;q<C;q++)g=W(D[q]-h[1]),g<b&&(b=g,t=q);if(t<x&&D[x]!==null)t=x;else for(C<v-x+t&&D[x]!==null&&(t=C-v+x);D[t]===null;)t++;u.push({i:t,y:D[t]});D[t]=null}u.sort(s)}for(x=0;x<v;x++){b=H[x];h=b.labelPos;g=b.dataLabel;C=b.visible===!1?"hidden":"visible";A=h[1];if(i>0){if(q=u.pop(),t=q.i,q=q.y,A>q&&D[t+1]!==null||A<q&&D[t-1]!==null)q=A}else q=A;A=d.justify?j[0]+(w?-1:1)*(l+i):this.getX(t===0||t===D.length-1?
-A:q,w);g.attr({visibility:C,align:h[6]})[g.moved?"animate":"attr"]({x:A+d.x+({left:e,right:-e}[h[6]]||0),y:q+d.y});g.moved=!0;if(o&&f)g=b.connector,h=k?["M",A+(h[6]==="left"?5:-5),q,"C",A,q,2*h[2]-h[4],2*h[3]-h[5],h[2],h[3],"L",h[4],h[5]]:["M",A+(h[6]==="left"?5:-5),q,"L",h[2],h[3],"L",h[4],h[5]],g?(g.animate({d:h}),g.attr("visibility",C)):b.connector=g=this.chart.renderer.path(h).attr({"stroke-width":f,stroke:d.connectorColor||b.color||"#606060",visibility:C,zIndex:3}).translate(c.plotLeft,c.plotTop).add()}}}},
-drawTracker:ea.prototype.drawTracker,drawLegendSymbol:L.prototype.drawLegendSymbol,getSymbol:function(){}};P=ca(Z,P);U.pie=P;var X=Z.prototype,dc=X.processData,ec=X.generatePoints,fc=X.destroy,gc=X.tooltipHeaderFormatter,P={approximation:"average",groupPixelWidth:2,dateTimeLabelFormats:ha(fb,["%A, %b %e, %H:%M:%S.%L","%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],Za,["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"],La,["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],sa,["%A, %b %e, %H:%M","%A, %b %e, %H:%M",
-"-%H:%M"],fa,["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],Aa,["Week from %A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],Ba,["%B %Y","%B","-%B %Y"],na,["%Y","%Y","-%Y"])},Yb=[[fb,[1,2,5,10,20,25,50,100,200,500]],[Za,[1,2,5,10,15,30]],[La,[1,2,5,10,15,30]],[sa,[1,2,3,4,6,8,12]],[fa,[1]],[Aa,[1]],[Ba,[1,3,6]],[na,null]],Ua={sum:function(a){var b=a.length,c;if(!b&&a.hasNulls)c=null;else if(b)for(c=0;b--;)c+=a[b];return c},average:function(a){var b=a.length,a=Ua.sum(a);typeof a==="number"&&b&&(a/=b);return a},
-open:function(a){return a.length?a[0]:a.hasNulls?null:v},high:function(a){return a.length?Da(a):a.hasNulls?null:v},low:function(a){return a.length?Ma(a):a.hasNulls?null:v},close:function(a){return a.length?a[a.length-1]:a.hasNulls?null:v},ohlc:function(a,b,c,d){a=Ua.open(a);b=Ua.high(b);c=Ua.low(c);d=Ua.close(d);if(typeof a==="number"||typeof b==="number"||typeof c==="number"||typeof d==="number")return[a,b,c,d]}};X.groupData=function(a,b,c,d){var e=this.data,f=this.options.data,g=[],h=[],k=a.length,
-i,j,l=!!b;j=[];var m=[],o=[],n=[],p=typeof d==="function"?d:Ua[d],q;for(q=0;q<=k;q++){for(;c[1]!==v&&a[q]>=c[1]||q===k;)if(i=c.shift(),j=p(j,m,o,n),j!==v&&(g.push(i),h.push(j)),j=[],m=[],o=[],n=[],q===k)break;if(q===k)break;i=l?b[q]:null;if(d==="ohlc"){i=this.cropStart+q;var t=e&&e[i]||this.pointClass.prototype.applyOptions.apply({},[f[i]]);i=t.open;var s=t.high,w=t.low,t=t.close;if(typeof i==="number")j.push(i);else if(i===null)j.hasNulls=!0;if(typeof s==="number")m.push(s);else if(s===null)m.hasNulls=
-!0;if(typeof w==="number")o.push(w);else if(w===null)o.hasNulls=!0;if(typeof t==="number")n.push(t);else if(t===null)n.hasNulls=!0}else if(typeof i==="number")j.push(i);else if(i===null)j.hasNulls=!0}return[g,h]};X.processData=function(){var a=this.options,b=a.dataGrouping,c=b&&b.enabled,d;this.forceCrop=c;if(dc.apply(this,arguments)!==!1&&c){this.destroyGroupedData();var e;e=this.chart;var c=this.processedXData,f=this.processedYData,g=e.plotSizeX,h=this.xAxis,k=p(h.groupPixelWidth,b.groupPixelWidth),
-i=c.length,j=e.series,l=this.pointRange;if(!h.groupPixelWidth){for(e=j.length;e--;)j[e].xAxis===h&&j[e].options.dataGrouping&&(k=t(k,j[e].options.dataGrouping.groupPixelWidth));h.groupPixelWidth=k}if(i>g/k||i&&b.forced){d=!0;this.points=null;e=h.getExtremes();i=e.min;j=e.max;e=h.getGroupIntervalFactor&&h.getGroupIntervalFactor(i,j,c)||1;g=k*(j-i)/g*e;h=(h.getNonLinearTimeTicks||gb)(Cb(g,b.units||Yb),i,j,null,c,this.closestPointRange);f=X.groupData.apply(this,[c,f,h,b.approximation]);c=f[0];f=f[1];
-if(b.smoothed){e=c.length-1;for(c[e]=j;e--&&e>0;)c[e]+=g/2;c[0]=i}this.currentDataGrouping=h.info;if(a.pointRange===null)this.pointRange=h.info.totalRange;this.closestPointRange=h.info.totalRange;this.processedXData=c;this.processedYData=f}else this.currentDataGrouping=null,this.pointRange=l;this.hasGroupedData=d}};X.destroyGroupedData=function(){var a=this.groupedData;n(a||[],function(b,c){b&&(a[c]=b.destroy?b.destroy():null)});this.groupedData=null};X.generatePoints=function(){ec.apply(this);this.destroyGroupedData();
-this.groupedData=this.hasGroupedData?this.points:null};X.tooltipHeaderFormatter=function(a){var b=this.tooltipOptions,c=this.options.dataGrouping,d=b.xDateFormat,e,f=this.xAxis,g,h;if(f&&f.options.type==="datetime"&&c){g=this.currentDataGrouping;c=c.dateTimeLabelFormats;if(g)f=c[g.unitName],g.count===1?d=f[0]:(d=f[1],e=f[2]);else if(!d)for(h in E)if(E[h]>=f.closestPointRange){d=c[h][0];break}d=ua(d,a);e&&(d+=ua(e,a+g.totalRange-1));a=b.headerFormat.replace("{point.key}",d)}else a=gc.apply(this,[a]);
-return a};X.destroy=function(){for(var a=this.groupedData||[],b=a.length;b--;)a[b]&&a[b].destroy();fc.apply(this)};S.line.dataGrouping=S.spline.dataGrouping=S.area.dataGrouping=S.areaspline.dataGrouping=P;S.column.dataGrouping=y(P,{approximation:"sum",groupPixelWidth:10});S.ohlc=y(S.column,{lineWidth:1,dataGrouping:{approximation:"ohlc",enabled:!0,groupPixelWidth:5},tooltip:{pointFormat:'<span style="color:{series.color};font-weight:bold">{series.name}</span><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},
-states:{hover:{lineWidth:3}},threshold:null});var P=ca(xa,{applyOptions:function(a){var b=this.series,c=0;if(typeof a==="object"&&typeof a.length!=="number")z(this,a),this.options=a;else if(a.length){if(a.length===5){if(typeof a[0]==="string")this.name=a[0];else if(typeof a[0]==="number")this.x=a[0];c++}this.open=a[c++];this.high=a[c++];this.low=a[c++];this.close=a[c++]}this.y=this.high;if(this.x===v&&b)this.x=b.autoIncrement();return this},tooltipFormatter:function(){var a=this.series;return['<span style="color:'+
-a.color+';font-weight:bold">',this.name||a.name,"</span><br/>Open: ",this.open,"<br/>High: ",this.high,"<br/>Low: ",this.low,"<br/>Close: ",this.close,"<br/>"].join("")},toYData:function(){return[this.open,this.high,this.low,this.close]}}),Bb=ca(U.column,{type:"ohlc",valueCount:4,pointClass:P,pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},translate:function(){var a=this.yAxis;U.column.prototype.translate.apply(this);n(this.points,function(b){if(b.open!==null)b.plotOpen=a.translate(b.open,
-0,1,0,1);if(b.close!==null)b.plotClose=a.translate(b.close,0,1,0,1)})},drawPoints:function(){var a=this,b=a.chart,c,d,e,f,g,h,k,i;n(a.points,function(j){if(j.plotY!==v)k=j.graphic,c=j.pointAttr[j.selected?"selected":""],f=c["stroke-width"]%2/2,i=u(j.plotX)+f,g=u(j.barW/2),h=["M",i,u(j.yBottom),"L",i,u(j.plotY)],j.open!==null&&(d=u(j.plotOpen)+f,h.push("M",i,d,"L",i-g,d)),j.close!==null&&(e=u(j.plotClose)+f,h.push("M",i,e,"L",i+g,e)),k?k.animate({d:h}):j.graphic=b.renderer.path(h).attr(c).add(a.group)})},
-animate:null});U.ohlc=Bb;S.candlestick=y(S.column,{dataGrouping:{approximation:"ohlc",enabled:!0},lineColor:"black",lineWidth:1,states:{hover:{lineWidth:2}},tooltip:S.ohlc.tooltip,threshold:null,upColor:"white"});P=ca(Bb,{type:"candlestick",pointAttrToOptions:{fill:"color",stroke:"lineColor","stroke-width":"lineWidth"},getAttribs:function(){Bb.prototype.getAttribs.apply(this,arguments);var a=this.options,b=a.states,a=a.upColor,c=y(this.pointAttr);c[""].fill=a;c.hover.fill=b.hover.upColor||a;c.select.fill=
-b.select.upColor||a;n(this.points,function(a){if(a.open<a.close)a.pointAttr=c})},drawPoints:function(){var a=this,b=a.chart,c,d,e,f,g,h,k,i,j,l;n(a.points,function(m){i=m.graphic;if(m.plotY!==v)c=m.pointAttr[m.selected?"selected":""],h=c["stroke-width"]%2/2,k=u(m.plotX)+h,d=u(m.plotOpen)+h,e=u(m.plotClose)+h,f=R.min(d,e),g=R.max(d,e),l=u(m.barW/2),j=["M",k-l,g,"L",k-l,f,"L",k+l,f,"L",k+l,g,"L",k-l,g,"M",k,g,"L",k,u(m.yBottom),"M",k,f,"L",k,u(m.plotY),"Z"],i?i.animate({d:j}):m.graphic=b.renderer.path(j).attr(c).add(a.group)})}});
-U.candlestick=P;var nb=qa.prototype.symbols;S.flags=y(S.column,{dataGrouping:null,fillColor:"white",lineWidth:1,pointRange:0,shape:"flag",stackDistance:7,states:{hover:{lineColor:"black",fillColor:"#FCFFC5"}},style:{fontSize:"11px",fontWeight:"bold",textAlign:"center"},threshold:null,y:-30});U.flags=ca(U.column,{type:"flags",sorted:!1,noSharedTooltip:!0,forceCrop:!0,init:Z.prototype.init,pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth",r:"radius"},translate:function(){U.column.prototype.translate.apply(this);
-var a=this.chart,b=this.points,c=b.length-1,d,e,f=this.options.onSeries,f=(d=f&&a.get(f))&&d.options.step,g=d&&d.points,h=g&&g.length,k=this.xAxis.getExtremes(),i,j,l;if(d&&d.visible&&h){j=g[h-1].x;for(b.sort(function(a,b){return a.x-b.x});h--&&b[c];)if(d=b[c],i=g[h],i.x<=d.x&&i.plotY!==v){if(d.x<=j)d.plotY=i.plotY,i.x<d.x&&!f&&(l=g[h+1])&&l.plotY!==v&&(d.plotY+=(d.x-i.x)/(l.x-i.x)*(l.plotY-i.plotY));c--;h++;if(c<0)break}}n(b,function(c,d){if(c.plotY===v)c.x>=k.min&&c.x<=k.max?c.plotY=a.plotHeight:
-c.shapeArgs={};if((e=b[d-1])&&e.plotX===c.plotX){if(e.stackIndex===v)e.stackIndex=0;c.stackIndex=e.stackIndex+1}})},drawPoints:function(){var a,b=this.points,c=this.chart.renderer,d,e,f=this.options,g=f.y,h=f.shape,k,i,j,l,m=f.lineWidth%2/2,o;for(j=b.length;j--;)if(l=b[j],d=l.plotX+m,i=l.stackIndex,e=l.plotY,e!==v&&(e=l.plotY+g+m-(i!==v&&i*f.stackDistance)),k=i?v:l.plotX+m,o=i?v:l.plotY,i=l.graphic,a=l.tracker,e!==v)a=l.pointAttr[l.selected?"select":""],i?i.attr({x:d,y:e,r:a.r,anchorX:k,anchorY:o}):
-i=l.graphic=c.label(l.options.title||f.title||"A",d,e,h,k,o).css(y(f.style,l.style)).attr(a).attr({align:h==="flag"?"left":"center",width:f.width,height:f.height}).add(this.group).shadow(f.shadow),k=i.box,i=k.getBBox(),l.shapeArgs=z(i,{x:d-(h==="flag"?0:k.attr("width")/2),y:e});else if(i)l.graphic=i.destroy(),a&&a.attr("y",-9999)},drawTracker:function(){U.column.prototype.drawTracker.apply(this);n(this.points,function(a){B(a.tracker.element,"mouseover",function(){a.graphic.toFront()})})},tooltipFormatter:function(a){return a.point.text},
-animate:function(){}});nb.flag=function(a,b,c,d,e){var f=e&&e.anchorX||a,e=e&&e.anchorY||b;return["M",f,e,"L",a,b+d,a,b,a+c,b,a+c,b+d,a,b+d,"M",f,e,"Z"]};n(["circle","square"],function(a){nb[a+"pin"]=function(b,c,d,e,f){var g=f&&f.anchorX,f=f&&f.anchorY,b=nb[a](b,c,d,e);g&&f&&b.push("M",g,c+e,"L",g,f);return b}});Qa===Ja&&n(["flag","circlepin","squarepin"],function(a){Ja.prototype.symbols[a]=nb[a]});var ob=aa?"touchstart":"mousedown",Zb=aa?"touchmove":"mousemove",$b=aa?"touchend":"mouseup",P=ha("linearGradient",
-{x1:0,y1:0,x2:0,y2:1},"stops",[[0,"#FFF"],[1,"#CCC"]]),L=[].concat(Yb);L[4]=[fa,[1,2,3,4]];L[5]=[Aa,[1,2,3]];z(T,{navigator:{handles:{backgroundColor:"#FFF",borderColor:"#666"},height:40,margin:10,maskFill:"rgba(255, 255, 255, 0.75)",outlineColor:"#444",outlineWidth:1,series:{type:"areaspline",color:"#4572A7",compare:null,fillOpacity:0.4,dataGrouping:{approximation:"average",groupPixelWidth:2,smoothed:!0,units:L},dataLabels:{enabled:!1},id:"highcharts-navigator-series",lineColor:"#4572A7",lineWidth:1,
-marker:{enabled:!1},pointRange:0,shadow:!1},xAxis:{tickWidth:0,lineWidth:0,gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",x:3,y:-4}},yAxis:{gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:0.1,maxPadding:0.1,labels:{enabled:!1},title:{text:null},tickWidth:0}},scrollbar:{height:aa?20:14,barBackgroundColor:P,barBorderRadius:2,barBorderWidth:1,barBorderColor:"#666",buttonArrowColor:"#666",buttonBackgroundColor:P,buttonBorderColor:"#666",buttonBorderRadius:2,buttonBorderWidth:1,rifleColor:"#666",
-trackBackgroundColor:ha("linearGradient",{x1:0,y1:0,x2:0,y2:1},"stops",[[0,"#EEE"],[1,"#FFF"]]),trackBorderColor:"#CCC",trackBorderWidth:1}});Lb.prototype={getAxisTop:function(a){return this.navigatorOptions.top||a-this.height-this.scrollbarHeight-this.chart.options.chart.spacingBottom},drawHandle:function(a,b){var c=this.chart.renderer,d=this.elementsToDestroy,e=this.handles,f=this.navigatorOptions.handles,f={fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":1},g;this.rendered||(e[b]=c.g().css({cursor:"e-resize"}).attr({zIndex:4-
-b}).add(),g=c.rect(-4.5,0,9,16,3,1).attr(f).add(e[b]),d.push(g),g=c.path(["M",-1.5,4,"L",-1.5,12,"M",0.5,4,"L",0.5,12]).attr(f).add(e[b]),d.push(g));e[b].translate(this.scrollerLeft+this.scrollbarHeight+parseInt(a,10),this.top+this.height/2-8)},drawScrollbarButton:function(a){var b=this.chart.renderer,c=this.elementsToDestroy,d=this.scrollbarButtons,e=this.scrollbarHeight,f=this.scrollbarOptions,g;this.rendered||(d[a]=b.g().add(this.scrollbarGroup),g=b.rect(-0.5,-0.5,e+1,e+1,f.buttonBorderRadius,
-f.buttonBorderWidth).attr({stroke:f.buttonBorderColor,"stroke-width":f.buttonBorderWidth,fill:f.buttonBackgroundColor}).add(d[a]),c.push(g),g=b.path(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,e/2+(a?2:-2),e/2]).attr({fill:f.buttonArrowColor}).add(d[a]),c.push(g));a&&d[a].attr({translateX:this.scrollerWidth-e})},render:function(a,b,c,d){var e=this.chart,f=e.renderer,g,h,k,i,j=this.scrollbarGroup,l=this.scrollbar,m=this.xAxis,o=this.scrollbarTrack,n=this.scrollbarHeight,A=this.scrollbarEnabled,
-q=this.navigatorOptions,s=this.scrollbarOptions,v=this.height,w=this.top,x=this.navigatorEnabled,D=q.outlineWidth,K=D/2,H=this.outlineHeight,y=s.barBorderRadius,z=s.barBorderWidth,B=w+K;if(!isNaN(a)){this.navigatorLeft=g=p(m.left,e.plotLeft+n);this.navigatorWidth=h=p(m.len,e.plotWidth-2*n);this.scrollerLeft=k=g-n;this.scrollerWidth=i=i=h+2*n;if(m.getExtremes){var E=e.xAxis[0].getExtremes(),e=E.dataMin===null,G=m.getExtremes(),I=O(E.dataMin,G.dataMin),E=t(E.dataMax,G.dataMax);!e&&(I!==G.min||E!==G.max)&&
-m.setExtremes(I,E,!0,!1)}c=p(c,m.translate(a));d=p(d,m.translate(b));this.zoomedMin=a=F(O(c,d));this.zoomedMax=d=F(t(c,d));this.range=c=d-a;if(!this.rendered){if(x)this.leftShade=f.rect().attr({fill:q.maskFill,zIndex:3}).add(),this.rightShade=f.rect().attr({fill:q.maskFill,zIndex:3}).add(),this.outline=f.path().attr({"stroke-width":D,stroke:q.outlineColor,zIndex:3}).add();if(A)this.scrollbarGroup=j=f.g().add(),l=s.trackBorderWidth,this.scrollbarTrack=o=f.rect().attr({y:-l%2/2,fill:s.trackBackgroundColor,
-stroke:s.trackBorderColor,"stroke-width":l,r:s.trackBorderRadius||0,height:n}).add(j),this.scrollbar=l=f.rect().attr({y:-z%2/2,height:n,fill:s.barBackgroundColor,stroke:s.barBorderColor,"stroke-width":z,r:y}).add(j),this.scrollbarRifles=f.path().attr({stroke:s.rifleColor,"stroke-width":1}).add(j)}x&&(this.leftShade.attr({x:g,y:w,width:a,height:v}),this.rightShade.attr({x:g+d,y:w,width:h-d,height:v}),this.outline.attr({d:["M",k,B,"L",g+a+K,B,g+a+K,B+H-n,"M",g+d-K,B+H-n,"L",g+d-K,B,k+i,B]}),this.drawHandle(a+
-K,0),this.drawHandle(d+K,1));A&&(this.drawScrollbarButton(0),this.drawScrollbarButton(1),j.translate(k,u(B+v)),o.attr({width:i}),l.attr({x:u(n+a)+z%2/2,width:c-z}),f=n+a+c/2-0.5,this.scrollbarRifles.attr({d:["M",f-3,n/4,"L",f-3,2*n/3,"M",f,n/4,"L",f,2*n/3,"M",f+3,n/4,"L",f+3,2*n/3],visibility:c>12?"visible":"hidden"}));this.rendered=!0}},addEvents:function(){var a=this.chart;B(a.container,ob,this.mouseDownHandler);B(a.container,Zb,this.mouseMoveHandler);B(document,$b,this.mouseUpHandler)},removeEvents:function(){var a=
-this.chart;Q(a.container,ob,this.mouseDownHandler);Q(a.container,Zb,this.mouseMoveHandler);Q(document,$b,this.mouseUpHandler);this.navigatorEnabled&&Q(this.baseSeries,"updatedData",this.updatedDataHandler)},init:function(){var a=this,b=a.chart,c,d,e=a.scrollbarHeight,f=a.navigatorOptions,g=a.height,h=a.top,k,i,j,l=document.body.style,m,o=a.baseSeries,n;a.mouseDownHandler=function(d){var d=b.tracker.normalizeMouseEvent(d),e=a.zoomedMin,f=a.zoomedMax,h=a.top,k=a.scrollbarHeight,j=a.scrollerLeft,o=a.scrollerWidth,
-n=a.navigatorLeft,p=a.navigatorWidth,r=a.range,q=d.chartX,s=d.chartY,d=aa?10:7;if(s>h&&s<h+g+k)(h=!a.scrollbarEnabled||s<h+g)&&R.abs(q-e-n)<d?(a.grabbedLeft=!0,a.otherHandlePos=f):h&&R.abs(q-f-n)<d?(a.grabbedRight=!0,a.otherHandlePos=e):q>n+e&&q<n+f?(a.grabbedCenter=q,m=l.cursor,l.cursor="ew-resize",i=q-e):q>j&&q<j+o&&(f=h?q-n-r/2:q<n?e-O(10,r):q>j+o-k?e+O(10,r):q<n+e?e-r:f,f<0?f=0:f+r>p&&(f=p-r),f!==e&&b.xAxis[0].setExtremes(c.translate(f,!0),c.translate(f+r,!0),!0,!1))};a.mouseMoveHandler=function(c){var d=
-a.scrollbarHeight,e=a.navigatorLeft,f=a.navigatorWidth,g=a.scrollerLeft,h=a.scrollerWidth,k=a.range,c=b.tracker.normalizeMouseEvent(c),c=c.chartX;c<e?c=e:c>g+h-d&&(c=g+h-d);a.grabbedLeft?(j=!0,a.render(0,0,c-e,a.otherHandlePos)):a.grabbedRight?(j=!0,a.render(0,0,a.otherHandlePos,c-e)):a.grabbedCenter&&(j=!0,c<i?c=i:c>f+i-k&&(c=f+i-k),a.render(0,0,c-i,c-i+k))};a.mouseUpHandler=function(){var d=a.zoomedMin,e=a.zoomedMax;j&&b.xAxis[0].setExtremes(c.translate(d,!0),c.translate(e,!0),!0,!1);a.grabbedLeft=
-a.grabbedRight=a.grabbedCenter=j=i=null;l.cursor=m};a.updatedDataHandler=function(){var c=o.xAxis,d=c.getExtremes(),e=d.min,f=d.max,g=d.dataMin,d=d.dataMax,h=f-e,i,j,l,m,q;i=k.xData;var p=!!c.setExtremes;j=f>=i[i.length-1];i=e<=g;if(!n)k.options.pointStart=o.xData[0],k.setData(o.options.data,!1),q=!0;i&&(m=g,l=m+h);j&&(l=d,i||(m=t(l-h,k.xData[0])));p&&(i||j)?c.setExtremes(m,l,!0,!1):(q&&b.redraw(!1),a.render(t(e,g),O(f,d)))};var p=b.xAxis.length,q=b.yAxis.length,s=b.setSize;b.extraBottomMargin=a.outlineHeight+
-f.margin;a.top=h=a.getAxisTop(b.chartHeight);if(a.navigatorEnabled){var v=o.options,w=v.data,u=f.series;n=u.data;v.data=u.data=null;a.xAxis=c=new bb(b,y({ordinal:o.xAxis.options.ordinal},f.xAxis,{isX:!0,type:"datetime",index:p,height:g,top:h,offset:0,offsetLeft:e,offsetRight:-e,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1}));a.yAxis=d=new bb(b,y(f.yAxis,{alignTicks:!1,height:g,top:h,offset:0,index:q,zoomEnabled:!1}));f=y(o.options,u,{threshold:null,clip:!1,enableMouseTracking:!1,
-group:"nav",padXAxis:!1,xAxis:p,yAxis:q,name:"Navigator",showInLegend:!1,isInternal:!0,visible:!0});v.data=w;u.data=n;f.data=n||w;k=b.initSeries(f);B(o,"updatedData",a.updatedDataHandler)}else a.xAxis=c={translate:function(a,c){var d=b.xAxis[0].getExtremes(),f=b.plotWidth-2*e,g=d.dataMin,d=d.dataMax-g;return c?a*d/f+g:f*(a-g)/d}};a.series=k;b.setSize=function(e,f,g){a.top=h=a.getAxisTop(f);if(c&&d)c.options.top=d.options.top=h;s.call(b,e,f,g)};a.addEvents()},destroy:function(){this.removeEvents();
-n([this.xAxis,this.yAxis,this.leftShade,this.rightShade,this.outline,this.scrollbarTrack,this.scrollbarRifles,this.scrollbarGroup,this.scrollbar],function(a){a&&a.destroy&&a.destroy()});this.xAxis=this.yAxis=this.leftShade=this.rightShade=this.outline=this.scrollbarTrack=this.scrollbarRifles=this.scrollbarGroup=this.scrollbar=null;n([this.scrollbarButtons,this.handles,this.elementsToDestroy],function(a){ta(a)})}};Highcharts.Scroller=Lb;z(T,{rangeSelector:{buttonTheme:{width:28,height:16,padding:1,
-r:0,zIndex:7}}});T.lang=y(T.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From:",rangeSelectorTo:"To:"});Mb.prototype={clickButton:function(a,b,c){var d=this,e=d.chart,f=d.buttons,g=e.xAxis[0],h=g&&g.getExtremes(),k=e.scroller&&e.scroller.xAxis,i=(k=k&&k.getExtremes&&k.getExtremes())&&k.dataMax,j=h&&h.dataMin,l=h&&h.dataMax,k=O(j,p(k&&k.dataMin,j)),i=t(l,p(i,l)),m,n=g&&O(h.max,i),h=new Date(n),l=b.type,j=b.count,r,s,q={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(!(k===
-null||i===null||a===d.selected))q[l]?(r=q[l]*j,m=t(n-r,k)):l==="month"?(h.setMonth(h.getMonth()-j),m=t(h.getTime(),k),r=2592E6*j):l==="ytd"?(h=new Date(0),l=new Date(i),s=l.getFullYear(),h.setFullYear(s),String(s)!==ua("%Y",h)&&h.setFullYear(s-1),m=s=t(k||0,h.getTime()),l=l.getTime(),n=O(i||l,l)):l==="year"?(h.setFullYear(h.getFullYear()-j),m=t(k,h.getTime()),r=31536E6*j):l==="all"&&g&&(m=k,n=i),f[a]&&f[a].setState(2),g?setTimeout(function(){g.setExtremes(m,n,p(c,1),0,{rangeSelectorButton:b});d.selected=
-a},1):(e=e.options.xAxis,e[0]=y(e[0],{range:r,min:s}),d.selected=a)},init:function(a){var b=this,c=b.chart,d=c.options.rangeSelector,a=d.buttons||a,e=b.buttons,f=b.leftBox,g=b.rightBox,d=d.selected;c.extraTopMargin=25;b.buttonOptions=a;b.mouseDownHandler=function(){f&&f.blur();g&&g.blur()};B(c.container,ob,b.mouseDownHandler);d!==v&&a[d]&&this.clickButton(d,a[d],!1);B(c,"load",function(){B(c.xAxis[0],"afterSetExtremes",function(){e[b.selected]&&!c.renderer.forExport&&e[b.selected].setState(0);b.selected=
-null})})},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,c=a.hasFocus?c.inputEditDateFormat||"%Y-%m-%d":c.inputDateFormat||"%b %e, %Y";if(b)a.HCTime=b;a.value=ua(c,a.HCTime)},drawInput:function(a){var b=this,c=b.chart,d=c.options.rangeSelector,e=b.div,f=a==="min",g;b.boxSpanElements[a]=V("span",{innerHTML:T.lang[f?"rangeSelectorFrom":"rangeSelectorTo"]},d.labelStyle,e);g=V("input",{name:a,className:"highcharts-range-selector",type:"text"},z({width:"80px",height:"16px",border:"1px solid silver",
-marginLeft:"5px",marginRight:f?"5px":"0",textAlign:"center"},d.inputStyle),e);g.onfocus=g.onblur=function(a){a=a||window.event||{};g.hasFocus=a.type==="focus";b.setInputValue(g)};g.onchange=function(){var a=g.value,d=Date.parse(a),e=c.xAxis[0].getExtremes();isNaN(d)&&(d=a.split("-"),d=Date.UTC(F(d[0]),F(d[1])-1,F(d[2])));if(!isNaN(d)&&(f&&d>=e.dataMin&&d<=b.rightBox.HCTime||!f&&d<=e.dataMax&&d>=b.leftBox.HCTime))c.xAxis[0].setExtremes(f?d:e.min,f?e.max:d)};return g},render:function(a,b){var c=this,
-d=c.chart,e=d.renderer,f=d.container,g=d.options.rangeSelector,h=c.buttons,k=T.lang,i=c.div,i=d.options.chart.style,j=g.buttonTheme,l=g.inputEnabled!==!1,m=j&&j.states,o=d.plotLeft,p;if(!c.rendered&&(c.zoomText=e.text(k.rangeSelectorZoom,o,d.plotTop-10).css(g.labelStyle).add(),p=o+c.zoomText.getBBox().width+5,n(c.buttonOptions,function(a,b){h[b]=e.button(a.text,p,d.plotTop-25,function(){c.clickButton(b,a);c.isActive=!0},j,m&&m.hover,m&&m.select).css({textAlign:"center"}).add();p+=h[b].width+(g.buttonSpacing||
-0);c.selected===b&&h[b].setState(2)}),l))c.divRelative=i=V("div",null,{position:"relative",height:0,fontFamily:i.fontFamily,fontSize:i.fontSize,zIndex:1}),f.parentNode.insertBefore(i,f),c.divAbsolute=c.div=i=V("div",null,z({position:"absolute",top:d.plotTop-25+"px",right:d.chartWidth-d.plotLeft-d.plotWidth+"px"},g.inputBoxStyle),i),c.leftBox=c.drawInput("min"),c.rightBox=c.drawInput("max");l&&(c.setInputValue(c.leftBox,a),c.setInputValue(c.rightBox,b));c.rendered=!0},destroy:function(){var a=this.leftBox,
-b=this.rightBox,c=this.boxSpanElements,d=this.divRelative,e=this.divAbsolute,f=this.zoomText;Q(this.chart.container,ob,this.mouseDownHandler);n([this.buttons],function(a){ta(a)});if(f)this.zoomText=f.destroy();if(a)a.onfocus=a.onblur=a.onchange=null;if(b)b.onfocus=b.onblur=b.onchange=null;n([a,b,c.min,c.max,e,d],function(a){Na(a)});this.leftBox=this.rightBox=this.boxSpanElements=this.div=this.divAbsolute=this.divRelative=null}};Highcharts.RangeSelector=Mb;cb.prototype.callbacks.push(function(a){function b(){f=
-a.xAxis[0].getExtremes();g.render(t(f.min,f.dataMin),O(f.max,f.dataMax))}function c(){f=a.xAxis[0].getExtremes();h.render(f.min,f.max)}function d(a){g.render(a.min,a.max)}function e(a){h.render(a.min,a.max)}var f,g=a.scroller,h=a.rangeSelector;g&&(B(a.xAxis[0],"afterSetExtremes",d),B(a,"resize",b),b());h&&(B(a.xAxis[0],"afterSetExtremes",e),B(a,"resize",c),c());B(a,"destroy",function(){g&&(Q(a,"resize",b),Q(a.xAxis[0],"afterSetExtremes",d));h&&(Q(a,"resize",c),Q(a.xAxis[0],"afterSetExtremes",e))})});
-Highcharts.StockChart=function(a,b){var c=a.series,d,e={marker:{enabled:!1,states:{hover:{enabled:!0,radius:5}}},shadow:!1,states:{hover:{lineWidth:2}},dataGrouping:{enabled:!0}};a.xAxis=va(la(a.xAxis||{}),function(a){return y({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},a,{type:"datetime",categories:null})});a.yAxis=va(la(a.yAxis||{}),function(a){d=a.opposite;return y({labels:{align:d?"right":"left",x:d?-2:2,y:-2},showLastLabel:!1,title:{text:null}},
-a)});a.series=null;a=y({chart:{panning:!0},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:e,spline:e,area:e,areaspline:e,column:{shadow:!1,borderWidth:0,dataGrouping:{enabled:!0}}}},a,{chart:{inverted:!1}});a.series=c;return new cb(a,b)};var hc=X.init,ic=X.processData,jc=xa.prototype.tooltipFormatter;X.init=function(){hc.apply(this,arguments);var a=this.options.compare;if(a)this.modifyValue=
-function(b,c){var d=this.compareValue,b=a==="value"?b-d:b=100*(b/d)-100;if(c)c.change=b;return b}};X.processData=function(){ic.apply(this,arguments);if(this.options.compare)for(var a=0,b=this.processedXData,c=this.processedYData,d=c.length,e=this.xAxis.getExtremes().min;a<d;a++)if(typeof c[a]==="number"&&b[a]>=e){this.compareValue=c[a];break}};xa.prototype.tooltipFormatter=function(a){a=a.replace("{point.change}",(this.change>0?"+":"")+Ya(this.change,this.series.tooltipOptions.changeDecimals||2));
-return jc.apply(this,[a])};(function(){var a=X.init,b=X.getSegments;X.init=function(){var b,d;a.apply(this,arguments);b=this.chart;(d=this.xAxis)&&d.options.ordinal&&B(this,"updatedData",function(){delete d.ordinalIndex});if(d&&d.options.ordinal&&!d.hasOrdinalExtension){d.hasOrdinalExtension=!0;d.beforeSetTickPositions=function(){var a,b=[],c=!1,e,i=this.getExtremes(),j=i.min,i=i.max,l;if(this.options.ordinal){n(this.series,function(c,d){if(c.visible!==!1&&(b=b.concat(c.processedXData),a=b.length,
-d&&a)){b.sort(function(a,b){return a-b});for(d=a-1;d--;)b[d]===b[d+1]&&b.splice(d,1)}});a=b.length;if(a>2){e=b[1]-b[0];for(l=a-1;l--&&!c;)b[l+1]-b[l]!==e&&(c=!0)}c?(this.ordinalPositions=b,c=d.val2lin(j,!0),e=d.val2lin(i,!0),this.ordinalSlope=i=(i-j)/(e-c),this.ordinalOffset=j-c*i):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=v}};d.val2lin=function(a,b){var c=this.ordinalPositions;if(c){var d=c.length,e,j;for(e=d;e--;)if(c[e]===a){j=e;break}for(e=d-1;e--;)if(a>c[e]||e===0){c=(a-c[e])/
-(c[e+1]-c[e]);j=e+c;break}return b?j:this.ordinalSlope*(j||0)+this.ordinalOffset}else return a};d.lin2val=function(a,b){var c=this.ordinalPositions;if(c){var d=this.ordinalSlope,e=this.ordinalOffset,j=c.length-1,l,m;if(b)a<0?a=c[0]:a>j?a=c[j]:(j=$(a),m=a-j);else for(;j--;)if(l=d*j+e,a>=l){d=d*(j+1)+e;m=(a-l)/(d-l);break}return m!==v&&c[j]!==v?c[j]+(m?m*(c[j+1]-c[j]):0):a}else return a};d.getExtendedPositions=function(){var a=d.series[0].currentDataGrouping,e=d.ordinalIndex,h=a?a.count+a.unitName:
-"raw",k=d.getExtremes(),i,j;if(!e)e=d.ordinalIndex={};if(!e[h])i={series:[],getExtremes:function(){return{min:k.dataMin,max:k.dataMax}},options:{ordinal:!0}},n(d.series,function(d){j={xAxis:i,xData:d.xData,chart:b,destroyGroupedData:Rb};j.options={dataGrouping:a?{enabled:!0,forced:!0,approximation:"open",units:[[a.unitName,[a.count]]]}:{enabled:!1}};d.processData.apply(j);i.series.push(j)}),d.beforeSetTickPositions.apply(i),e[h]=i.ordinalPositions;return e[h]};d.getGroupIntervalFactor=function(a,
-b,c){for(var d=0,e=c.length,j=[];d<e-1;d++)j[d]=c[d+1]-c[d];j.sort(function(a,b){return a-b});c=j[$(e/2)];return e*c/(b-a)};d.postProcessTickInterval=function(a){var b=this.ordinalSlope;return b?a/(b/d.closestPointRange):a};d.getNonLinearTimeTicks=function(a,b,c,e,i,j,l){var m=0,n=0,p,t={},q,u,y,w=[],x=d.options.tickPixelInterval;if(!i||b===v)return gb(a,b,c,e);for(u=i.length;n<u;n++){y=n&&i[n-1]>c;i[n]<b&&(m=n);if(n===u-1||i[n+1]-i[n]>j*5||y)p=gb(a,i[m],i[n],e),w=w.concat(p),m=n+1;if(y)break}a=p.info;
-if(l&&a.unitRange<=E[sa]){n=w.length-1;for(m=1;m<n;m++)(new Date(w[m]))[Ca]()!==(new Date(w[m-1]))[Ca]()&&(t[w[m]]=fa,q=!0);q&&(t[w[0]]=fa);a.higherRanks=t}w.info=a;if(l&&s(x)){var l=a=w.length,n=[],z;for(q=[];l--;)m=d.translate(w[l]),z&&(q[l]=z-m),n[l]=z=m;q.sort();q=q[$(q.length/2)];q<x*0.6&&(q=null);l=w[a-1]>c?a-1:a;for(z=void 0;l--;)m=n[l],c=z-m,z&&c<x*0.8&&(q===null||c<q*0.8)?(t[w[l]]&&!t[w[l+1]]?(c=l+1,z=m):c=l,w.splice(c,1)):z=m}return w};var e=b.pan;b.pan=function(a){var d=b.xAxis[0],h=!1;
-if(d.options.ordinal&&d.series.length){var k=b.mouseDownX,i=d.getExtremes(),j=i.dataMax,l=i.min,m=i.max,o;o=b.hoverPoints;var p=d.closestPointRange,k=(k-a)/(d.translationSlope*(d.ordinalSlope||p)),s={ordinalPositions:d.getExtendedPositions()},q,p=d.lin2val,u=d.val2lin;if(s.ordinalPositions){if(W(k)>1)o&&n(o,function(a){a.setState()}),k<0?(o=s,s=d.ordinalPositions?d:s):o=d.ordinalPositions?d:s,q=s.ordinalPositions,j>q[q.length-1]&&q.push(j),o=p.apply(o,[u.apply(o,[l,!0])+k,!0]),k=p.apply(s,[u.apply(s,
-[m,!0])+k,!0]),o>O(i.dataMin,l)&&k<t(j,m)&&d.setExtremes(o,k,!0,!1),b.mouseDownX=a,M(b.container,{cursor:"move"})}else h=!0}else h=!0;h&&e.apply(b,arguments)}}};X.getSegments=function(){var a=this,d,e=a.options.gapSize;b.apply(a);if(e)d=a.segments,n(d,function(b,g){for(var h=b.length-1;h--;)b[h+1].x-b[h].x>a.xAxis.closestPointRange*e&&d.splice(g+1,0,b.splice(h+1,b.length-h))})}})();z(Highcharts,{Axis:bb,CanVGRenderer:mb,Chart:cb,Color:wa,Legend:xb,Point:xa,Tick:ab,Tooltip:wb,Renderer:Qa,Series:Z,
-SVGRenderer:qa,VMLRenderer:Ja,dateFormat:ua,pathAnim:db,getOptions:function(){return T},hasBidiBug:bc,numberFormat:Ya,seriesTypes:U,setOptions:function(a){T=y(T,a);Ib();return T},addEvent:B,removeEvent:Q,createElement:V,discardElement:Na,css:M,each:n,extend:z,map:va,merge:y,pick:p,splat:la,extendClass:ca,pInt:F,product:"Highstock",version:"1.1.6"})})();
diff --git a/plugins/redmine_monitoring_controlling/assets/javascripts/jquery.min.js b/plugins/redmine_monitoring_controlling/assets/javascripts/jquery.min.js
deleted file mode 100644
index 198b3ff..0000000
--- a/plugins/redmine_monitoring_controlling/assets/javascripts/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! 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"?"<!doctype html>":"")+"<html><body>"),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;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=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<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\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(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)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(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?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<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",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></: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="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",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="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",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="<div style='width:4px;'></div>",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<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-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<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),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<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=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<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=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;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?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;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){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<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\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;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=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 b<c[3]-0},gt:function(a,b,c){return b>c[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<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=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;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",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 href='#'></a>",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="<p class='TEST'></p>";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="<div class='test e'></div><div class='test'></div>";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;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=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<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-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:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_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<div>","</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></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?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></$2>");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]==="<table>"&&!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<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=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\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/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("<div>").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<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=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<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-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);
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/assets/javascripts/rails.js b/plugins/redmine_monitoring_controlling/assets/javascripts/rails.js
deleted file mode 100755
index 2cbbeeb..0000000
--- a/plugins/redmine_monitoring_controlling/assets/javascripts/rails.js
+++ /dev/null
@@ -1,377 +0,0 @@
-(function($, undefined) {
-
-/**
- * Unobtrusive scripting adapter for jQuery
- *
- * Requires jQuery 1.6.0 or later.
- * https://github.com/rails/jquery-ujs
-
- * Uploading file using rails.js
- * =============================
- *
- * By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
- * in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
- *
- * The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
- *
- * Ex:
- *     $('form').live('ajax:aborted:file', function(event, elements){
- *       // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
- *       // Returning false in this handler tells rails.js to disallow standard form submission
- *       return false;
- *     });
- *
- * The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
- *
- * Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
- * techniques like the iframe method to upload the file instead.
- *
- * Required fields in rails.js
- * ===========================
- *
- * If any blank required inputs (required="required") are detected in the remote form, the whole form submission
- * is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
- *
- * The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
- *
- * !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
- *    get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
- *
- * Ex:
- *     $('form').live('ajax:aborted:required', function(event, elements){
- *       // Returning false in this handler tells rails.js to submit the form anyway.
- *       // The blank required inputs are passed to this function in `elements`.
- *       return ! confirm("Would you like to submit the form with missing info?");
- *     });
- */
-
-  // Shorthand to make it a little easier to call public rails functions from within rails.js
-  var rails;
-
-  $.rails = rails = {
-    // Link elements bound by jquery-ujs
-    linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]',
-
-    // Select elements bound by jquery-ujs
-    inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',
-
-    // Form elements bound by jquery-ujs
-    formSubmitSelector: 'form',
-
-    // Form input elements bound by jquery-ujs
-    formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not(button[type])',
-
-    // Form input elements disabled during form submission
-    disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]',
-
-    // Form input elements re-enabled after form submission
-    enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled',
-
-    // Form required input elements
-    requiredInputSelector: 'input[name][required]:not([disabled]),textarea[name][required]:not([disabled])',
-
-    // Form file input elements
-    fileInputSelector: 'input:file',
-
-    // Link onClick disable selector with possible reenable after remote submission
-    linkDisableSelector: 'a[data-disable-with]',
-
-    // Make sure that every Ajax request sends the CSRF token
-    CSRFProtection: function(xhr) {
-      var token = $('meta[name="csrf-token"]').attr('content');
-      if (token) xhr.setRequestHeader('X-CSRF-Token', token);
-    },
-
-    // Triggers an event on an element and returns false if the event result is false
-    fire: function(obj, name, data) {
-      var event = $.Event(name);
-      obj.trigger(event, data);
-      return event.result !== false;
-    },
-
-    // Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
-    confirm: function(message) {
-      return confirm(message);
-    },
-
-    // Default ajax function, may be overridden with custom function in $.rails.ajax
-    ajax: function(options) {
-      return $.ajax(options);
-    },
-
-    // Default way to get an element's href. May be overridden at $.rails.href.
-    href: function(element) {
-      return element.attr('href');
-    },
-
-    // Submits "remote" forms and links with ajax
-    handleRemote: function(element) {
-      var method, url, data, crossDomain, dataType, options;
-
-      if (rails.fire(element, 'ajax:before')) {
-        crossDomain = element.data('cross-domain') || null;
-        dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType);
-
-        if (element.is('form')) {
-          method = element.attr('method');
-          url = element.attr('action');
-          data = element.serializeArray();
-          // memoized value from clicked submit button
-          var button = element.data('ujs:submit-button');
-          if (button) {
-            data.push(button);
-            element.data('ujs:submit-button', null);
-          }
-        } else if (element.is(rails.inputChangeSelector)) {
-          method = element.data('method');
-          url = element.data('url');
-          data = element.serialize();
-          if (element.data('params')) data = data + "&" + element.data('params');
-        } else {
-          method = element.data('method');
-          url = rails.href(element);
-          data = element.data('params') || null;
-        }
-
-        options = {
-          type: method || 'GET', data: data, dataType: dataType, crossDomain: crossDomain,
-          // stopping the "ajax:beforeSend" event will cancel the ajax request
-          beforeSend: function(xhr, settings) {
-            if (settings.dataType === undefined) {
-              xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
-            }
-            return rails.fire(element, 'ajax:beforeSend', [xhr, settings]);
-          },
-          success: function(data, status, xhr) {
-            element.trigger('ajax:success', [data, status, xhr]);
-          },
-          complete: function(xhr, status) {
-            element.trigger('ajax:complete', [xhr, status]);
-          },
-          error: function(xhr, status, error) {
-            element.trigger('ajax:error', [xhr, status, error]);
-          }
-        };
-        // Only pass url to `ajax` options if not blank
-        if (url) { options.url = url; }
-
-        return rails.ajax(options);
-      } else {
-        return false;
-      }
-    },
-
-    // Handles "data-method" on links such as:
-    // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
-    handleMethod: function(link) {
-      var href = rails.href(link),
-        method = link.data('method'),
-        target = link.attr('target'),
-        csrf_token = $('meta[name=csrf-token]').attr('content'),
-        csrf_param = $('meta[name=csrf-param]').attr('content'),
-        form = $('<form method="post" action="' + href + '"></form>'),
-        metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
-
-      if (csrf_param !== undefined && csrf_token !== undefined) {
-        metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
-      }
-
-      if (target) { form.attr('target', target); }
-
-      form.hide().append(metadata_input).appendTo('body');
-      form.submit();
-    },
-
-    /* Disables form elements:
-      - Caches element value in 'ujs:enable-with' data store
-      - Replaces element text with value of 'data-disable-with' attribute
-      - Sets disabled property to true
-    */
-    disableFormElements: function(form) {
-      form.find(rails.disableSelector).each(function() {
-        var element = $(this), method = element.is('button') ? 'html' : 'val';
-        element.data('ujs:enable-with', element[method]());
-        element[method](element.data('disable-with'));
-        element.prop('disabled', true);
-      });
-    },
-
-    /* Re-enables disabled form elements:
-      - Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)
-      - Sets disabled property to false
-    */
-    enableFormElements: function(form) {
-      form.find(rails.enableSelector).each(function() {
-        var element = $(this), method = element.is('button') ? 'html' : 'val';
-        if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with'));
-        element.prop('disabled', false);
-      });
-    },
-
-   /* For 'data-confirm' attribute:
-      - Fires `confirm` event
-      - Shows the confirmation dialog
-      - Fires the `confirm:complete` event
-
-      Returns `true` if no function stops the chain and user chose yes; `false` otherwise.
-      Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog.
-      Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function
-      return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog.
-   */
-    allowAction: function(element) {
-      var message = element.data('confirm'),
-          answer = false, callback;
-      if (!message) { return true; }
-
-      if (rails.fire(element, 'confirm')) {
-        answer = rails.confirm(message);
-        callback = rails.fire(element, 'confirm:complete', [answer]);
-      }
-      return answer && callback;
-    },
-
-    // Helper function which checks for blank inputs in a form that match the specified CSS selector
-    blankInputs: function(form, specifiedSelector, nonBlank) {
-      var inputs = $(), input,
-        selector = specifiedSelector || 'input,textarea';
-      form.find(selector).each(function() {
-        input = $(this);
-        // Collect non-blank inputs if nonBlank option is true, otherwise, collect blank inputs
-        if (nonBlank ? input.val() : !input.val()) {
-          inputs = inputs.add(input);
-        }
-      });
-      return inputs.length ? inputs : false;
-    },
-
-    // Helper function which checks for non-blank inputs in a form that match the specified CSS selector
-    nonBlankInputs: function(form, specifiedSelector) {
-      return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank
-    },
-
-    // Helper function, needed to provide consistent behavior in IE
-    stopEverything: function(e) {
-      $(e.target).trigger('ujs:everythingStopped');
-      e.stopImmediatePropagation();
-      return false;
-    },
-
-    // find all the submit events directly bound to the form and
-    // manually invoke them. If anyone returns false then stop the loop
-    callFormSubmitBindings: function(form, event) {
-      var events = form.data('events'), continuePropagation = true;
-      if (events !== undefined && events['submit'] !== undefined) {
-        $.each(events['submit'], function(i, obj){
-          if (typeof obj.handler === 'function') return continuePropagation = obj.handler(event);
-        });
-      }
-      return continuePropagation;
-    },
-
-    //  replace element's html with the 'data-disable-with' after storing original html
-    //  and prevent clicking on it
-    disableElement: function(element) {
-      element.data('ujs:enable-with', element.html()); // store enabled state
-      element.html(element.data('disable-with')); // set to disabled state
-      element.bind('click.railsDisable', function(e) { // prevent further clicking
-        return rails.stopEverything(e)
-      });
-    },
-
-    // restore element to its original state which was disabled by 'disableElement' above
-    enableElement: function(element) {
-      if (element.data('ujs:enable-with') !== undefined) {
-        element.html(element.data('ujs:enable-with')); // set to old enabled state
-        // this should be element.removeData('ujs:enable-with')
-        // but, there is currently a bug in jquery which makes hyphenated data attributes not get removed
-        element.data('ujs:enable-with', false); // clean up cache
-      }
-      element.unbind('click.railsDisable'); // enable element
-    }
-
-  };
-
-  $.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
-
-  $(document).delegate(rails.linkDisableSelector, 'ajax:complete', function() {
-      rails.enableElement($(this));
-  });
-
-  $(document).delegate(rails.linkClickSelector, 'click.rails', function(e) {
-    var link = $(this), method = link.data('method'), data = link.data('params');
-    if (!rails.allowAction(link)) return rails.stopEverything(e);
-
-    if (link.is(rails.linkDisableSelector)) rails.disableElement(link);
-
-    if (link.data('remote') !== undefined) {
-      if ( (e.metaKey || e.ctrlKey) && (!method || method === 'GET') && !data ) { return true; }
-
-      if (rails.handleRemote(link) === false) { rails.enableElement(link); }
-      return false;
-
-    } else if (link.data('method')) {
-      rails.handleMethod(link);
-      return false;
-    }
-  });
-
-  $(document).delegate(rails.inputChangeSelector, 'change.rails', function(e) {
-    var link = $(this);
-    if (!rails.allowAction(link)) return rails.stopEverything(e);
-
-    rails.handleRemote(link);
-    return false;
-  });
-
-  $(document).delegate(rails.formSubmitSelector, 'submit.rails', function(e) {
-    var form = $(this),
-      remote = form.data('remote') !== undefined,
-      blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
-      nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
-
-    if (!rails.allowAction(form)) return rails.stopEverything(e);
-
-    // skip other logic when required values are missing or file upload is present
-    if (blankRequiredInputs && form.attr("novalidate") == undefined && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
-      return rails.stopEverything(e);
-    }
-
-    if (remote) {
-      if (nonBlankFileInputs) {
-        return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);
-      }
-
-      // If browser does not support submit bubbling, then this live-binding will be called before direct
-      // bindings. Therefore, we should directly call any direct bindings before remotely submitting form.
-      if (!$.support.submitBubbles && $().jquery < '1.7' && rails.callFormSubmitBindings(form, e) === false) return rails.stopEverything(e);
-
-      rails.handleRemote(form);
-      return false;
-
-    } else {
-      // slight timeout so that the submit button gets properly serialized
-      setTimeout(function(){ rails.disableFormElements(form); }, 13);
-    }
-  });
-
-  $(document).delegate(rails.formInputClickSelector, 'click.rails', function(event) {
-    var button = $(this);
-
-    if (!rails.allowAction(button)) return rails.stopEverything(event);
-
-    // register the pressed submit button
-    var name = button.attr('name'),
-      data = name ? {name:name, value:button.val()} : null;
-
-    button.closest('form').data('ujs:submit-button', data);
-  });
-
-  $(document).delegate(rails.formSubmitSelector, 'ajax:beforeSend.rails', function(event) {
-    if (this == event.target) rails.disableFormElements($(this));
-  });
-
-  $(document).delegate(rails.formSubmitSelector, 'ajax:complete.rails', function(event) {
-    if (this == event.target) rails.enableFormElements($(this));
-  });
-
-})( jQuery );
diff --git a/plugins/redmine_monitoring_controlling/assets/javascripts/thickbox.js b/plugins/redmine_monitoring_controlling/assets/javascripts/thickbox.js
deleted file mode 100644
index 4e8a1b1..0000000
--- a/plugins/redmine_monitoring_controlling/assets/javascripts/thickbox.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Thickbox 3.1 - One Box To Rule Them All.
- * By Cody Lindley (http://www.codylindley.com)
- * Copyright (c) 2007 cody lindley
- * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
-*/
-		  
-var tb_pathToImage = "/plugin_assets/redmine_monitoring_controlling/images/loadingAnimation.gif";
-var TB_closelabel = 'x';
-
-/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
-
-//on page load call tb_init
-$(document).ready(function(){   
-	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
-	imgLoader = new Image();// preload image
-	imgLoader.src = tb_pathToImage;
-});
-
-//add thickbox to href & area elements that have a class of .thickbox
-function tb_init(domChunk){
-	$(domChunk).click(function(){
-	var t = this.title || this.name || null;
-	var a = this.href || this.alt;
-	var g = this.rel || false;
-	tb_show(t,a,g);
-	this.blur();
-	return false;
-	});
-}
-
-function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
-
-	try {
-		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
-			$("body","html").css({height: "100%", width: "100%"});
-			$("html").css("overflow","hidden");
-			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
-				$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
-				$("#TB_overlay").click(tb_remove);
-			}
-		}else{//all others
-			if(document.getElementById("TB_overlay") === null){
-				$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
-				$("#TB_overlay").click(tb_remove);
-			}
-		}
-		
-		if(tb_detectMacXFF()){
-			$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
-		}else{
-			$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
-		}
-		
-		if(caption===null){caption="";}
-		$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
-		$('#TB_load').show();//show loader
-		
-		var baseURL;
-	   if(url.indexOf("?")!==-1){ //ff there is a query string involved
-			baseURL = url.substr(0, url.indexOf("?"));
-	   }else{ 
-	   		baseURL = url;
-	   }
-	   
-	   var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
-	   var urlType = baseURL.toLowerCase().match(urlString);
-
-		if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
-				
-			TB_PrevCaption = "";
-			TB_PrevURL = "";
-			TB_PrevHTML = "";
-			TB_NextCaption = "";
-			TB_NextURL = "";
-			TB_NextHTML = "";
-			TB_imageCount = "";
-			TB_FoundURL = false;
-			if(imageGroup){
-				TB_TempArray = $("a[@rel="+imageGroup+"]").get();
-				for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
-					var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
-						if (!(TB_TempArray[TB_Counter].href == url)) {						
-							if (TB_FoundURL) {
-								TB_NextCaption = TB_TempArray[TB_Counter].title;
-								TB_NextURL = TB_TempArray[TB_Counter].href;
-								TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
-							} else {
-								TB_PrevCaption = TB_TempArray[TB_Counter].title;
-								TB_PrevURL = TB_TempArray[TB_Counter].href;
-								TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
-							}
-						} else {
-							TB_FoundURL = true;
-							TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);											
-						}
-				}
-			}
-
-			imgPreloader = new Image();
-			imgPreloader.onload = function(){		
-			imgPreloader.onload = null;
-				
-			// Resizing large images - orginal by Christian Montoya edited by me.
-			var pagesize = tb_getPageSize();
-			var x = pagesize[0] - 150;
-			var y = pagesize[1] - 150;
-			var imageWidth = imgPreloader.width;
-			var imageHeight = imgPreloader.height;
-			if (imageWidth > x) {
-				imageHeight = imageHeight * (x / imageWidth); 
-				imageWidth = x; 
-				if (imageHeight > y) { 
-					imageWidth = imageWidth * (y / imageHeight); 
-					imageHeight = y; 
-				}
-			} else if (imageHeight > y) { 
-				imageWidth = imageWidth * (y / imageHeight); 
-				imageHeight = y; 
-				if (imageWidth > x) { 
-					imageHeight = imageHeight * (x / imageWidth); 
-					imageWidth = x;
-				}
-			}
-			// End Resizing
-			
-			TB_WIDTH = imageWidth + 30;
-			TB_HEIGHT = imageHeight + 60;
-			$("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>"+TB_closelabel+"</a></div>"); 		
-			
-			$("#TB_closeWindowButton").click(tb_remove);
-			
-			if (!(TB_PrevHTML === "")) {
-				function goPrev(){
-					if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
-					$("#TB_window").remove();
-					$("body").append("<div id='TB_window'></div>");
-					tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
-					return false;	
-				}
-				$("#TB_prev").click(goPrev);
-			}
-			
-			if (!(TB_NextHTML === "")) {		
-				function goNext(){
-					$("#TB_window").remove();
-					$("body").append("<div id='TB_window'></div>");
-					tb_show(TB_NextCaption, TB_NextURL, imageGroup);				
-					return false;	
-				}
-				$("#TB_next").click(goNext);
-				
-			}
-
-			document.onkeydown = function(e){ 	
-				if (e == null) { // ie
-					keycode = event.keyCode;
-				} else { // mozilla
-					keycode = e.which;
-				}
-				if(keycode == 27){ // close
-					tb_remove();
-				} else if(keycode == 190){ // display previous image
-					if(!(TB_NextHTML == "")){
-						document.onkeydown = "";
-						goNext();
-					}
-				} else if(keycode == 188){ // display next image
-					if(!(TB_PrevHTML == "")){
-						document.onkeydown = "";
-						goPrev();
-					}
-				}	
-			};
-			
-			tb_position();
-			$("#TB_load").remove();
-			$("#TB_ImageOff").click(tb_remove);
-			$("#TB_window").css({display:"block"}); //for safari using css instead of show
-			};
-			
-			imgPreloader.src = url;
-		}else{//code to show html
-			
-			var queryString = url.replace(/^[^\?]+\??/,'');
-			var params = tb_parseQuery( queryString );
-
-			TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
-			TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
-			ajaxContentW = TB_WIDTH - 30;
-			ajaxContentH = TB_HEIGHT - 45;
-			
-			if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window		
-					urlNoQuery = url.split('TB_');
-					$("#TB_iframeContent").remove();
-					if(params['modal'] != "true"){//iframe no modal
-						$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>"+TB_closelabel+"</a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
-					}else{//iframe modal
-					$("#TB_overlay").unbind();
-						$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
-					}
-			}else{// not an iframe, ajax
-					if($("#TB_window").css("display") != "block"){
-						if(params['modal'] != "true"){//ajax no modal
-						$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>"+TB_closelabel+"</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
-						}else{//ajax modal
-						$("#TB_overlay").unbind();
-						$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");	
-						}
-					}else{//this means the window is already up, we are just loading new content via ajax
-						$("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
-						$("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
-						$("#TB_ajaxContent")[0].scrollTop = 0;
-						$("#TB_ajaxWindowTitle").html(caption);
-					}
-			}
-					
-			$("#TB_closeWindowButton").click(tb_remove);
-			
-				if(url.indexOf('TB_inline') != -1){	
-					$("#TB_ajaxContent").append($('#' + params['inlineId']).children());
-					$("#TB_window").unload(function () {
-						$('#' + params['inlineId']).append( $("#TB_ajaxContent").children() ); // move elements back when you're finished
-					});
-					tb_position();
-					$("#TB_load").remove();
-					$("#TB_window").css({display:"block"}); 
-				}else if(url.indexOf('TB_iframe') != -1){
-					tb_position();
-					if($.browser.safari){//safari needs help because it will not fire iframe onload
-						$("#TB_load").remove();
-						$("#TB_window").css({display:"block"});
-					}
-				}else{
-					$("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
-						tb_position();
-						$("#TB_load").remove();
-						tb_init("#TB_ajaxContent a.thickbox");
-						$("#TB_window").css({display:"block"});
-					});
-				}
-			
-		}
-
-		if(!params['modal']){
-			document.onkeyup = function(e){ 	
-				if (e == null) { // ie
-					keycode = event.keyCode;
-				} else { // mozilla
-					keycode = e.which;
-				}
-				if(keycode == 27){ // close
-					tb_remove();
-				}	
-			};
-		}
-		
-	} catch(e) {
-		//nothing here
-	}
-}
-
-//helper functions below
-function tb_showIframe(){
-	$("#TB_load").remove();
-	$("#TB_window").css({display:"block"});
-}
-
-function tb_remove() {
- 	$("#TB_imageOff").unbind("click");
-	$("#TB_closeWindowButton").unbind("click");
-	$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
-	$("#TB_load").remove();
-	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
-		$("body","html").css({height: "auto", width: "auto"});
-		$("html").css("overflow","");
-	}
-	document.onkeydown = "";
-	document.onkeyup = "";
-	return false;
-}
-
-function tb_position() {
-$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
-	if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
-		$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
-	}
-}
-
-function tb_parseQuery ( query ) {
-   var Params = {};
-   if ( ! query ) {return Params;}// return empty object
-   var Pairs = query.split(/[;&]/);
-   for ( var i = 0; i < Pairs.length; i++ ) {
-      var KeyVal = Pairs[i].split('=');
-      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
-      var key = unescape( KeyVal[0] );
-      var val = unescape( KeyVal[1] );
-      val = val.replace(/\+/g, ' ');
-      Params[key] = val;
-   }
-   return Params;
-}
-
-function tb_getPageSize(){
-	var de = document.documentElement;
-	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
-	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
-	arrayPageSize = [w,h];
-	return arrayPageSize;
-}
-
-function tb_detectMacXFF() {
-  var userAgent = navigator.userAgent.toLowerCase();
-  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
-    return true;
-  }
-}
-
-
diff --git a/plugins/redmine_monitoring_controlling/assets/stylesheets/monitoringcontrolling.css b/plugins/redmine_monitoring_controlling/assets/stylesheets/monitoringcontrolling.css
deleted file mode 100644
index 7e24afb..0000000
--- a/plugins/redmine_monitoring_controlling/assets/stylesheets/monitoringcontrolling.css
+++ /dev/null
@@ -1,77 +0,0 @@
-#menu ul {
-    padding:5px;
-    margin:0 auto;
-    float: left;
-    width: 100%;
-    background-color:#EDEDED;
-    list-style:none;
-	text-align: center;
-}
-
-#menu ul li { display: inline;}
-
-#menu ul li a {
-    padding: 2px 10px;
-    float:left;
-    /* visual do link */
-    background-color:#EDEDED;
-    color: #333;
-    text-decoration: none;
-    border-bottom:3px solid #EDEDED;
-}
-
-#menu ul li a:hover {
-    background-color:#D6D6D6;
-    color: #6D6D6D;
-    border-bottom:3px solid #EA0000;
-}
-
-#menu ul li a:active {
-    background-color: #EDEDED;
-    color: #6D6D6D;
-    border-bottom:3px solid #EA0000;
-}
-
-#menu ul li a.menu_selected {
-    padding: 2px 10px;
-    color: #333;
-    background-color:#D6D6D6;
-    color: #6D6D6D;
-    border-bottom:3px solid #0066FF;
-}
-
-div.central_charts {
-    margin-top: 40px;
-}
-
-div.central_chart {
-    min-width: 520px;
-    height: 400px;
-    margin: 0 auto;
-}
-
-div.double_charts {
-    margin-top: 5px;
-    float: left;
-}
-
-div.double_chart {
-    min-width: 520px;
-    height: 400px;
-    margin: 0 auto;
-    float: left;
-}
-
-div.mini_chart {
-    min-width: 350px;
-    height: 400px;
-    margin: 0 auto;
-    float: left;
-}
-
-div.mini_chart_note {
-    min-width: 150px;
-    height: 400px;
-    margin: 0 auto;
-    float: left;
-}
diff --git a/plugins/redmine_monitoring_controlling/assets/stylesheets/thickbox.css b/plugins/redmine_monitoring_controlling/assets/stylesheets/thickbox.css
deleted file mode 100644
index d24b9be..0000000
--- a/plugins/redmine_monitoring_controlling/assets/stylesheets/thickbox.css
+++ /dev/null
@@ -1,163 +0,0 @@
-/* ----------------------------------------------------------------------------------------------------------------*/
-/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
-/* ----------------------------------------------------------------------------------------------------------------*/
-*{padding: 0; margin: 0;}
-
-/* ----------------------------------------------------------------------------------------------------------------*/
-/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
-/* ----------------------------------------------------------------------------------------------------------------*/
-#TB_window {
-	font: 12px Arial, Helvetica, sans-serif;
-	color: #333333;
-}
-
-#TB_secondLine {
-	font: 10px Arial, Helvetica, sans-serif;
-	color:#666666;
-}
-
-#TB_window a:link {color: #666666;}
-#TB_window a:visited {color: #666666;}
-#TB_window a:hover {color: #000;}
-#TB_window a:active {color: #666666;}
-#TB_window a:focus{color: #666666;}
-
-/* ----------------------------------------------------------------------------------------------------------------*/
-/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
-/* ----------------------------------------------------------------------------------------------------------------*/
-#TB_overlay {
-	position: fixed;
-	z-index:100;
-	top: 0px;
-	left: 0px;
-	height:100%;
-	width:100%;
-}
-
-.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
-.TB_overlayBG {
-	background-color:#000;
-	filter:alpha(opacity=75);
-	-moz-opacity: 0.75;
-	opacity: 0.75;
-}
-
-* html #TB_overlay { /* ie6 hack */
-     position: absolute;
-     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
-}
-
-#TB_window {
-	position: fixed;
-	background: #ffffff;
-	z-index: 102;
-	color:#000000;
-	display:none;
-	border: 4px solid #525252;
-	text-align:left;
-	top:50%;
-	left:50%;
-}
-
-* html #TB_window { /* ie6 hack */
-position: absolute;
-margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
-}
-
-#TB_window img#TB_Image {
-	display:block;
-	margin: 15px 0 0 15px;
-	border-right: 1px solid #ccc;
-	border-bottom: 1px solid #ccc;
-	border-top: 1px solid #666;
-	border-left: 1px solid #666;
-}
-
-#TB_caption{
-	height:25px;
-	padding:7px 30px 10px 25px;
-	float:left;
-}
-
-#TB_closeWindow{
-	height:25px;
-	padding:11px 25px 10px 0;
-	float:right;
-}
-
-#TB_closeAjaxWindow{
-	padding:7px 10px 5px 0;
-	margin-bottom:1px;
-	text-align:right;
-	float:right;
-}
-
-#TB_ajaxWindowTitle{
-	float:left;
-	padding:7px 0 5px 10px;
-	margin-bottom:1px;
-}
-
-#TB_title{
-	background-color:#e8e8e8;
-	height:27px;
-}
-
-#TB_ajaxContent{
-	clear:both;
-	padding:2px 15px 15px 15px;
-	overflow:auto;
-	text-align:left;
-	line-height:1.4em;
-}
-
-#TB_ajaxContent.TB_modal{
-	padding:15px;
-}
-
-#TB_ajaxContent p{
-	padding:5px 0px 5px 0px;
-}
-
-#TB_load{
-	position: fixed;
-	display:none;
-	height:13px;
-	width:208px;
-	z-index:103;
-	top: 50%;
-	left: 50%;
-	margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
-}
-
-* html #TB_load { /* ie6 hack */
-position: absolute;
-margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
-}
-
-#TB_HideSelect{
-	z-index:99;
-	position:fixed;
-	top: 0;
-	left: 0;
-	background-color:#fff;
-	border:none;
-	filter:alpha(opacity=0);
-	-moz-opacity: 0;
-	opacity: 0;
-	height:100%;
-	width:100%;
-}
-
-* html #TB_HideSelect { /* ie6 hack */
-     position: absolute;
-     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
-}
-
-#TB_iframeContent{
-	clear:both;
-	border:none;
-	margin-bottom:-1px;
-	margin-top:1px;
-	_margin-bottom:1px;
-}
diff --git a/plugins/redmine_monitoring_controlling/config/locales/de.yml b/plugins/redmine_monitoring_controlling/config/locales/de.yml
deleted file mode 100644
index 309cf44..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/de.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-de:
-    #menu
-    mc_tasksmgmt_menu_label: "Aufgaben verwalten"
-    mc_timemgmt_menu_label: "Zeitverwaltung"
-    mc_humanresourcemgmt_menu_label: "Human Resource verwalten"     
-
-    #permissions
-    permission_view_home_monitoring_controlling: "M&C Aufgabenverwaltung anzeigen"
-    permission_view_mc_time_mgmt_project: "M&C Zeitverwaltung anzeigen"
-    permission_view_mc_human_resource_mgmt_project: "M&C Human Resources anzeigen"    
-        
-    monitoring_controlling_title: "Scrum Statistik"
-    project_module_monitoring_controlling_project: "Monitoring & Controlling by Project"    
-    monitoring_controlling_project: "Monitoring & Controlling by Project"
-    statuses_issue_label_title: "Aufgaben nach Status"
-    categories_issue_label_title: "Aufgaben nach Kategorie"
-    
-    task_management_label_title: "Ausgabenverwaltung"
-    task_manageable_chart_title: "Überschaubare Aufgaben"
-    task_manageable_chart_overdue_title: "Überfällige Aufgaben"
-    
-    manageable_label: "Manageable(s)"
-    unmanageable_label: "Unmanageable(s)"
-    manageable_text_tip: "Aufgabe mit Abgabedatum."
-    unmanageable_text_tip: "Aufgaben ohne Abgabedatum."
-    
-    tasks_label: "Aufgabe(n)"
-    tasksof_label: "Aufgabe(n) von"    
-    
-    overdue_label: "Überfällig"
-    overdue_text: "überfällig(e)"    
-    delivered_label: "Ausgeliefert"
-    tobedelivered_label: "Auszuliefern am"
-    days_late_text: "Tag(e) verpätet"
-
-    close_label: "schliessen"
-
-    # date format
-    default_date_format: "%d.%m.%Y"    
-
-    # time management screen
-    time_mgmt_label_title: "Fällige Stunden und aufgewendete Stunden"
-    time_mgmt_areaspline_yaxis_label: "Zeit (Stunden)"
-    time_mgmt_estimated_label: "Geschätzt"
-    time_mgmt_spent_label: "Abgelaufen"
-    time_mgmt_hours_label: "Stunde(n)"
-    time_mgmt_error_no_issues_found_text: "Keine Tickets gefunden."
-    time_mgmt_error_no_issues_duedate_found_text: "Keine Tickets mit Abgabedatum gefunden."    
-    time_mgmt_version_label_title: "Versionen nach Stunden"
-
-    # human resource management
-    hr_mgmt_label_title: "Human Resources Verwaltung"
-    hr_unassigned_issue_label: "nicht zugeordnet"
-    hr_columnbar_title_label: "Tickets nach Zugehörigkeit"
-    hr_columnbar_yaxis_label: "Anzahl der Tickets"
-    hr_stackedcolumnbar_title_label: "Zugehörigkeit und Tickets by situation"
-    hr_stackedcolumnbar_yaxis_label: "Anzahl der Tickets"
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/locales/en.yml b/plugins/redmine_monitoring_controlling/config/locales/en.yml
deleted file mode 100644
index 0cc5538..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/en.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-en:
-    #menu
-    mc_tasksmgmt_menu_label: "Tasks Management"
-    mc_timemgmt_menu_label: "Time Management"
-    mc_humanresourcemgmt_menu_label: "Human Resource Management"     
-
-    #permissions
-    permission_view_home_monitoring_controlling: "View M&C Tasks Management"
-    permission_view_mc_time_mgmt_project: "View M&C Time Management"
-    permission_view_mc_human_resource_mgmt_project: "View M&C Human Resource Management"    
-        
-    monitoring_controlling_title: "Monitoring & Controlling"
-    project_module_monitoring_controlling_project: "Monitoring & Controlling by Project"    
-    monitoring_controlling_project: "Monitoring & Controlling by Project"
-    statuses_issue_label_title: "Tasks by Statuses"
-    categories_issue_label_title: "Tasks by Category"
-    
-    task_management_label_title: "Tasks Management"
-    task_manageable_chart_title: "Manageable Tasks"
-    task_manageable_chart_overdue_title: "Overdue Tasks"
-    
-    manageable_label: "Manageable(s)"
-    unmanageable_label: "Unmanageable(s)"
-    manageable_text_tip: "Tasks with due date."
-    unmanageable_text_tip: "Tasks without due date."
-    
-    tasks_label: "task(s)"
-    tasksof_label: "task(s) of"    
-    
-    overdue_label: "Overdue"
-    overdue_text: "overdue(s)"    
-    delivered_label: "Delivered"
-    tobedelivered_label: "To be delivered"
-    days_late_text: "day(s) late"
-
-    close_label: "close"
-
-    # date format
-    default_date_format: "%Y/%m/%d"    
-
-    # time management screen
-    time_mgmt_label_title: "Due hours and Spent hours"
-    time_mgmt_areaspline_yaxis_label: "Time (hours)"
-    time_mgmt_estimated_label: "Estimated"
-    time_mgmt_spent_label: "Executed"
-    time_mgmt_hours_label: "hour(s)"
-    time_mgmt_error_no_issues_found_text: "No issues were found."
-    time_mgmt_error_no_issues_duedate_found_text: "No issues with due date registered were found."    
-    time_mgmt_version_label_title: "Versions by Hours"
-
-    # human resource management
-    hr_mgmt_label_title: "Human Resource Management"
-    hr_unassigned_issue_label: "unassigned"
-    hr_columnbar_title_label: "Issues by Assignee"
-    hr_columnbar_yaxis_label: "Count of Issues"
-    hr_stackedcolumnbar_title_label: "Assignee and issues by situation"
-    hr_stackedcolumnbar_yaxis_label: "Count of Issues"
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/locales/fr.yml b/plugins/redmine_monitoring_controlling/config/locales/fr.yml
deleted file mode 100644
index 9c2e823..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/fr.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-fr:
-    #menu
-    mc_tasksmgmt_menu_label: "Gestion des tâches"
-    mc_timemgmt_menu_label: "Gestion du temps"
-    mc_humanresourcemgmt_menu_label: "Gestion des ressources humaines"     
-
-    #permissions
-    permission_view_home_monitoring_controlling: "Voir Gestion des tâches"
-    permission_view_mc_time_mgmt_project: "Voir Gestion du temps"
-    permission_view_mc_human_resource_mgmt_project: "Voir Gestion des ressources humaines "    
-        
-    monitoring_controlling_title: "Statistiques"
-    project_module_monitoring_controlling_project: "Statistiques par Projet"    
-    monitoring_controlling_project: "Statistiques par Projet"
-    statuses_issue_label_title: "Tâches par statut"
-    categories_issue_label_title: "Tâches par catégorie"    
-    
-    task_management_label_title: "Gestion des tâches"
-    task_manageable_chart_title: "Tâches gérées"
-    task_manageable_chart_overdue_title: "Tâches en retard"
-    
-    manageable_label: "Géré(s)"
-    unmanageable_label: "Ingérable(s)"
-    manageable_text_tip: "Tâches avec une date de fin."
-    unmanageable_text_tip: "Tâches sans date de fin."
-    
-    tasks_label: "tâche(s)"
-    tasksof_label: "tâche(s) de"    
-    
-    overdue_label: "En retard"
-    overdue_text: "Retard(s)"    
-    delivered_label: "Livré"
-    tobedelivered_label: "En cours de livraison"
-    days_late_text: "jour(s) de retard"
-
-    close_label: "Terminé"
-
-    # date format
-    default_date_format: "%d/%m/%Y"    
-
-    # time management screen
-    time_mgmt_label_title: "Temps estimé et réalisé"
-    time_mgmt_areaspline_yaxis_label: "Temps (heures)"
-    time_mgmt_estimated_label: "Estimé"
-    time_mgmt_spent_label: "Réalisé"
-    time_mgmt_hours_label: "heure(s)"
-    time_mgmt_error_no_issues_found_text: "No issues were found."
-    time_mgmt_error_no_issues_duedate_found_text: "Aucune demande avec une date de fin n'a été trouvée."    
-    time_mgmt_version_label_title: "Versions by Hours"
-
-    # human resource management
-    hr_mgmt_label_title: "Gestion des ressources humaines"
-    hr_unassigned_issue_label: "Non assignée"
-    hr_columnbar_title_label: "Demandes assignées"
-    hr_columnbar_yaxis_label: "Nombre de demandes"
-    hr_stackedcolumnbar_title_label: "Assignés et demandes par états"
-    hr_stackedcolumnbar_yaxis_label: "Nombre de demandes"
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/locales/pl.yml b/plugins/redmine_monitoring_controlling/config/locales/pl.yml
deleted file mode 100644
index 925224f..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/pl.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-pl:
-    #menu
-    mc_tasksmgmt_menu_label: "Notki"
-    mc_timemgmt_menu_label: "Czas"
-    mc_humanresourcemgmt_menu_label: "Zasoby ludzkie"
-
-    #permissions
-    permission_view_home_monitoring_controlling: "Przeglądanie statystyk zadań"
-    permission_view_mc_time_mgmt_project: "Przeglądanie statystyk czasu"
-    permission_view_mc_human_resource_mgmt_project: "Przeglądanie statystyk zasobów ludzkich"
-
-    monitoring_controlling_title: "Statystyki"
-    project_module_monitoring_controlling_project: "Statystyki projektu"
-    monitoring_controlling_project: "Statystyki projektu"
-    statuses_issue_label_title: "Notki według statusów"
-    categories_issue_label_title: "Notki według kategorii"
-
-    task_management_label_title: "Terminy notek"
-    task_manageable_chart_title: "Daty oddania notek"
-    task_manageable_chart_overdue_title: "Notki z datą oddania"
-
-    manageable_label: "Z datą oddania"
-    unmanageable_label: "Bez daty oddania"
-    manageable_text_tip: "Notki z datą oddania."
-    unmanageable_text_tip: "Notki bez daty oddania."
-
-    tasks_label: "notek"
-    tasksof_label: "notek z"
-
-    overdue_label: "Opóźnione"
-    overdue_text: "opóźnionych"
-    delivered_label: "Zamknięte"
-    tobedelivered_label: "W czasie"
-    days_late_text: "dni opóźnienia"
-
-    close_label: "zamknij"
-
-    # date format
-    default_date_format: "%Y/%m/%d"
-
-    # time management screen
-    time_mgmt_label_title: "Szacowany i przepracowany czas"
-    time_mgmt_areaspline_yaxis_label: "Czas (godziny)"
-    time_mgmt_estimated_label: "Szacowany czas"
-    time_mgmt_spent_label: "Przepracowany czas"
-    time_mgmt_hours_label: "godzin"
-    time_mgmt_error_no_issues_found_text: "Brak notek."
-    time_mgmt_error_no_issues_duedate_found_text: "Brak notek z datą oddania."
-    time_mgmt_version_label_title: "Czas w wersjach"
-
-    # human resource management
-    hr_mgmt_label_title: "Zasoby ludzkie"
-    hr_unassigned_issue_label: "nieprzypisane"
-    hr_columnbar_title_label: "Liczba przypisanych notek do osoby"
-    hr_columnbar_yaxis_label: "Liczba notek"
-    hr_stackedcolumnbar_title_label: "Assignee and issues by situation"
-    hr_stackedcolumnbar_yaxis_label: "Liczba notek"
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/locales/pt-BR.yml b/plugins/redmine_monitoring_controlling/config/locales/pt-BR.yml
deleted file mode 100644
index 2c29343..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/pt-BR.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-pt-BR:
-  #menu
-  mc_tasksmgmt_menu_label: "Gerenciamento de Tarefas"
-  mc_timemgmt_menu_label: "Gerenciamento de Tempo" 
-  mc_humanresourcemgmt_menu_label: "Gerenciamento de Recursos Humanos" 
- 
-  #permissions
-  permission_view_home_monitoring_controlling: "Visualizar M&C Gerenciamento de Tarefas"
-  permission_view_mc_time_mgmt_project: "Visualizar M&C Gerenciamento de Tempo"  
-  permission_view_mc_human_resource_mgmt_project: "Visualizar M&C Gerenciamento de Recursos Humanos"
-  
-  monitoring_controlling_title: "Monitoramento & Controle"
-  project_module_monitoring_controlling_project: "Monitoramento & Controle por Projeto"
-  monitoring_controlling_project: "Monitoramento & Controle por Projeto"
-  statuses_issue_label_title: "Situação das tarefas"
-  categories_issue_label_title: "Tarefas por Tipo"
-
-  task_management_label_title: "Gerenciamento das Tarefas"
-  task_manageable_chart_title: "Tarefas Gerenciáveis"
-  task_manageable_chart_overdue_title: "Tarefas Atrasadas"
-  
-  manageable_label: "Gerenciável"
-  unmanageable_label: "Não Gerenciável"
-  manageable_text_tip: "Tarefas com data de entrega."
-  unmanageable_text_tip: "Tarefas sem data de entrega preenchida"
-  
-  tasks_label: "tarefa(s)"
-  tasksof_label: "tarefa(s) de"    
-  
-  overdue_label: "Atrasada"
-  overdue_text: "atrasada(s)"
-  delivered_label: "Entregue"
-  tobedelivered_label: "A ser entregue"
-  days_late_text: "dia(s) atrasada(s)"
-  
-  close_label: "fechar"
-  
-  # formatos de data e hora
-  default_date_format: "%d/%m/%Y"
-  
-  # time management screen
-  time_mgmt_label_title: "Horas Planejada por Horas Executadas"
-  time_mgmt_areaspline_yaxis_label: "Tempo (horas)"
-  time_mgmt_estimated_label: "Planejado"
-  time_mgmt_spent_label: "Executado"
-  time_mgmt_hours_label: "hora(s)"
-  time_mgmt_error_no_issues_found_text: "Nenhuma tarefa foi encontrada."
-  time_mgmt_error_no_issues_duedate_found_text: "Nenhuma tarefa com data de entrega preenchida foi encontrada."
-  time_mgmt_version_label_title: "Versões por Horas"
-  
-  # human resource management
-  hr_mgmt_label_title: "Gerenciamento de Pessoas"
-  hr_unassigned_issue_label: "Não atribuída"
-  hr_columnbar_title_label: "Tarefas por responsáveis"
-  hr_columnbar_yaxis_label: "Quantidade de Tarefas"
-  hr_stackedcolumnbar_title_label: "Responsáveis e suas respectivas tarefas por situação"
-  hr_stackedcolumnbar_yaxis_label: "Quantidade de tarefas"
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/locales/ru.yml b/plugins/redmine_monitoring_controlling/config/locales/ru.yml
deleted file mode 100644
index 62b05f3..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/ru.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-ru:
-    #menu
-    mc_tasksmgmt_menu_label: "Управление задачами"
-    mc_timemgmt_menu_label: "Управление временными затратами"
-    mc_humanresourcemgmt_menu_label: "Управление человеческими ресурсами"     
-
-    #permissions
-    permission_view_home_monitoring_controlling: "Вид M&C Управление задачами"
-    permission_view_mc_time_mgmt_project: "Вид M&C Управление временными затратами"
-    permission_view_mc_human_resource_mgmt_project: "Вид M&C Управление человеческими ресурсами"    
-
-    monitoring_controlling_title: "Мониторинг & Контроль"
-    project_module_monitoring_controlling_project: "Мониторинг & Контроль by Project"    
-    monitoring_controlling_project: "Мониторинг & Контроль by Projeto"
-    statuses_issue_label_title: "Задачи по статусам"
-    categories_issue_label_title: "Tasks by Category"    
-
-    task_management_label_title: "Управление задачами"
-    task_manageable_chart_title: "Задачи"
-    task_manageable_chart_overdue_title: "Просроченные задачи"
-
-    manageable_label: "Управляемые"
-    unmanageable_label: "Неуправляемые"
-    manageable_text_tip: "Задачи с датой выполнения."
-    unmanageable_text_tip: "Задачи без даты выполнения."
-
-    tasks_label: "задачи"
-    tasksof_label: "задач(a) из"    
-
-    overdue_label: "Просрочена"
-    overdue_text: "просрочена(-ы)"    
-    delivered_label: "Закрыта"
-    tobedelivered_label: "Решена"
-    days_late_text: "день(дней) задержки"
-
-    close_label: "закрыт"
-
-    # date format
-    default_date_format: "%Y/%m/%d"    
-
-    # time management screen
-    time_mgmt_label_title: "Оценка времени и количество затраченных часов"
-    time_mgmt_areaspline_yaxis_label: "Время (часов)"
-    time_mgmt_estimated_label: "Оценка"
-    time_mgmt_spent_label: "Затраты"
-    time_mgmt_hours_label: "час(ов)"
-    time_mgmt_error_no_issues_found_text: "No issues were found."
-    time_mgmt_error_no_issues_duedate_found_text: "Не было найдено ни одного зарегестрированного тикета с датой выполнения."    
-    time_mgmt_version_label_title: "Versions by Hours"
-
-    # human resource management
-    hr_mgmt_label_title: "Управление человеческими ресурсами"
-    hr_unassigned_issue_label: "неназначенная"
-    hr_columnbar_title_label: "Распределение задач"
-    hr_columnbar_yaxis_label: "Количество задач"
-    hr_stackedcolumnbar_title_label: "Распределение задач и статусов выполнения по ресурсам"
-    hr_stackedcolumnbar_yaxis_label: "Количество задач"
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/locales/tr.yml b/plugins/redmine_monitoring_controlling/config/locales/tr.yml
deleted file mode 100644
index 422afb2..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/tr.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-tr:
-    #menu
-    mc_tasksmgmt_menu_label: "İş İzlemesi"
-    mc_timemgmt_menu_label: "Zaman İzlemesi"
-    mc_humanresourcemgmt_menu_label: "İnsan Kaynakları İzlemesi"
-
-    #permissions
-    permission_view_home_monitoring_controlling: "İzleme ve Kontrol için görme"
-    permission_view_mc_time_mgmt_project: "Zaman izlemesini görme"
-    permission_view_mc_human_resource_mgmt_project: "İnsan Kaynkakları izlemesini görme"    
-        
-    monitoring_controlling_title: "İzleme ve Kontrol"
-    project_module_monitoring_controlling_project: "Proje bazında İzleme ve Kontrol"    
-    monitoring_controlling_project: "Proje bazında İzleme ve Kontrol"
-    statuses_issue_label_title: "Duruma göre İşler"
-    categories_issue_label_title: "Kategoriye göre İşler"
-    
-    task_management_label_title: "İş Yönetimi"
-    task_manageable_chart_title: "Yönetilebilir İşler"
-    task_manageable_chart_overdue_title: "Tarihi Geçmiş İşler"
-    
-    manageable_label: "Yönetiliebilir"
-    unmanageable_label: "Yönetilemez"
-    manageable_text_tip: "Teslim tarihi olan İşler."
-    unmanageable_text_tip: "Teslim tarihi olmayan İşler."
-    
-    tasks_label: "iş"
-    tasksof_label: "iş. toplam"    
-    
-    overdue_label: "Tarihi Geçmiş"
-    overdue_text: "tarihi geçmiş"    
-    delivered_label: "Teslim Edilmiş"
-    tobedelivered_label: "Teslim Edilecek"
-    days_late_text: "gün gecikmiş"
-
-    close_label: "kapat"
-
-    # date format
-    default_date_format: "%Y-%m-%d"
-    
-    # time management screen
-    time_mgmt_label_title: "Tahmin edilen ve Harcanan zaman"
-    time_mgmt_areaspline_yaxis_label: "Zaman (saat)"
-    time_mgmt_estimated_label: "Tahmini"
-    time_mgmt_spent_label: "Harcanmış"
-    time_mgmt_hours_label: "saat"
-    time_mgmt_error_no_issues_found_text: "Hiç iş bulanamadı."
-    time_mgmt_error_no_issues_duedate_found_text: "Bitiş tarihi işlenmiş herhangi iş bulunamadı."    
-    time_mgmt_version_label_title: "Sürüme göre Saat"
-
-    # human resource management
-    hr_mgmt_label_title: "İnsan Kaynakları İzleme"
-    hr_unassigned_issue_label: "atanmamış"
-    hr_columnbar_title_label: "Atanana göre İşler"
-    hr_columnbar_yaxis_label: "İş adedi"
-    hr_stackedcolumnbar_title_label: "Duruma göre atanan ve işler"
-    hr_stackedcolumnbar_yaxis_label: "İş adedi"
diff --git a/plugins/redmine_monitoring_controlling/config/locales/zh.yml b/plugins/redmine_monitoring_controlling/config/locales/zh.yml
deleted file mode 100644
index fe56f92..0000000
--- a/plugins/redmine_monitoring_controlling/config/locales/zh.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-zh:
-   #menu
-   mc_tasksmgmt_menu_label: "任务管理"
-   mc_timemgmt_menu_label: "时间管理"
-   mc_humanresourcemgmt_menu_label: "HR管理"     
-
-   #permissions
-   permission_view_home_monitoring_controlling: "查看M&C任务管理"
-   permission_view_mc_time_mgmt_project: "查看M&C时间管理"
-   permission_view_mc_human_resource_mgmt_project: "查看M&C HR管理"  
-    
-   monitoring_controlling_title: "项目监控"
-   project_module_monitoring_controlling_project: "项目监控"
-   monitoring_controlling_project: "项目监控"
-   statuses_issue_label_title: "任务情况(按状态)"
-   categories_issue_label_title: "Tasks by Category"   
-
-   task_management_label_title: "任务管理"
-   task_manageable_chart_title: "可控任务分布图"
-   task_manageable_chart_overdue_title: "逾期任务分布图"
-
-   manageable_label: "已定义计划完成时间任务"
-   unmanageable_label: "未定义计划完成时间任务"
-   manageable_text_tip: "当前项目中所有已定义计划完成日期的任务。"
-   unmanageable_text_tip: "当前项目中所有未定义计划完成日期的任务。"
-
-   tasks_label: "任务"
-   tasksof_label: " 任务 /"    
-
-   overdue_label: "逾期"
-   overdue_text: "逾期"        
-   delivered_label: "已交付"
-   tobedelivered_label: "即将交付"
-   days_late_text: "日延迟"    
-
-   close_label: "关闭"
-
-   # date format
-   default_date_format: "%Y/%m/%d"   
-  
-   # time management screen
-   time_mgmt_label_title: "计划时间和已用时间"
-   time_mgmt_areaspline_yaxis_label: "时间(小时)"
-   time_mgmt_estimated_label: "预估"
-   time_mgmt_spent_label: "已用"
-   time_mgmt_hours_label: "工时"   
-   time_mgmt_error_no_issues_found_text: "No issues were found."
-   time_mgmt_error_no_issues_duedate_found_text: "未找到定义计划完成时间的问题。"   
-   time_mgmt_version_label_title: "按工时查看版本"   
-
-   # human resource management
-   hr_mgmt_label_title: "HR管理"
-   hr_unassigned_issue_label: "未分配"
-   hr_columnbar_title_label: "按处理人统计问题数量"
-   hr_columnbar_yaxis_label: "问题数"
-   hr_stackedcolumnbar_title_label: "按处理人分状态统计问题数量(堆积图)"
-   hr_stackedcolumnbar_yaxis_label: "问题数"
-   
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/config/routes.rb b/plugins/redmine_monitoring_controlling/config/routes.rb
deleted file mode 100644
index 0786ab1..0000000
--- a/plugins/redmine_monitoring_controlling/config/routes.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-if Rails.version.to_f >= 3.0
-  match 'home_monitoring_controlling_project/index/:id', :to => 'home_monitoring_controlling_project#index', :via => :get
-  match 'mc_time_mgmt_project/index/:id', :to => 'mc_time_mgmt_project#index', :via => :get
-  match 'mc_human_resource_project/index/:id', :to => 'mc_human_resource_mgmt_project#index', :via => :get
-else # Routes for older Rails routes
-  ActionController::Routing::Routes.draw do |map|
-   map.connect '/home_monitoring_controlling_project/index/:id', :controller => 'home_monitoring_controlling_project', :action => 'index'
-   map.connect '/mc_time_mgmt_project/index/:id', :controller => 'mc_time_mgmt_project', :action => 'index'
-   map.connect '/mc_human_resource_project/index/:id', :controller => 'mc_human_resource_mgmt_project', :action => 'index'
-  end
-end
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/init.rb b/plugins/redmine_monitoring_controlling/init.rb
deleted file mode 100644
index 00fa3bf..0000000
--- a/plugins/redmine_monitoring_controlling/init.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# encoding: UTF-8
-require 'redmine'
-
-Redmine::Plugin.register :redmine_monitoring_controlling do
-  name 'Redmine (Monitoring & Controlling | Monitoramento & Controle)'
-  author 'Alexander Monteiro'
-  description "Este plugin foi criado para auxiliar no Monitoramento e Controle dos projetos no redmine através de uma visualização gráfica das tarefas e sua execução.\n
-               This plugin is a graphic tool to Monitoring and Controlling projects on redmine."
-  version '0.1.1'
-  url 'http://alexmonteiro.github.com/redmine_monitoring_controlling/'
-  author_url 'http://www.alexandermonteiro.com.br'
-  
-  #Settings page of plugin
-  #settings :default => {'redmine_monitoring_controlling_setting' => 'value', 'foo'=>'bar'}, :partial => 'settings/redmine_monitoring_controlling_settings'
-  
-  project_module :monitoring_controlling_project do
-      permission :view_home_monitoring_controlling, {:home_monitoring_controlling_project => [:index]}
-      permission :view_mc_time_mgmt_project, {:mc_time_mgmt_project => [:index]}
-      permission :view_mc_human_resource_mgmt_project, {:mc_human_resource_mgmt_project => [:index]}
-  end
-
-  menu :project_menu, :redmine_monitoring_controlling, { :controller => 'home_monitoring_controlling_project', :action => 'index' }, :caption => :monitoring_controlling_title
-
-end
-
diff --git a/plugins/redmine_monitoring_controlling/lang/en.yml b/plugins/redmine_monitoring_controlling/lang/en.yml
deleted file mode 100644
index e338591..0000000
--- a/plugins/redmine_monitoring_controlling/lang/en.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-# English strings go here
-my_label: "My label"
diff --git a/plugins/redmine_monitoring_controlling/lib/mc_tools.rb b/plugins/redmine_monitoring_controlling/lib/mc_tools.rb
deleted file mode 100644
index 1e75e9e..0000000
--- a/plugins/redmine_monitoring_controlling/lib/mc_tools.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-class McTools
-  # This class holds useful functions
-  # user on Monitoring & Controlling plugin
-  
-  # return the plugin folder instalation
-  def returnPluginFolderName
-    if Rails.version.to_f >= 3.0
-      File.dirname(__FILE__).gsub(File.join(Rails.root.to_s,'plugins'),'').split('/')[1] 
-    else
-      File.dirname(__FILE__).gsub(File.join(Rails.root.to_s,'vendor','plugins'),'').split('/')[1] 	
-    end
-  end
-  
-  # return subprojects ID
-  def subProjects(id)
-     Project.find_by_sql("select * from projects where parent_id = #{id.to_i}")
-  end
-    
-  # return an array with the project and subprojects IDs
-  def return_ids(id)       
-     array = Array.new
-     array.push(id)  
-     subprojects = subProjects(id)
-     subprojects.each do |project|     
-      array.push(return_ids(project.id))
-     end
-      
-     return array.inspect.gsub("[","").gsub("]","").gsub("\\","").gsub("\"","")
-  end
-
-  # return total of tasks with closed flag false
-  # done tasks
-  def returnTotalOfClosedTasks(project_identifier)
-    countTasks(project_identifier, true)
-  end  
-  # done tasks
-  def returnTotalOfOpenTasks(project_identifier)
-    countTasks(project_identifier, false)
-  end
-  
-  private
-  #count tasks
-  def countTasks(project_identifier, isClosed)
-    #get main project
-    project = Project.find_by_identifier(project_identifier)
-    #get projects and sub projects
-    stringSqlProjectsSubProjects = return_ids(project.id)
-    total = 0
-    Issue.find_by_sql(["select count(1) as totalclosedissue
-                        from issues
-                        where project_id in (#{stringSqlProjectsSubProjects})
-                        and status_id in (select id from issue_statuses where is_closed = ?)",isClosed]).each do |t|
-     
-      total = t.totalclosedissue.to_i
-    end
-            
-    total
-  end
-  
-end
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/license.txt b/plugins/redmine_monitoring_controlling/license.txt
deleted file mode 100644
index 2243e9f..0000000
--- a/plugins/redmine_monitoring_controlling/license.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Redmine Monitoring Controlling Plugin - Show tasks on project throught Charts.
-Copyright (C) 2012-2013  Alexander Monteiro
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see http://www.gnu.org/licenses/.
\ No newline at end of file
diff --git a/plugins/redmine_monitoring_controlling/logo.png b/plugins/redmine_monitoring_controlling/logo.png
deleted file mode 100644
index 565e25d8bb722ecaa28197228f23c58f39b4729b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39747
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

diff --git a/plugins/redmine_monitoring_controlling/screenshotEn.png b/plugins/redmine_monitoring_controlling/screenshotEn.png
deleted file mode 100644
index 3b69658dfe4901b17b56c5233b505af643390fde..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 161460
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%0D9fAQB!FP+oy
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%0DtX?Zdz2V|;)Ar|0!wD{XxB
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

diff --git a/plugins/redmine_monitoring_controlling/screenshotPt.png b/plugins/redmine_monitoring_controlling/screenshotPt.png
deleted file mode 100644
index 739cd5d90a5e72c5efb90f65e3c57fec580522b6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 164958
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
L)z4*}Q$iB}ND?ok

diff --git a/plugins/redmine_monitoring_controlling/test/test_helper.rb b/plugins/redmine_monitoring_controlling/test/test_helper.rb
deleted file mode 100644
index bd1ed0c..0000000
--- a/plugins/redmine_monitoring_controlling/test/test_helper.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-# Load the normal Rails helper
-require File.expand_path(File.dirname(__FILE__) + '/../../../../test/test_helper')
-
-# Ensure that we are using the temporary fixture path
-Engines::Testing.set_fixture_path
diff --git a/plugins/redmine_omniauth_client/Gemfile b/plugins/redmine_omniauth_client/Gemfile
deleted file mode 100644
index 7723190..0000000
--- a/plugins/redmine_omniauth_client/Gemfile
+++ /dev/null
@@ -1,4 +0,0 @@
-source 'http://rubygems.org'
-
-gem 'oauth2'
-gem 'json'
diff --git a/plugins/redmine_omniauth_client/Gemfile.lock b/plugins/redmine_omniauth_client/Gemfile.lock
deleted file mode 100644
index a495cd5..0000000
--- a/plugins/redmine_omniauth_client/Gemfile.lock
+++ /dev/null
@@ -1,22 +0,0 @@
-GEM
-  remote: http://rubygems.org/
-  specs:
-    addressable (2.3.2)
-    faraday (0.7.6)
-      addressable (~> 2.2)
-      multipart-post (~> 1.1)
-      rack (~> 1.1)
-    json (1.7.5)
-    multi_json (1.3.6)
-    multipart-post (1.1.5)
-    oauth2 (0.5.2)
-      faraday (~> 0.7)
-      multi_json (~> 1.0)
-    rack (1.4.1)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  json
-  oauth2
diff --git a/plugins/redmine_omniauth_client/README.md b/plugins/redmine_omniauth_client/README.md
deleted file mode 100644
index b5715b8..0000000
--- a/plugins/redmine_omniauth_client/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-## Redmine omniauth ROR
-
-This plugin is used to authenticate Redmine users using an OAuth2 provider.
-
-### Installation:
-
-Download the plugin and install required gems:
-
-```console
-cd /path/to/redmine/plugins
-git clone https://github.com/arlin2050/redmine_omniauth_client.git
-cd /path/to/redmine
-bundle install
-```
-
-Restart the app
-```console
-touch /path/to/redmine/tmp/restart.txt
-```
-
-### Configuration
-
-* Login as a user with administrative privileges. 
-* In top menu select "Administration".
-* Click "Plugins"
-* In plugins list, click "Configure" in the row for "Redmine OAuth Client plugin"
-* Configure all fields.
-* Check the box near "Enable OAuth authentication"
-* Click Apply. 
- 
-Users can now to use their account to log into your instance of Redmine.
-
-Additionaly
-* Setup value Autologin in Settings on tab Authentification
-
-### Authentication Workflow
-
-1. An unauthenticated user requests the URL to your Redmine instance.
-2. User clicks the "Login via App" button.
-3. The plugin redirects them to a sign in page if they are not already signed into their account.
-4. App redirects user back to Redmine, where the OAuth plugin's controller takes over.
-
-One of the following cases will occur:
-
-1. If self-registration is disabled (Under Administration > Settings > Authentication) but force_account_creation option is checked, the account is created and user is redirected to 'my/page'.
-2. Otherwise, self-registration method is used to register users.
-
-### TODO
-
-* Access webservices in other formats than json.
-* Fonctionnal tests
\ No newline at end of file
diff --git a/plugins/redmine_omniauth_client/app/controllers/redmine_oauth_controller.rb b/plugins/redmine_omniauth_client/app/controllers/redmine_oauth_controller.rb
deleted file mode 100644
index 849c06c..0000000
--- a/plugins/redmine_omniauth_client/app/controllers/redmine_oauth_controller.rb
+++ /dev/null
@@ -1,223 +0,0 @@
-require 'account_controller'
-require 'json'
-require 'jwt'
-
-class RedmineOauthController < AccountController
-  def oauth
-    if Setting.plugin_redmine_omniauth_client['oauth_authentification']
-      session[:back_url] = params[:back_url]
-      redirect_to oauth_client.auth_code.authorize_url(:redirect_uri => oauth_callback_url)
-    else
-      password_authentication
-    end
-  end
-
-  def oauth_callback
-    if params[:error]
-      flash[:error] = l(:notice_access_denied, :app => settings['app_name'])
-      redirect_to signin_path
-    else
-      begin
-        token = oauth_client.auth_code.get_token(params[:code],:mode => :body, :redirect_uri => oauth_callback_url)
-        info = JWT.decode(token.token, nil, false)[0]
-      rescue
-        flash[:error] = (t 'notices.unable_to_authenticate')
-      end
-
-      #result = token.get(settings['site_url'] + settings['ws_url'])
-      #info = JSON.parse(result.body)
-
-      if info && info[settings['field_username']]
-        try_to_login info
-      else
-        flash[:error] = l(:notice_unable_to_obtain_app_credentials, :app => settings['app_name'])
-        redirect_to signin_path
-      end
-    end
-  end
-
-  def try_to_login(info)
-   params[:back_url] = session[:back_url]
-   session.delete(:back_url)
-   begin
-     user = User.where(sso_u_id: info[settings['sso_u_id']]).first
-     #File.open("ssouid_user.txt", 'w') { |file| file.write(user) }
-   rescue
-   end
-   if user.nil?
-      user = User.find_by_login(info[settings['field_username']])
-      #File.open("username_user.txt", 'w') { |file| file.write(user) }
-      #File.open("sso.txt", 'w') { |file| file.write(info[settings['sso_u_id']]) }
-
-      #user.sso_u_id = info[settings['sso_u_id']]
-      #user.save
-      if user.nil?
-        # Create on the fly
-        user = User.new
-        user.sso_u_id = info[settings['sso_u_id']]
-        user.firstname = info[settings['field_firstname']]
-        user.lastname = info[settings['field_lastname']]
-	user.mail =  info[settings['field_email']]
-	if info.key?('email_contact')
-		if info['email_contact'] != ""
-			user.mail = info['email_contact']
-		end
-	end
-        user.login = info[settings['field_username']]
-        user.random_password
-        user.register
-
-        # Use registration if defined
-        case Setting.self_registration
-        when '1'
-          register_by_email_activation(user) do
-            onthefly_creation_failed(user)
-          end
-        when '2'
-          register_manually_by_administrator(user) do
-            onthefly_creation_failed(user)
-          end
-        when '3'
-          register_automatically(user) do
-            onthefly_creation_failed(user)
-          end
-        else
-          if settings['force_account_creation']
-            register_automatically(user) do
-              onthefly_creation_failed(user)
-            end
-          else
-            flash[:error] = l(:unable_create_account)
-            redirect_to signin_path
-          end
-        end
-      else
-        user.sso_u_id = info[settings['sso_u_id']]
-        user.save
-      end
-   else
-     user.firstname = info[settings['field_firstname']]
-     user.lastname = info[settings['field_lastname']]
-     user.mail = info[settings['field_email']]
-     if info.key?('email_contact')
-    	if info['email_contact'] != ""
-		user.mail = info['email_contact']
-	end
-     end
-     user.login = info[settings['field_username']]
-     user.save
-
-      # Existing record
-      if user.active?
-        successful_authentication(user)
-      else
-        # Redmine 2.4 adds an argument to account_pending
-        if Redmine::VERSION::MAJOR > 2 or
-          (Redmine::VERSION::MAJOR == 2 and Redmine::VERSION::MINOR >= 4)
-          account_pending(user)
-        else
-          account_pending
-        end
-      end
-    end
-#########################
-    #File.open("ssouidUSER.txt", 'w') { |file| file.write(user.sso_u_id) }
-    begin
-      # Odstraní uživatele ze všech skupin, případně jen ze skupin párovaných k SSO.
-      if @settings['remove_from_groups']
-        if @settings['remove_from_all_groups']
-          user.groups.delete(Group.all)
-        # Nebo pouze ze spárovaných skupin
-        else
-          GroupMapping.all.each do |group_mapping|
-            group = Group.find(group_mapping.group_id)
-            user.groups.delete(group) if user.groups.include? group
-          end
-        end
-      end
-
-      group_prefix = "f~"
-      groups = info['groups']
-
-      unless groups == nil || groups == []
-        # Prochází každou skupinou v SSO acces tokenu
-        groups.each do |sso_group|
-          # možná mají role nějaký prefix
-          sso_group = group_prefix + sso_group
-          # Vyhledá mapování skupin na skupiny RM
-          mappings = GroupMapping.where(variable: sso_group)
-          # Pokud najde, přiřadí uživatele do příslušných skupin
-          unless mappings.to_a == nil || mappings.to_a == []
-            mappings.each do |mapping|
-              @group = Group.find(mapping.group_id)
-              unless @group.users.include? user
-                @group.users << user
-              end
-            end
-          # Pokud nenajde, hledá skupinu přímo odpovídající jménem skupině v SSO
-          else
-            @group = Group.find_by(lastname: sso_group)
-            # Pokud nenajde, vytvoří skupinu
-            if @group == nil || @group == []
-              @group = Group.new({:lastname => sso_group})
-              #@group.name= sso_group
-              @group.save
-            end
-            # Vytváří mapování na novou, či nemapovanou skupinu a přiřadí uživatele do skupiny
-            #File.open("mapping_" + sso_group + ".txt", 'w') { |file| file.write(@group) }
-            unless @group.users.include? user
-              @group.users << user
-            end
-            new_mapping = GroupMapping.new({:variable => sso_group, :group_id => @group.get_id})
-            new_mapping.save
-          end
-        end
-      end       # groups
-   rescue
-      logger.error  "Error. Group assignemnt failed."
-   end
-  end
-
-  def oauth_client
-    @client ||= OAuth2::Client.new(settings['client_id'], settings['client_secret'],
-      :site => settings['site_url'],
-      :authorize_url => settings['auth_url'],
-      :token_url => settings['token_url'])
-  end
-
-  def settings
-    @settings ||= Setting.plugin_redmine_omniauth_client
-  end
-
-############################
-
-  def group_mapping
-    @groups = GroupMapping.all
-  end
-
-  def edit
-    #mapping = GroupMapping.find_by(variable: params[:variable])
-    begin
-      mapping = GroupMapping.find_by(variable: params[:variable], :group_id => params[:group_id])
-      if mapping == nil
-        new_mapping = GroupMapping.new({:variable => params[:variable], :group_id => params[:group_id]})
-        new_mapping.save
-      else
-        mapping.update({:variable => params[:variable], :group_id => params[:group_id]})
-    #  mapping.destroy
-      end
-      flash[:notice] = (t 'notices.saved')
-    rescue
-      flash[:warning] = (t 'notices.notSaved')
-    end
-    redirect_to :action => 'group_mapping'
-  end
-
-  def delete
-    unless GroupMapping.find_by(variable: params[:variable], :group_id => params[:group_id]) == nil
-      mapping = GroupMapping.find_by(variable: params[:variable], :group_id => params[:group_id])
-      mapping.destroy
-    end
-    redirect_to :action => 'group_mapping'
-  end
-end
diff --git a/plugins/redmine_omniauth_client/app/helpers/redmine_omniauth_helper.rb b/plugins/redmine_omniauth_client/app/helpers/redmine_omniauth_helper.rb
deleted file mode 100644
index e1d2445..0000000
--- a/plugins/redmine_omniauth_client/app/helpers/redmine_omniauth_helper.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-module RedmineOmniauthHelper
-end
diff --git a/plugins/redmine_omniauth_client/app/models/group_mapping.rb b/plugins/redmine_omniauth_client/app/models/group_mapping.rb
deleted file mode 100644
index 9afd216..0000000
--- a/plugins/redmine_omniauth_client/app/models/group_mapping.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-class GroupMapping < ActiveRecord::Base
-end
diff --git a/plugins/redmine_omniauth_client/app/views/hooks/_view_account_login_top.html.erb b/plugins/redmine_omniauth_client/app/views/hooks/_view_account_login_top.html.erb
deleted file mode 100644
index 0b5334c..0000000
--- a/plugins/redmine_omniauth_client/app/views/hooks/_view_account_login_top.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-<%= stylesheet_link_tag 'buttons', :plugin => 'redmine_omniauth_client' %>
-
-<% if Setting.plugin_redmine_omniauth_client['oauth_authentification'] %>
-  <%= link_to oauth_client_path(:back_url => back_url), :class=>"no-pointer" do %>
-    <h2 style="width:450px; margin: 10px auto -25px auto; max-width: 20em; margin: 1rem auto; text-align: center; padding: 1rem 0; border: 1px rgb(204, 204, 204) solid; cursor: pointer; background: #efefef;"><%= t 'oauth.login_via_sso' %></h2>
-    <br/>
-    <br/>
-  <% end %>
-<% end %>
-
-
diff --git a/plugins/redmine_omniauth_client/app/views/redmine_oauth/group_mapping.html.erb b/plugins/redmine_omniauth_client/app/views/redmine_oauth/group_mapping.html.erb
deleted file mode 100644
index b7c74c1..0000000
--- a/plugins/redmine_omniauth_client/app/views/redmine_oauth/group_mapping.html.erb
+++ /dev/null
@@ -1,49 +0,0 @@
-<h2><%=t 'oauth.mapping_headline'%></h2>
- 
-<table>
-  <%= form_tag({:controller => 'redmine_oauth', :action => 'edit'}, method: "post") do %>
-    <tr>
-      <td>
-        <%= text_field_tag :variable %>
-      </td>
-      <td>
-        <%= select_tag :group_id, options_from_collection_for_select(Group.all - GroupBuiltin.all, :id, :name) %>
-      </td>
-      <td>
-        <%= submit_tag(t 'oauth.save') %>
-      </td>
-    </tr>
-  <% end %>
-</table>
-
-<hr />
-
-<h3><%=t 'oauth.saved_settings'%></h3>
-
-<table style="border: 1px solid black; padding: 1px">
-  <% @groups.each do |group| %>
-    <%= form_tag({:controller => 'redmine_oauth', :action => 'edit'}, method: "post") do %>
-      <tr>
-        <td style="border: 1px solid black">
-          <b><%= group.variable %></b>
-          <%= text_field_tag :variable, group.variable, hidden: true %>
-        </td>
-        <td style="border: 1px solid black">
-          <%= select_tag :group_id, options_from_collection_for_select(Group.all - GroupBuiltin.all, :id, :name, group.group_id) %>
-        </td>
-        <td style="border: 1px solid black">
-          <%= submit_tag(t 'oauth.edit') %>
-        <% end %>
-      </td>
-      <td style="border: 1px solid black">
-        <%= form_tag({:controller => 'redmine_oauth', :action => 'delete'}, method: "post") do %>
-          <%= text_field_tag :variable, group.variable, hidden: true %>
-          <%= text_field_tag :group_id, group.group_id, hidden: true %>
-          <%= submit_tag(t 'oauth.delete') %>
-        <% end %>
-      </td>
-    </tr>
-  <% end %>
-</table>
-
-<%#= link_to "Back", :back %>
diff --git a/plugins/redmine_omniauth_client/app/views/settings/_client_settings.html.erb b/plugins/redmine_omniauth_client/app/views/settings/_client_settings.html.erb
deleted file mode 100644
index 73dc869..0000000
--- a/plugins/redmine_omniauth_client/app/views/settings/_client_settings.html.erb
+++ /dev/null
@@ -1,81 +0,0 @@
-<p>
-  <label><%=t 'oauth.app_name'%></label>
-  <%= text_field_tag 'settings[app_name]', @settings['app_name'] %>
-</p>
-<p>
-  <label><%=t 'oauth.site_url'%></label>
-  <%= text_field_tag 'settings[site_url]', @settings['site_url'] %>
-</p>
-<p>
-  <label><%=t 'oauth.auth_url'%></label>
-  <%= text_field_tag 'settings[auth_url]', @settings['auth_url'] %>
-</p>
-<p>
-  <label><%=t 'oauth.token_url'%></label>
-  <%= text_field_tag 'settings[token_url]', @settings['token_url'] %>
-</p>
-<p>
-  <label><%=t 'oauth.ws_url'%></label>
-  <%= text_field_tag 'settings[ws_url]', @settings['ws_url'] %>
-</p>
-<p>
-  <label><%=t 'oauth.client_id'%></label>
-  <%= text_field_tag 'settings[client_id]', @settings['client_id'] %>
-</p>
-<p>
-  <label><%=t 'oauth.client_secret'%></label>
-  <%= text_field_tag 'settings[client_secret]', @settings['client_secret'] %>
-</p>
-<p>
-  <label><%=t 'oauth.sso_u_id'%></label>
-  <%= text_field_tag 'settings[sso_u_id]', @settings['sso_u_id'] %>
-</p>
-<p>
-  <label><%=t 'oauth.username_f'%></label>
-  <%= text_field_tag 'settings[field_username]', @settings['field_username'] %>
-</p>
-<p>
-  <label><%=t 'oauth.mail_f'%></label>
-  <%= text_field_tag 'settings[field_email]', @settings['field_email'] %>
-</p>
-<p>
-  <label><%=t 'oauth.firstname_f'%></label>
-  <%= text_field_tag 'settings[field_firstname]', @settings['field_firstname'] %>
-</p>
-<p>
-  <label><%=t 'oauth.lastname_f'%></label>
-  <%= text_field_tag 'settings[field_lastname]', @settings['field_lastname'] %>
-</p>
-<p>
-  <label><%=t 'oauth.resourecs_f'%></label>
-  <%= text_field_tag 'settings[field_resources]', @settings['field_resources'] %>
-</p>
-<p>
-  <label><%=t 'oauth.groups_f'%></label>
-  <%= text_field_tag 'settings[field_groups]', @settings['field_groups'] %>
-</p>
-<p>
-  <label><%=t 'oauth.roles_f'%></label>
-  <%= text_field_tag 'settings[field_roles]', @settings['field_roles'] %>
-</p>
-<p>
- <%= link_to (t 'oauth.mapping_headline'), group_mapping_path %>
- </p>
-<p>
-  <label><%=t 'oauth.remove_from_groups'%> </label>
-  <%= check_box_tag "settings[remove_from_groups]", true, @settings['remove_from_groups'], :onclick =>
-      "if (this.checked) { $('#settings_remove_from_all_groups').removeAttr('disabled'); } else { $('#settings_remove_from_all_groups').attr('disabled', true); }" %>
-</p>
-<p>
-  <label><%=t 'oauth.remove_from_all_groups'%></label>
-  <%= check_box_tag "settings[remove_from_all_groups]", true, @settings['remove_from_all_groups'], disabled: true %>
-</p>
-<p>
-  <label><%=t 'oauth.force_acc_creation'%> </label>
-  <%= check_box_tag "settings[force_account_creation]", true, @settings['force_account_creation'] %>
-</p>
-<p>
-  <label><%=t 'oauth.enable_oauth'%></label>
-  <%= check_box_tag "settings[oauth_authentification]", true, @settings['oauth_authentification'] %>
-</p>
-
diff --git a/plugins/redmine_omniauth_client/assets/images/bt_connect_portail.png b/plugins/redmine_omniauth_client/assets/images/bt_connect_portail.png
deleted file mode 100644
index f61c0a7be2f4d96fce00739e9f8399fcbe0269ad..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 9930
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
YCa?NX64o#)7qq&})78&qol`;+0Lb!I{r~^~

diff --git a/plugins/redmine_omniauth_client/assets/images/bt_connect_ror.png b/plugins/redmine_omniauth_client/assets/images/bt_connect_ror.png
deleted file mode 100644
index 161ec0549b34fad4e08a4f82e7d5454428d77b3b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11316
zcmeAS@N?(olHy`uVBq!ia0y~yV4Tmuz@Wpy%)r3VE9!cZfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdynS!PH?NrbPDRdRl=ULr`1UPW#J0|?mIR}>^B
zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h
zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yemU-DE>U
zLj`k7JwsCqV<S@?1tSAPQ+)$VeM19X14AoA11lo~1t?ImQ?MyYNwW%aaf8}bl#*tv
zlu=SrV5P5LUS6(OZmgGIl&)`RX=$l%V5Dzkq+67drdwQ@SCUwvn^&w1Gr=XbIJqdZ
zpd>RtPXT0NVp4u-iLH_n)YyvL0$*Ra!Fk2dfJ)BK)vrh_&^OdG(9g{U`3vmf;*y|L
zgfp<JE)J<INYxKYEzU13N=^+*O;bj)3cp1lg$2I8R{lkq>6v+nIWGChrManjC7v#}
zN)@>UdMTMHR>nq_2F8ZTsk$j928O!HrY6a{7RjmRx@KwSmZp|w7HQ_Di7<1p={K@;
zb9Obdu(WVAv@kSuHM2A|HMev#GB7tXv2Zapb%g2l%quQQ%u7y%*`1l0Vg=P}fmg4U
zb5UwyNq$jCetr%t6$E7Dm*f{`<QFJ7JA-3gK_fgfFD1XcSQ8XY;5e{yNiE7OOHFYr
z%Fk5*hqF~C7B?g(r<xdASf=Qjr&wC*nxvT|>LwZ+S?F4(7^hmMnOLT!CM7FD^{0><
ze)@I_Hu|8%f|Ph*LP0KWASO7SgVMa60wOb|=B3yw6)D-<tzKT#!@$7I5a1Kys_k1+
zJaN(Wn>Sk)ZtPsPwRqB^_Q`Yj^}-7J7nDq1QZapbU~YeURqL%s&nK?kQ!;7MmAj8y
z7p%|gp1tejrR_&fn<P#yZ|>9zZs}gJy>!YFqv)<DPoAvaw5@8!isX{o{x!Qx`sY_n
zUomUlkw51dkDNF;cgc#P-Z{E~Rc}9hGEJEw;aJcxZ{6k{yC1)NTQ+5B|EgUvx#hXN
z^UJ0#`}OnZ%H78foW1)0|NpA4NiSc%>{+pW@ru>iEt4j!-u3P4*Hc&TOqsj5eA;q@
z(59E~K7Rc8v0={Iw{PE8O`5-B-@(}%_bu3ZuxbAKWotKDWzFktP~5UYbL!e%z00<=
z^i9rc=$Wu`Tfu}ytM?v%u!pyI)y}0mkMynCB^NZ|{<BvfzkD-_Xf2wwSlPYs{G}_J
zQB#gxzF9G2Mdy-Dr5%&>gX<dSt*M&6?8B!owR2XRWz4ObxvF#8!iFjHo9D0dDOr@(
zH1YSZUwx}~7PR)8#Pzo?+R!^|QTf#6>kgbcd*gn?+_gWxfBW<2&&>6^zy0_*d)4NN
zGv`g6;#)Oqb?KDlb^S96>ss5FY^j^Is(a~XQS0<KuU>ur_PuxI&fJdaKY#tM>*%#e
zo}Aae@W+qu)``7MGnV}Q{X4c|*1x}h+Lvs$&Y3S2w76-`%3pu}{{Q#4dgjW{pFa7<
z#yo%atbh6D+Bs{ct>0~#KC@}TdO4ql$xC<D&RE_ych$13CuXeL-?m_F#f(+ev(_BG
zaNRkvxnb6dcW+)V+Huh!aYp03wM}!^zIpTZ@85r4zkGi6`gLa4?81qQ-@kufJbB5V
zfB#;*ep5GfeaYm-rBjy{PFPqsXHEUwwRN*s7xpixnYF5Z&YFS=3kxPJsGYUCX4dMW
ziHmAMf@^DLudbiFrf$yK+S#kRSL~>pyQY5by83x*Yi6&inYFTd)~fc!o9pJTt)I89
zeCo2vt9ShQ{rmIhFVmN-)%D6S@UO8CNci&c!~FI8I+koXbMAcaqIG=>ccisWv+;_{
zZkl)R{)3|Wq~;3c7cXAa&0O~D_wQ9Z4y@U6GPY$y-~8oG3l0@bT=f6{e+J1H!3+$H
z3?)H+!T(1#U<m%suFAlmV&m!J7*cWTO;u$@@b#_hpM-7eo1m2}EzBx^Gpje3C2Ych
z<37jQC68B%^Y54;k>Y%SU)_jva&k1!N8TBW1lnh`O?Y<fks!yGy^;$uJrr&zO||iu
z_k@w%$w$ff%QnTc-R~EB#_PXdyY;)>B%e!l_kZ8}{&jtx?A*=YrRrX9zh)I}Cv;-o
zucP04-CtBVOX)wlv9a=J|3Axrjmqwy>r*atsqZWIsZ8dQ6@GDJV{+`1yf0o$)GH=R
z&b(Bal(cAxit#p{-Ua<zQqs*lr?hllF$fF_T;P&6>&N1N1hvF#or*dq4GaxM9Ewz@
zbtdkx_u^sYo5|{_*4A*$i0`v6k2ANj+%fZy?%$PFj2;~MaOcp$Y1t|Jf6O~~Av~hI
z>_NqcgQxC(ezvwQBks|jcA@RICi!3YRDKo`epz(SEJE#^cTI*V#|;PGdEw`)IZ_uW
ztZ%<iBUg3SJLa#zg&D^eJm{5Bxa*d>dS!w1$0Gr&g~OZEqLo^g|M<+IDmLNJB943k
zCGRB*I(#3iuUnR~tx>B`F4dod(comF=`lZ-&Fv3%@h+>#iT2G{ALm=C8noYKiMtcS
zqb!3;4&MpSvQ(TpRTn*X-V!5p{%Yr%vMDl4y&Z&AB~y0n`tkdhbF|Cu=D#-&{@T3m
z)05Au!)*WmS(RI1v;S4)oXO^MwoiPyE%$anx3I;*r<FzyTeCt7x(<b&nco$*k=4>z
z{-o%FB@rSmN}DIFo?*W!>Zr^L?PmUVmeaYbRTQRiv?>*zus)&Ev(v>ur+32LZO>Kh
zjx>d)igF)SGK{*Uxu&FKTW_jQpoBor)lDD#x0k-RRmzpWHc$Ne+S>=eop0v%TNCr~
z0Q2UDUk@;UVVQnY-d-T;+`k`>*$aGAeQd0EBqW*4vYoB*q3PO{cgba`UaRKvD%z<n
zFnO1gbp8=5^BJ{Y6Q&$Au0Cbt!Q#B|NwQV7f(^5bkdgP4Ba<~+Paa<N;bV^5o5u+c
zHe7yVP`6p0gWvs$&gGjyVGEBmly9)__o*zo8|<H0?lhZS>hqOgVgL2B8}2Ip{rS-T
zxP2MR@6Y#y_xG-=$hs?>e9QRZ#pPOy>UTeOyd?MH{E2^m*B{9K|4%=zlJ#CnX|4U4
zc*lozGv4j@dwzXp&k4tlN3VaYmPgb$+BEN5AG818DQyd9?X0T5qDekF9h`;>+#d8#
z*VniwzCOV1di+ENRe7eieenX@|N4l#xNvBxPh4N`I5F|p(SHe2DqK&GelYyKKz^gE
z{UjA#p9zLb8{S>dG-=xSpF7O_QRAJJs`J)uX1MOzbnu_eulS|_$=0`=^;y*ye=Jj|
z$(?iHSMZPK`o8)%9ADL)E#6uDJuxMrIxgn>tJUlMX71SLq+vAa@8+_kr?2_vE9px-
zF?q(+6+B77!u}}FjDSr%@>iaOocQ@Lpe1;cT}yG-45Ozj12z~$O?k4?uqjxmae>a8
zGaLL`qwo5Exe~FDzy0A|bH7%RHGGMsl@&ZUCw!VxVkNptdC$^+d%nBeT6!`t-$wA-
zJkI~W^#A{S#gcqy>F!OP7v^rgFyH2Ph(v)^`}*Q9J=&k_(&uMwpRfGLKvrv|ZN;sX
z4`goLTrT8oZOR(Y)w-{2nX;WoQ{vpsmw#HSr93?E%X?Ji#3aE|YxW0@T3-&a3Eoyz
zFxWJI@{C)Wy2qx*YRd37buQB4sChSMuIntXpO-%wtP%LTQYSuaVzJ6z1Fs_u2ZGpF
z+Q0s{y`XN_NAZQ{x0MFh{hB=g&lCH2+rQR|uis?moNwx!Dt+tix7ERhlE2l1-@bkO
z&HqhB-uBC^R~tBHb0lY3N8Vf>r08=?uwliC%vb6bne$J%yq({$Y3?0{;J4woC8x=%
z&u`u!yEw6C(M~S`Nuf6Ng(~7oe~+9~Yq0s6Wvy5`^_cp+@ROxlm9<V5!ZTJ2aBQ?!
zU+urF&S}PEhv1c#I?Fa4vD<k{sP)deO<M%`W*Sxeem-T&-oIK_+l<ejUs<J9^s7ZI
zPs?=9FUySwo4-Dv=>C88%NuV?{agNh+VgAug?aP;Z25C>emKYN-V5_tZ_GE#IF?}j
z;az@yypKYHAIn<{Hul@U3mtpJ7IQt(kbI-Q=-kn_A-*!=!OjOZG0&L0brwS-Tg=<;
zw{y#y7&bC6>ilLG7fun|B(MAX_iw?rH4l9rZCxyTAv1k}LY&V6vF+c#3zvV%TyDrH
zaY%RCnu}Qz3?y^jr_`*tvu{Sq?j4)wt2lNtxjQwxZ1aBd#zg<g)&7IO-kxcl(s#?@
zisLMKE^A52HP;fXS5NGzdtCYG;(e}@eH-L?JnBKwa<A@7$=ZU`jCUh9C~Pe{JoVqX
zZQ8ki|IQ7+b&Kuxty{nBci*{o&9Y+WW?_}N3NQ9tx>^6TNL^;ZyEl98{ESqO`E}ba
zdp8eXLOJUi{qk*Fo8P9Iu;>^#_;30DhO6QW|F^{qYi@tIYF5Fj%T{RS!CcOFsX^f%
zPwDi+E*~pL;~O{c`+o><(Ggs^_N`a?@2A^NhyP-?f9?Kss$bUSoAx(u_9^_Gevx0J
zNq7mzf(<Y7m#ZXjo@98Skl^&>bOF;WmCI!+m8k+Ro!)HQcAjDOIfYNDG0toq9M5w9
zF7Ywg*(7MqX*|jP!MDpMnm12Rc=pt6Tm7;Fj}OWm7ZzUTv488^h;p&-=j)5t*ve}A
z6ze4XwY+%k+C|5HzJ`|>%J0wd8D&pqIhgvvOZ|wt&o$57na=D7)6{tkj!pV`ae<?&
zK}x!N01tQD)r*2+yL$s)r(8NGkgCP$w1KC2V$-^VPpmY)Pq2vK)MTF)D$t^ORWfdh
zLRoag0kdhU(wp4xDa3nTcjcbi=f31@GjG+G`ah@r|A$Y>X*YE5DE2w>Z_c_q23H)9
zKW53#IB-l_PFn4SddB4o3<)n+<*r!!nB{EZipPZla~ew7<rprQnYip~a1z)W7;mz8
zZ)581&TYc|!3q`^B>kMX6ssS2{;`j5rH9G`&Y}P%m$PC|K3OQ9yWnr*cf@&$exQxt
zYf~4IetuiIEvi{2DI6-69=z-Q<~`3nCl|(hFJZ%1zC^dfdw8FktX;^r{A}9eT9sR!
z+ZdzyJ*A8ozaP(GKGO01qFGRlkC^0!e?FD(_X;J>|Hyew?o;u(K6lx`z@_}_O#cP#
zc<d1y5EnNuD)Q=WYZH?z#wJ&;U%qU9<skq2zTV#1wW6-Jwkvj;T`|94{-pUU!<t`J
zCs^(+kU4Nt;8b;WN8x;a+ZE~ZhLVpex%|TwRJD!x{VwcukK#9&J<o2@E7yky1Uhdz
z^Za^n*7~qRRh6P$(LyG+>fRVmkM{=z7+<;uO~|+}AicNkp5ip_WXmTpfjp0^`gyA!
z1kXKvvO~8{;+Me#9UZ-Sk$(=$NgGJLc<s1(rsegyHVohR`p;Wl=hpefR*|0Q>y~rw
zD<8{g%Lg(GUh+D!{;rD1eDImKUcch~-Y?6R9y4#6-CpxB(!5aDMtsh{$pK=fg13V8
zR<EgI_j>>Oqhp`*KE{6`YYS?=Fh7jG`?z*roP5bK_P?LM9?V?8o^B_?pCGTGQnGgY
zdT|wJ=6!Y^x6N6+B$yNKGf%UN*RM}7i}?Mkt;&%z%r-zLg-ff0OR#21)^&wH497lv
z{pQHX@G0v4fd>9V4goug8xrIvH89jZNYnmv=z4R;UWfJKCL3PtWD8}<3HTnnyKPVH
zh3Rra96~$Tt}rY~U%>u+!z<SIKGE>TTMS|R9()U0C2EsT7I(M2;H~NJpTAQryX4ZM
zX49JY4XJ;BPJ13T%cPa9<Xy1q`>0P34Hs@ZRkn6{c#rVDtzW+IeX-fLFziP{$)#&A
zmhQFPCh9aZQ{r8YLdVOvW^I-iyVVxQS6=gt&<K%Q-cruK@6&_r^H`6Ww;H)?<;}l5
zHQ%z<Zu#e6iw~<#38-DqU$ZB4{o5C%U5ifqcHsS#I6ruenCo)>C0DPq?f6mAd|4q(
zdQM5&#uYhs4w7ae-E8xVcbq@j%v=-VqHnyqX7Bt@R~L2tpHlhJ@BVTIn;ZdMhL<KE
z_W8Hhnu&H)PPkEX*e@YS_P~oH&9PPOyp34}A0*$Xp4X@l_{ku)=AidemgR{xkGYh1
zl&u{Y;wNtJWEACSU{1?^(Aj+c<;j^_Zl*GGD<mCQVBm5#<KMm$ch*GZ&QD!dpl)Zk
z`O~?j`L6fx-QrjJ?s_llVop(#K%lW^eSE6ZG&P2qWy|6<vUk|LdA$14_H!%m?|2{f
z<eTFB^uOnJ|DN}E%7pI|TNZX~C^+>&yqPn9O|^b(#W4%lU(;Ex$$tvS?Gb+GvUJ+=
zWy?-!-QTou{$!TYTQ#bwRcjAExoTC-Ec?0a{I-vNZnr0t7aeUpKX=co11Bd->+G2<
zAD?=opvZOV(M;>|hWetTCvD_To$S8uKTk&AX`#)xiFaE=_p0;j{VshNx_oId3r~*U
zzE`^<N{#xjG}W)++B2u^+@9baQm0lIb;&BLbMp#ZUM9W&QOZO93u|6EuopZ&Zl7S@
z@cJaP(jB3r`cL+K{c~V4JI}Yt%Ia;a|64b#t_VxGyK~~?&#Tt)CZCwdcY67`hs@5h
z9_N|vNgqj!KHk{p7vU`N`w##8bGz-%bWb>8IdNCCmlD^Su5L+p<NI>^)slY2Og*S|
zeaoJd3s?Pay}KT_M$jzTvrTta2h;woirX?bpIv$Cre*F)-Mbrtrz^Vn`5SfoTjD$a
z)8osN+^3(c^>aG?e9Ey6!EXPjmK?Y04M^j;Z?ndhJLut0D@!fWcAZUJU2e9O>Ltp*
zez-L=O6Q%t%+cOzTpPgq!+Awj(Z8RuhZgCtotqwKaf?OzURtm2%9)1F9;XF$Enk{)
zZ#Ua3&|M#y&Bx`-UCgxY)zg;`=6yWllz7oyUhi)73c<cNR*#?jeVtu=O~%*nkzq{E
z(RGWTCm%if@^kQlHK)Jd32M68E1mwUVtK@5wH(o|Eq-<ZB_B@j-N5Lj6!c?<sjvI~
z&c8F4ruAO<bTGrY_u0%Z%RDu&s(ZI6-#_xNYnk8)Pw_Mk$y*E_+qq^rO_Yz4klyQk
zBX~}5p|i*B+zn5b9?#5^xjXga=Du68yY2SueDf&a&AesHzKAa3{cAg`qqpBu`f-a-
zZl6G8fu!r{*+plov-{Jf?rnU=@l#Dl;!FDC%jvrJLZ8cRbL(Gq`BBiEM{TC%%dFW?
z%zd{-Om^M*9kVZSn>KPOZR!o1ss8t%{Ho{N?e%trPA@k1mZcwLdb}gQC3TDa(y954
z_VO~*WE6KzcpkE6;rbNMx|(+rEo1|uv-<t|?uUo3?+_JwW&F6W?)2I-0(NUw-#34G
zc={U4`zcS4rK@q*Kee$uwCTs0O_KY+<y0ho3HWpQr}X@thHnFw{d(noo-rbL&i{LV
z=1x{Se*L(@G6{2ayW*P{^`)Qd-_(&ha_jk*nqQOt{EAUL$8T}+qx5F}r98KF*yCoX
zl~=i)J0EynWZKnqKjtaz#plnTJQH#~=0`zPP0hiTU7qcagj;6T?burp`!HLu{n6`B
z(tc|jC;01Y{@nbc=HW3Dl~BXw`!+p2Eb`Ie=)=sfGf&UzD)}F_O{G4*)>-h$mi#X_
z=F1=Es_;6+wQH8ON%_~dukDXTKU_E_ZPk)$xbBuGYuf5nX5RhtZ|(6D-gx(Emd$06
z^}_sbPF|f~nOE$v-D!q#dBc^9D~qy}mOYo*$GRlv&yB{v2ivz@-Z;HQ<?)mad!27@
zzV`81rK01j^FIp0n-3a&j$ODUBjU@MJ5?U}`zq4XpWWWmDDK{3d3kT%&YC~-QZEOW
zc+Pt4EuE<UI`-5e<*A02hqk=bj17G*yeFyZ=9l$)c01Me(*7>0+UmY8SN4C@yO?!b
zpSkVX_c7^hvHr~G+&6!Pad#dK&(GX(qq4y7l#Sx`oQh9DP5aWWD<*Bb8DM0!_u$&8
z`Ao*%Zzr*(7rTY+HD8-k)qJw%*&**<?Q_>nBfg1oI<##*mUi{E^x2D(&5|D;`6>Q|
zb&mHv+3Ft?Zmp{Mo6&T-Ow&m|IgU}~>9ZT$zt^zyxiv^Hx7>Gg&%YmKPw&m!^5iA2
z_~$;K&&rx}pH(;o_C8CiYfSw2vEoq3(QuXglC$}Ym0#vrng09x$ntE))5eJri8JqA
zlPO>L?-75#&EnFxVoJ#l-Bq!QId<MrMO={+OPc>Kd|UbcOFygPuP;YrlXnO2+xF#)
z)1PwoAD@-Ib$e^PQw>&xu+=brQj7aN`woYr@x9V#PVdgldK9I2i79DaTDqN!Sp?T?
zCF!=%bvLG+=$5p;$~Zgk*}6a7mhG>l+I+9adt^L_*REc+Y(<)Hi<Pa@dlrwoZP$yE
zb50q%&(mBrQ*y8Nr=+*?U-E9)2wY5fIQ@9)n)}A;$0pRNpA4N+n&EwHon=Ou$tUyd
zWuiO{C)GsHYZs-ZMBlday7u2;M(~F>YU?bte?R)P_-5Q}ZVywN?2I*cD_1W|TlVaO
zUF$)GZ%e1I%w=mnC}r!-fBWCx)|0%4otkbP6MZ*J=J6i!-5K%a_YSf!TtAw3*5thX
zyqAG<v%UT$`v%_OE`N5b!BG6}mKU)LRpZuwIx~OjPVv>sc~&#_+}#yt@$KEk!#}Hp
z*Ee<TSd_nH>DxQA7WfO!Rb4!B_jLW9j>5Njt0p_=1$e|woEU0ewCNlF?C+Out@4=p
zF=fJDkAE}29KF1Mw+hGpk~b6nec14Cign!`6^_e`#ZCmJZn|_z{i1isLkEVd$yTXe
z>n2<j*!#6P(m?I$b|=Hx$(xn-E@&x}2|Bd2;@IW*)Hhf5FMgDEuVc@Q$x~$yJF5#l
z6RRu!{BBKTdAhE4MDVhD_ERpuln))&@OXc3ZV883`@hJk9Sch;UuFuPOg;2OV%>`u
z`>It1tGshByI*;;Hh-C^gob?J9~0fm)1Hd;r}GxBduTW{@8~tlc-{L`*FK3g?N-|T
zGb@hy!2>g?^DBA8s*ldy`5>i`>7Mnf1M5u$i|0DM6N?M1s4L>S&+|9%S?Gb@l!pB(
zH|F=MozF|W_;I&GRa7JIjDyEkgsbQ5z52^+x}ox9Wu7`UAMK2Fb4Azh+p4`?@RZ^z
zm+&uZPTu^PRm*jLtw7(_En8CFuGwR*^yJuv*?ZR~J)bmfnyXWu@mucI`X<u9ocB+(
z`?X1dqkX>7JC0nrKVGjYeo8x@_%*+;NYaGk8$XM1=<Eq>$JVxGZ{3*^5?^gopPZKV
z>==`9LR9u9t+RVHij<w^MylTH-aDcH@5WBOP4x@x*<!C=YiZ+4oFz5K=<#-)o&bC9
z8F$(~@8oTp`da@=x{yKf+x83cleYM6esZDY@3YwAq#exFLaV-=35>q}J|*q3_O!FD
z1s=X4YhS<Dv;90L>fe$HzeU%75<kD<_NG5IWnBlOigkiGQx@G14c6bV)#CE$XH1Eq
z#b1OJ7Hrn{3FA+$U(-5W?YKnPv44ueI}>@Ec0bBHGW+@cyDK(_a29*qcxz}QCiic{
z8_~=C`ggPM>iWF9wS`kjgu66)&DP`QyLP;A)!(V1Sy9*R$+;&tU}tu}yIYuBTKdu2
z(5-5V4mPBQn2M+R_N`gd(__cCeTqldYNfBO%)gxXeYUYMl$F}@dFADW=glOJO-~Hx
zTpYM`Lv_M`7dy>Of(P_1l&)uNEz^8>dF78w@%yuKOv(ji!!=ZDj+&MizL)pO%ZR(V
zV&;;z^X7jyUzjhw#(v$Zd?Bflmx8=$OK+YrU7vsRPDX5I>EVAjA7$xSefo0LZRt+y
zgkyi54~NEkUAvzh!}r_0bbXmgV!z$XduNpE_jVZCYMou8tM}8ZkL|v~omD5U+KWX*
zOxv{S=AM5MwP!wg-{jR}eIvhABH-BDHG6Jkn3c0KW$gKP<5+dr($(5|&o8H~-Wf0>
zCZYMC#GeiINg=TtyBFBAyK~2Uw>Z0`>c#o8%~Sn%Uru0SFy9g0&Gn-HI9L5zsZv?_
z+6^U3@87zyv0#$jO380h$7Ka3osH1iC^_$b$qmiZzx7po!k5j^cax95RpsW9u_ry$
zB&zh{;>*cFN&A|5Vz%t4xNxNK|AhB8$KtuF-QL?wwwn00{ZGP#U(+{TT(j)QiXzFk
z=hy4L;M%F!vQmHB4ukxZ+Td-!=6;zrXV0NI7NT0r?_Nl{vWJO;ukFe1($=w2PFXFz
z&_17C#Q6N?e-VZMcNDd3nz(1;j=R^cfA8s&Iib1ld&<!l)0O|6zZ5;~`Pq4qhi7Ns
zzj~WVWr64BCo|cL?0%&c^}IN{(^5O~|F(7dw!BGV*DcN-J@o6)^<uxO4bOHpJj*-1
zkga)Z#0iZv&Fmg~v!86Wj_=#i)#p0vXv4d|Tl%Lx7d@vF6v<Hj^hEEAiF=+}idElQ
zbGP!e_`R#kS7g*ba1+>_)So)be2MAYO568629deFdnZoVzOYj5(Yzk%i;jzuvOSNK
z&Fx%0_v56crAOy|nX~75@ukh5uGWaZkzcpVl6hXxMuiRa+g=x3ikMugag1$#_wLqc
z@%#FMN#PD`m6i8>!kP=-|IVJ2=+5fF`>~h#JAd_xu>bBMAyag&$W|mpC-ijv;;+5(
z_Vyb4_tier91busud|9Pev%e-ZPLlhTi0zrRi+!Y<*Q#~MpIPL`{}v9r>nMK%84*r
ztn~WEoR?O`Z{)w^&;E1N`m?@Xe2BQR*0J{|b2k)N>Y889i(Ap1dCyi`J2!h%)SSx4
z&lc5wzt?qR*NR6kHobjz>+yrui#qEL@o%~m^~~i==8A1Bm-=O9NpIM3uWQD{utJr}
z-G1R;+Gls?shD(#1s}K+dZ#3Pm+FS=U*5LPHZMQ4dC^fJ?K^X}EM1{`KSq}0$9@^s
z^@}fWb2eudd)F_Y^nmUE^ozz~xw_rq(oDOb<p{ptYnNQ)yw&KN<s1K^BWGv3KfIa$
z{`ai4=F@9c>t?rlx-aW+IK5u;_PWg_Pi1}j1lO*2mx&A6xK$^9z3|k}?&eXtXZ@GC
znmBA_s(ZoD{;_1XN%@z8<QXMNRYhH2%?riLn5N&EC1&avyl(!ME3zAAcvR}1;Qy_>
zHNEk0;qPznZ@S-ZD*Dvz`0DNL?XrP<Gkd;1zhCko^AK~J>Vms7=FVLouHLyU?ft$t
zr>bh1+YD#Mto^-7`D@nQd)Joi^4e?XdFAG-t89~xZwP!_SG_n&Z&rxsuPIr<K|w0N
zvVFUzoO)C7p)B{D-IDhFE5A3rW;k<Yxt@W*I<<c7moKfh+Ih}p`NN#GmoFu(gJ~1n
zMHT-_tKD*PeHTL1^RAq)J(KkCiRRSOs@k56qTS}{$5-FKxvngnxj0+sW0#;I|J*sO
zVJeNi`wk?nisQ1dvU8mul3OIUVzzmRiiizwN)nIQ^-IfN9}tP<dwDf4s6Bq=L%)p$
z-dBrVyYJ7AWH;gRS#)yAD*XdaGp?{|?a2u`zm~0Np6~20#k?wt<$q%WAKs0aF1zxY
z{@U<n?vf*0_ByCf`V^Hh-AC<a%Z2x>!if*wX~s{;((zpyUzu<s=<u(_#+3>DGfQO7
zl-!BS_vt$Q_~1@=$;m8N85eT;pAvb|<hT6uaSfLVMRF63XIjkV=u?t9P<DN$kJV1g
zqpD3&>AjvGBTD9+&gPqO!PZT(VX3Q0C4+!Ar&v*8{?=AzM+X-cS@tx~j&;VGNqYoj
z*x4Fqvh#=-7Kv^w)(p0hxbC8}LOfkb^F@rI*M}C%8xaOuUN|bNa6X*9T1)8Jt}}7|
z2bc;QofuwdC}c8xK5($oqvBlC%>t{`9`Rp%!P}1?N}Q^5mEk4hUe>dgvf;j$%nIkQ
zo2YqcxoN+$QIY2>67Ce^b~#byv+2V6T>gJGcXo6x&0c7`bg6!S@re)ObGN3SpXPnL
z{Y(4f4Zmje^Xbc+>~%KKP&%F{vB>e=kq)ueih@a#c3m!t+EJjucYVdy2c{(p1fp7v
zdD@+1ry8cbQ8=D7BO~QN%0!EPO&QJ{&S0q-Pnz3X+c<-criNcV*s?RC=#6#Ag+r5)
zIs?|lY>@i!QEB3W>_tzUo+mt-bT9d%hn&cnBdt@tmrrJ`Uv2iTHuvGIN%N=cMFdn;
z?Mr*8FS~N(vCW&WEqVLL>doigWgZJ}&gt84c$GEPptx8_TVy9E>-Hyx$BNbj9N&3(
z!r=$1<#+!s-0$3YwQaK0X|Ln0FFeGiES=3cCDdE!S=EXucc%trs;<h@>oMGTrM38K
z>n4unPx;cU)Dlmflhx6C&2JYXUH@nLrThP@+XVN0IdaUhF8<Tj#di$-lz0Cv?OtPY
zLtcFO(>o1suVvkpk@1K={g8(>PuK0*BHqf~9}9x5j&#pkaZPqh>F%wH-hB%iJ-k0F
zJo9N07n+?cdpXELsnj?{SM{ly<JO?;tzQ(*+;Pn2IkRVlE$_*T4-}?+-rtvhLC`r@
zLm^Q3SkL6yd;!^8k4$>%dZpshrYD}SWX{f6dM4+C&wY(WPZHYxM(&>W?YVzo;Nwd@
zPmgVWxpZk@{B(;T*~g0>PF(jWXN5i2+S{*~`1JVFTDqAo2QchmN=p1Kq9>4Kv15_u
zQXid(Y<pt!9&vGrM;7O?EG)}ABx=gQkho<@Q^WFr1jT?Zr(6S@U5~G<dg|a@vo%lr
z<HI|83r+_%dN*1HiLj<VeAJ+LBJp8SvECD32}dh|ldqIggJzu7D`Jim4KoPdvE|5o
z1NTW>It-V}5)B$IPTIiYd^$`2smo;La*k^gBb3#49(*~ssdJadPXp$NQ%(D~N&XkH
z&WrgnyRYc+^@}%De6v;-&UyB<u)c?{cHiG)TE|Z@FfGzxh*E4%NNH+!YOJzIv=uF~
z^y-voedG0Z%ca(HGiP|tl(2o0^GHoBFR44~lF`mNH-mD_ma`=|s%%*B_bOX1$CR*j
zQ(t7voE8|G5z94;HAS=V+NO{#Dvr}#!XHl3ezMTUV_wlAZjbgPq0<Sx5168+i`?@y
zUix$~%hO3yz16m+uPw}PUH0;L-<6{FJ=Z=~KfZPGQ_$m^V!lyZHkw?K-|y6=Fg^OC
zi?Wel*h)Va#q^SlnNP2D?%ZIyZ*5V_Cu2cYrSPVt)>cy)C&le;mzGriXfDo5oNBRQ
zLP{cUso@IlqUP@TjjS6rgVQw9Eh9yf=gjaII3=}(zuULiv8MjQ>=5qjpEgu&>Tr3G
zo`19X()!$E=Kn>$K8u%Gx!-)>n!*E%58e%utlKwNR#*12d{jUVAMcy(kED|Xzp3oF
zuU~ptYkC!1u(l@i!bUH9+vug6=S;gGzh=VJZ8x;8immy>AkO2)SGmESD<taTo%3h@
z7TFsv3|YyaYmlpK`gO6JUv$P&bB0YDon+2j(N|@iR;SW>xPPm2@w4uvGUgvogW|Z7
zRF^Xq{f}&%IHy93!+eR4a8Sg=wO9Oa$+QHVSQ39*%;H{+@u?lpQr#<8u6dFZaz+2V
z%ftKgFRi#y-_P~!`T4c~ez)0FOuCkG@m2oU`^yu#EM-0|U|LgfbdBRJsWxYx!+W1z
zQd}7^;o3EWEerg2lwX+S^YmcD_shHU_2iR3#?If*t2F&wKxcrT#ngKCaJjghzmFKb
zJbt0GZ_a%ynfKErQdjofpV~8d`CL<{`b)iio7cC_<NtT()|-4b{R-z5X->1eIM}Cb
zJm-;Zm7V(2bi0@FD;-UTzJe?B8nz3`vMw%+if%r@p{#mWDr{>QTf?igS9eckT+Ccu
z^8NzLlGKWao+)WwA7(XkZs2tN+^%{{OVWG8L(BFmX|YZ<$*2IMg(A_Bm9sY5KmD@(
z)!zNa)297ro&E5~UG|F~SVPlnejmRSbbNl0%)x(aRF+O*YfLrH^jm#s)y-SC&b(L@
zU3_82rNo<CF70Czos=ywcd6TKH)WQyhb^{TI=127q)207^Y$pgNB3lSUhqE^p4K`=
zYw<l9u@0e3*<h})8-`04R<`Rz9o8~XD=L01A<BK<=R5yj!!3KZY_SP_rm+8+g;(zu
zb-qm;wfjo%w%b4Zb@%9fsrw(l{Qkf1;s4to>eZY6TW9<;eEKhX;@^kmXaCEueDAjR
z|FR$Z82=u8H{rkCRH;8peaoW1*)BHu6n<)*UdBZ8C+m66?OA(wZEVN|(M>Os)b;1>
z-sAFqsZy%=89}}@M}ww^Z<XqfobA>&at~46SrP4gYlDW!t<xTrinFfY_MKU|x5u>f
z1()HMLkirU7i8zjT~f*FWC^a?-IN%aw>FU}>-p3zr#7Z4X(rg+)sdT9y11{RDl>A|
zL)i&ym;RsR@cZ+3_BZk#S8lIm@n0{L7VC8=hI49w*4|Tj70FX~J8~88C@D|;b~nPx
zgdzNim(K1Dd@uU_?!9}LH%EhW_c}fOkH^k9FdD0Rc}NRN+3e-$F=Jr$UOMTU=**JI
z;tLX*JMy<r5|d&|_;+{9MFE~wEkZdeQcC8kXFFY8WKKAGYTa;+y2`7~(;2jf(LiNF
zU{ZnVLB+lqqD*CiCMyJ)w0C>fp2+QBedA=fAW14NXkM7qge5KKv>*KJ&6U5jX#Z{H
z8}_|kDeVgvs+`!`ZNio9(Dg)BW`lrN5OdPSyRFaSOb+aN%o2UscUE)2U9Vev^H`MG
zGg+5%mc??g?6@0|oZ+!OsEa{v!&1SCQ`XNGo9Uu(XF`DX$KXko<~ygpn0wK;%Hxm6
zOb$<$#vBeIP6zV|(<2hqZq%x3s^55cjd@3&{!`CM>XnmCR|?*9Si*U?XX2y}?a^Yh
tFZNET=vLI6q_E60i}C#dk6-^q6BrzF8n$f_-w0mF>*?y}vd$@?2>^ZM7196z

diff --git a/plugins/redmine_omniauth_client/assets/images/keycloak_plugin.png b/plugins/redmine_omniauth_client/assets/images/keycloak_plugin.png
deleted file mode 100644
index 9d92a7af42fcfccfc354886671439b4ccbcec6c8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18377
zcmeAS@N?(olHy`uVBq!ia0y~yU|hn$z!1T~#=yX^E4%qI0|NtNage(c!@6@aFBupZ
zSkfJR9T^xl_H+M9WMyDr;4JWnEM{QfI|9OtQ?>b|85kJYlDyqr82*Fcg1yTpGcYi)
zmw5WRvOi#9V>hvUEv@Rpz~FA_>Eakt5%+d3=Nxs{sn6r@mY096EqA_eQqFw1R<mir
z>Y^U;6|Z}^_<Hy{HY@LX_a?nG{kmwn>{LM!7l8|*4h|_ho`^kp^(-gj*S?pFckOy@
z_wWDzefcT-R;^ic=6~S-`mMar-e11>|I~>S9pd_Nd&KpPls4%sp1{H>q~bB*!TFv*
zbC11y_ZHo+{eJS@-Q7#~?77ol`<&sM!}s6!zT3^TDqST%Tfwo3h107y(A;DDy{gqQ
z<#$W{R!*Nf_2<U-I!l5yBe!HsjH!ORwa%vrWT=Lz+f{|NvAe_e{dubIU0=UHBrNRL
z#`iV{7Jd6x7Cybd=81A$4n(D@TPfe$U$56sKX>k2`4&T?E7z`_dSCb5+WhMbh?V_;
z#vZS)t(|;auG;6-t5<(!l<UpNI<g{Yx%Imphx>gefK)9#vO+>-*^7OD-{yNeJ0G_G
zwl`4X%Hn0qj!7=*l{Wvi5$w+eArhj^CIA0^w_X|>8v6A39_xU>Kt)?y+fVQR|9cN}
zxu{p(gsAA~r{ep6w0_pOr+Y6@V2^jz!&dPa4~SLHCwVXVn%`Bqy)C!;dZjztZSSK(
z1!6fWVChQ>mawf{y43aEuGf0s-@Ulo^XgUB_5%+ew#$D@28FeP<3^2@j=$cO?|*%7
z^B(EtubLLrt=W|vSsfle9U8`6jwgA9?j72cdV0?H4|(Pu49#20-^cBIHY@wj3{cp5
z1n_tzO}O-O%bmL4Z{K~NTM>8HBQQSxJ&)n#a)>`IrW~pI^D2D*r0a3jXDi)Vn-6;j
z{|%b>s+;$Y`dyE}W#^}VEz5q<$(!Z-_sUOZ{|UC?oztg)g7N6$7n|QiWR@Ld6}NbL
z=J(>J1+M8|cE%<z_s9>;U2@TL`c!Xc|J^<JKW|$W`aAMLNy1F2o^_p<Rcwp*P5HX=
zp(NW`|NmFl#XP&Ts{8rz=j?l&{7m-0TDAJgmdk#hlZC+{v{2)gLhb+G_or9C-+O&-
zQoxPfi+e)8EKfQ9<K?F-3)5FAUPxc;5vUw)U$<yZ$$$T)+j6I;XmMGH`+r{j?v8SQ
z&A0fJb90!N?AheCxNZ8xm8&Lhtp72!XYc<oPxBtl8!r+ksQJ!PF~484S$;CeN1R-)
zfx%_xZNJZ{ZZ}$F>z*ZXDJy4Qbdi=e%N`3JM}v%6UBBF3#*}Q?Q+4TQ(9PSjxmy+;
z*!)UxZCur|Ek1Mgv#U=piFthLLxa;oow<|ts@F&C5|>lFbboriq}_`DZM@P?+NAS7
zK%;h{#wmrr&&>B1o}TCaY3*XI&_CH}I@9j`N)t5YIK04Zq0LqGmCSrXnfX(7+vlmR
z4SrVfe)1;<w`IEv=d6kPRabuZ)@}V<TibboT&&@Bp=-CuubwxnDzH^b<<-3#H#Exc
z*KXhQ_uFk)#$i!5^YFL*I_2{O3$Nt?$t@dStje5Vo-V&k&htvOEbF{eUv@ULE!rO*
zS9QMi)z>EvRbSTj++23_xaaRF%r0N@OM6p_w@c0A2#TGu?4{KYi<dLE2AtZm#;I4x
zZRYn(nc3h3!O3;JgGWgJ)Bf*!-}j!7uuNX~aO%(F9`U)!TOOtVtZ<&ZMBVrL?|-k%
zO#^nP$ttbxtJ*)i>vWpIoP*hO6xPrCdDF3ZdCIn_p`NernQ8VfxLN5nYsJ&Y(|^lF
zC$e$cZ8-H|VY}R<=kx3DLG$rXr>_NKXXTjfJp0rGqJx{&z9oNlZk3w7cXIm4%kBH)
zjh?PK#VyKjDW#QmZt9gMGo6=z)>^eB^LLfyxA6Z;qH}ZeSmPuDf-m1zJzx7}^`_j9
zoJtiTY-hJ`+T+8w{;JWcDc?AjygGhjhjpFG*8Y2%e@(yY>21Gw)?$<A@yrL@VmcG%
z|9PVRZ!Zg{7yGgk)>c+`m*udvb*OC$4-I{}tXJJ<#)IX5PP52g$jQzQ{<r1j)aB6+
z`1h<_zkaf2@Uk5{SbnQ>nR(<e?R`2eT4ilNZ%&i!H0P3OqM}cOR?D5gYUFDc+Iuxc
zu)01-bNj<B#V6xm-WPn|t(EoUj=B7V$7SoL%=`3E`<<5QdEU~;Pmj0Pxn#4~Dn?Ct
zmw8ob^XpYh{m+KqxRUVX)$VVnGSA=BOAgwb7aAX4UcM#p)8=Pkt;=4&e;=wkablit
z{VC1mCl0l8-?dw6&=z3Qv#00xiieEsXC$AjZ>spdHEOZ*`h}f;JdfA<^=IVeeS6n0
zU|sg+%l}WO&S=;lE>)k`Dl<iNiQ!Z)@9fukFRz=)v}H^zcyYa~?ORFxmnmASCA4Sm
z3JoaR;A7;MS-Cmw?5Fj6O{~k_m7M3zPvl>+a^=dh)ym$DXJ?!5{>9v%@3uU=aBs;|
z-+4BcF7<h9Vt0pyWxsg$X3D;OcIh39o^U-_y7@2D;gS=I?I&(*ymj7<AtiVDCxIwi
zOK;X!!OKjRELpkIbD8h#XP5q4emo-Ve`=ZU>?;xF8TVfoesbVon&(g-8@o0n^!kY>
zo|B($x$IZEy7|A%gVh|_q0^nhy(+u&T+(>97#=JB_2p%q&&v<jqVrGAv#m~gI-xbb
zTTFM-FD1KmyHa0=Mefb|x`BVoBCo2@HtoMxFP->!XD2%!j|i8UNB+K@L27<7>m|jn
ztxPCzcAfbr>nz{TH}yK#=Lv62_w-yjY0DScqL?p_nDk8l<ixekF<%$6OX*GI)Ub-&
zayP%ooBDIV+}vPy$wqsMcDqTK*Hoi<I!&G$i=wrj+$mJ5zkfxwHY-6!e6z#qWr+cf
z2ZE+7)a>_2p2qt3Z*A5T={b&@)5F(BJ#{<2?Rs~GcDvD!*#!p}*)x9olw@)-ay{RA
zJ?=W+UBe68p19w8Xce*ZxLoxbX&VWPnD0}=<0L<NzOSwQ`zp~*y57d0`MYl*Q%lvc
z9?7C76Ww=Z-+OBN;ehk1oK;GnjV{=g*!+m$3Cm)S-<NZ9LRIu^i9O#0Eq^|l{3+<s
zoEiIzo_d)xELpe3y7VKHX4|#yKW9B6cL&<vN<TSC)yVznqMZznkLYlGU1;-3>3u?N
zz>mwze5Y?dU$=kuuKUvy4s5UcTlJmq_P*U>Z^RGAH(z|WwfVSwO2wNSX`nbwJvZm3
zQQn-gU$qUfyUQ&9ZQH)xde_2sE7r_ycI8(?<HL7#NvE)Vd^S7()Yb6#w`>iGa*_+4
zo-sZ@rN8z~a-C1&1CE{Ye;%}-`@#H5h-Fi=O`x6C+Y8S8lh@b2oquO<SAE!y{htoF
z$+m`sh3z;a@Xg7|OS(SYeR<8pkLGu}%(uVS;K&uZ_cz3UuIk^js{(2nrI^-Uf0=x#
zD6)7xSMdC(TMtXVWXy=`Q#^4(ICoXV;j-YF4Gb4bkB9S`cLjtl{2sn)tM#Te!N-<V
zo1XviOX-S9LVWythWJBs#gB;#2?R~iTFfSW)F8=Kvv~fVpG$S5rtfFmfA;b5{*08v
z4vSZ>zRa0bxzl`>&Ufpbnl5!~*JuVWv-<T$%0YfEFYCj3=am^)u1%3Eyx>rI(801y
z|Hqz-R}W;=z6zNxU$}+S#w1l#^aS_5N3n&rLJLBs?f<hW<j0oCdv5cOHlCckd{v=E
z2FLkB2Uh6E?~AeiT9lc6`?bxygt?VwS}cxMr<T0?Ao{*{-|d?hANC|#)QZGaJ`FWB
zxvHoC<m{(rvDLw~wQKwGp6~oo%j(xs`DCK|6aVveub=SptDlgc(Ca_#+^gm@Yh!*c
zlm77W`<a=>v2u$!_bok^!2F(3>Vbagg0(xhF)XNjc!>4g`yhr&_k9vB0dXM>=Eht7
zA0&!%J^A+Be!r)b)T`Lr6XyR7I=)Iv|NpD3SI2$4d;eUv|9iPXT{P_a#swb*^Q4Sd
z<a~B?o4@+fq<>$x>TW74Up`IhmB17C#V<0}<?rc}Tm0#|#+&1*k1q$U?|=Q{;C@4y
z>MPOz7cG;HU(D}X5ttCpZ|U-!sWNN-)A-xcOE&UEDZL0hz}_<BH;12uSh&XihSGHk
zC(eIb6vK4=p`gdYioaj4hi=^VGnMb!;osRGW^FQP@VR=?bJ43g`U`IM?7G?*&z-1n
zCanJVQ^^+(%{@53CLB3!99YSE@UN(L*pKj5X8vXF?v;sgEbDvQRK3OAx2=A7RDAl%
z^zRL)CpXGpp7Qh4jFP}iP5#yktN%`~x>t5Pw=&;1fosw?#=y$r{Sh}$i)-pW7vI0*
zXl-xR?{9DOE~FY6@>t%wb6~TE`xIm4(l9>bP3aR1qZZ7W9#@swP&WC#LC-c(?YQ#b
z<x8DZ_ItHlT^*h+eRoX>KObKP=X%Q({yVRU%3gY3-6ERR^RK%{-u}hRW8eE2UIgUt
z-&^bA{V8Fa)zVKz-tBibRkicQPgR`g6WDB$y6nq!Qy1<j+ito(4l1g0j@o5>b7oi7
zA%?pARsa2z=Ey#My<hxxP}K5_hik9>)~?ciy6|0AI>X@)60gq&r)NLO;mS~1pi_}`
z?8K>O`RX?W56$Jxe|chqv-`OVlA-+yKd(&x&c-fVGC@9AV!=e4GXjqKsZo0xD;_l|
z#7>wVBfWQtKl?oP$5(^r*d;GJZ9Zpu<MWqatjpdMc&!WgAoKZSVAsVLOLO+Tko5At
z6QVWmPVM)*%bA<6-!Z-*a&CRZ1pShx`~UxaUsdz}#Yu0T2eZv@e0n9s>h|%1)h&mM
zcMJZ0UDdp8r&Y>h{`dBaqOIkgxXycWw#0Jzd7HmyjQ`!e)U@*0+S^;?qU1IuzK>q~
z%6WETPeuEV^?@t?tc~66x9{)U|1bHc1i!Nl^!Hz1oWddTXx+NJx7=scHu5g_(cAy0
z=<9~(zbq?Gct<Clt=M^1q|aSLaerF-%j7Ftf8NWUy>##9^c8K!8MEAEKbAa}b=6H-
zpz$?ipQWa5Zsn`ndA{XcQtO3ZeeIVB`n}cp-5X!dyC!p5q^?a*e{yYI)XlkJjl4@1
z_^sTs{6&$eOr{s-Cg(_&(_8odJnQN&P|~;e-|4eIp6{tRb!2Vao{EjT^;ilTo(sCL
zT;rKIHIwbcqmI;zJ~PUf{b~BheEvrzYvF}QuFPJhd^YYsOIA2-toeC5a;kFaviB4I
zFKm~4b)4_$ySr=OZ4q7;G~-&wYHzy}UuC{$X4@<aU46f(O_T2epPQHW$^#;@(V7pG
z*$l+%yB1#i;XK>!+l$4YZts5g>HQQw9-CJc&zGe>Of;$%373ClIH@9Usmp}+FRDyN
zS<N}GSO08k4Y2=pv46?7Ww*||e=hhNQ@SM1`u4)C`%_oH{Ql;y_Vkz{&nF=%acrHU
zI%d0yF7!C>QW6T;66Rg;>FwT6@~cZ&q&}W&>!~QeVwdh&GVjPr-=Fg@2VGjg<`lY7
zd_Hr9=hj(YR(amqxFXdef4`&I_a#f&rS4n}FgU$)*?O;cZ&yw9vS;KeTP!v2<L47>
z<spHc4EB--X9|ci-_yKt#dlj(0l(s53E7$t2mLgkaQASrHNI4;>wQ*GdANt|yYj0O
z#cJ(8ug!1eD_NKGGSEp^cX!I`YisL#@(i+a^Y6c&$ID#zQ1s$PNlm%39}f>rdTe0e
z#&1)wf40)1xSuD2&2D_&S>e2E)hVs-`}kQikELsLEnX^eK*Dxao1%vGV&0UaY#I8x
z@p|R=i~H-BSLEE=bM@n$l(v0yxFy{CRFfxqYdS<5D?h5#i9L5g*v6lYzwP^H8J-9B
z6PRC2kpJ`G{*t|meYI*N`?yXB|6LS)dgq%<-l;41GidhAxix9}nunn#55pZc1~^|{
zy0~Gz&2qi;ty)6v5eytNm#v&_6nj^2*(;?x^1ek|s;r)yr7DGAO=S+QUT&K5#J>M3
zpZM1`mo85}bz)sySj~?@MuG6P^KQz<mTua(|Bml_!|A+t<t7&&UaFKkQMQY()8M1`
z&7&m&%a-2@V?1xR%Ur=Fbyi=dmD`7(4e0?&fA<BM@o+s?cvEL_@0CZKqeJl&!476_
z{RmspbLt$Y4qe#fWFWt9)0P>TOEi?7YR@njJ(^>Y*mP#T`T70U9N&a&e?EEKw=PIR
z*+K5-v*c2@g*G3L2uJ?>{G37muYC0z!|T`FqSx)3x#vLr6y4y3VgWm@)jvA0IZW)S
z5l8jUrPJrIM|0VHyRo?M`IW;q6Jkmq*_HfxX1@Km;ZenyxSF3kpK`?goB#iFthzH#
z!KSONTR!~X^ZESr$$nNR`(^vq*v>wdncEw+e%|iOK^3vCJMU~uYhRP`vSVYCq~`in
z)8=soFTByu-JntX=JHud$@q!;%SBwgcloTFal)$ptWH<X*`mc!yJkr^KAkFlxn+CV
z70={b!6rLfG<bsCpU<<;=uSx2n!?8X-gd^SV#}u|4i|4doqDl}HE))>_=5A2O1$en
zXUmjC83c&G`&@L{hO=5vqUqzbdGV)}XI!(YkdQD4^K*=zP+yp^HB>L>#)f;nMu&3~
zwn)s_6tN|va7p;d6Z`k>J$!LGe^1>j|5(YZPR*<$2762_Pj27W;Jdh0;^#%SuMPGW
zTxwUkn^iuyt2zE5;m&j&%Luz)7yD1C+yC^muW{<L{brGwCG~jEMTPlI3Vacfe=e2P
z|GGT?4#N_OoV&Yx_s&_{XE*tOO=HiSJ3EsT+!kkKY@J*4VflIHin+bV19yD8m3?=g
zbBXi1Z;kKU<?CAJ6o0!}mt(T&o%5|dmEFNi5B(-zoEUGFba)A4+vjts-tO!FEN_pW
z{#JI6^`$Kbzlf}UnYH}<w7hd`x~s~U<d(HnneU%Fb<*2)f4Pz+61vt}-PO0hAFX-+
z#<`P1Qj+J~GBelcOg}88y)>FPVn@`3Rj=IlUEUErE#w>LZC&nG&V+rve#<T2Y&blJ
zf!VF+jf447!E@(leLTR--*b2E`4xYjPLG#brl8xeko&~lTCU<j%uEZz{dfOwOS$RR
z7^vXyR^yv|YzJ@Sl*!$y6-!0mh4Ayc&8~ksMeuUx%^o%H+>bn)FS_kJar)BYzEg(|
z^Hn}*WH+7fxSlO)!NFS%73+@oO6#Z3`4}fI&a!30ri=F^8!cur{G25JGBU)d@{`C+
ztI}0Iv!Ce}vrDWr&Azrv_1^CC?G{gc<`s6e*?g4xP}6Vy&ceP-;Ck%$U|s!t#m@gC
zmVDgzeee0L>6(R)d(HVS%s)N3;X8}jgiVsR^KIk4-zi?dCU*C&k0N*7?tN&sJD$Ho
z=atv3^>trYSMr`&^x?<jerx~kn`*CI<`tH5G0&=arZM&O=c|V`*mMs4y#D`peW<Ma
zbY6RjJ9BD2X?|MiAN%AuAM2JsAKL9pf>&*+-BvYYj&AI(D|^jPwce=p5ICCmXvM|3
zW|FF|LQIS;8?TCfx<5U4%5w9q9U-fXIG0~F*}B#AQtbi7U*$(K4w_FcKYOun-Tpno
zS}YeF77JI@#g)3vd!sk~ZSATH%9~z={=K%qO?W+DsJTjKT)|$=Sk2?%<-5zh``B3z
zwAjTfw!C{_r}AvxOM^JOxW9`&B~@wdh`hQXy!WQGb{J2IgZQ6nw)s!r$vK(l-`mq<
zc2mjtOzCXFUZ$UNbw3^&Ig6fna&q#WldL<LYCc?w`tV3+LCdD8oE8%kk9L{I{Ov7I
z{8!lf@pbT1;pI2x)xNWQd9CV}!r3WP8*NU^e`#fR<HSoI#|wQuI~M;E<+$9kNp(N-
z^K(;``)q>vt~+wItysD8qW?q2DhUe%g~ZMJT}+Qpp15+$h9jl(Z@9)sjXfU@b^nU_
zvqEy#1mhHyb$ZH-$7X#m-lD#V=}|_*`w!2V<$pBHsd}~YT*UKc*KV<0y;t@ar%ZTW
zsXK39hgP@6sl;tB7Bq9kUvb{Q<MTP|yZ1kweWJQ9E-}LDmQep}TRUae=40uRjxU~j
z-gC6F`4#lf?X&Wq8w(Q-9H^YTrGA^$gy}B@dji+laV7mNaf>Q^&$H>mgN_9^roFS<
zS$Xu?k8=0FwU_Mw9+<JxruEi}ZuJ#G*N)#54&m_eRB$oqS-J1or=FU^HC#+l*G<+R
zyf}U0+Pzr^rfe(7j0s*I`giK5<@chttJGAeSvt)1W~qqb5a62KC8gx>YdhzX?&~!t
zXAANwpPM-6hk?p}2^P^G`<T3n4>tYm6Tc#OQ=z5t)4gR~T?Zp1Dk7}6y}!`+R8sj9
zmzMZy>r-|A{($P^0~%6qB$-Si8U9SN*WPINWg-8`!sBw<lRw)$>#$0g@*(cW)~R)D
zFOnl`<{17eW^DccYPC-7ceDG4nIC6L+&TW@kzv4br-LSX=RbAt*}Tz~??Qu7?A}+p
zH#Zb6mY;23(YBf0@I%fE_QJ1S%*??(oR^OtZ93|f_&A~H#l@+CcjawQ{P?=QUf195
z=Mt%-ZEH#mey&};diwgBr`na((<ZWYs;)3lSarC`!pLL3=khy@%bwdWlJ%E%So!V!
zuLXxQcir*~RyFmrp0P}xO}8v@uhfK(ncHiu;}5W~T&;9fOni4GNnhr&db;^fH%+GM
zUq+j@_wV&Q>=<VAt$Q8Y&52sm7fznB^WgGZ-t9BETo@Ks#JSJaIebRVfvv(k{hZ89
z+v;udpWiXI-@7z%0x#32u01SIW#kg~%&Y&$YJZHmCb8>~+4qH4-tJV0?|l5nqVF|l
zv*w4dulIgFeJJ;!siKE?+%0vxkDVU<=JE!%C4W91KRq*j?$c!%E0{kWC{c-X-PaxR
zP4wEjSmo+(1_B@UOtm;5pJD&~PVw9|eIgYh^8bIR&sok9zo~IsV(X3WThlWZI~5$4
zE&mZ*$`kjfH^=M)PwBqz_kJw>)ygC*A3l9WMUUWWqsr$Qr5#@GGM{c=xS;X>b^YJ&
z$=_=XeZEf;e0^%;f|Q(7wmh$G*#4<qdHLewx39ZXZmugkui&~M=JUJR2ELbn3p)NN
zoG(3pQs&gCjW&CfPi^&+S*l_)<>b1MnKh|Qr>(vk#hAVPdOv!u=1R@WyMA0`D@uO(
z{q{?)ovWAMvp=X<FQU|P?DUTGO?SDQ{Mv+4h2>suwsoHOp?~Gtixw9O>ltKcZT`0+
zTi}FGz`2LQ+(I+*&DX^BZo2dM(t+y<QOzF<{{3k^9JZ{f^z|OzzMHoWo=SW5wME$P
zLiT?*!5NmxZF349b*}51^Y6gT+*XZFjezji*-M!&m&)ie^E-;n*Vw*!_36rbpX*}W
zT?Z^K&$+fNutDred$8Dt6`xpt-=6X4>n+n+@l(8S2fWWQNpLW@q2r~+`li&u?#J8w
z_mh6VuTOYTyYQmt-XGQ;=3ftF#1<YEW!+ya?IxI~sGs8)l31v~dwS9LFUy|XGT-)U
zg3%+%PZ!-XCG6vZl8;qiPt3UT=hl`#zQwmHO@Aufm~p|UgXvhV<J4!i*W%OV&&_}S
z<^HL2b*5f|+fA>mR@}9JyI<J%aIdc$L_R)<e4MT~qp8Qq?mY9Sgjsw~XZEVIoyyLW
zdw$QcNA1(n`YjHBUxYYDZY(R5{uQLbtKXNI{p>&E^SKj`-8wptyXm*jbKMAonwjPi
z%ez#r+gMeWlz-oKSl9g*lPy<;P=$!k|K2YGf&K2ytEFw@rn0?|y*Ked{3*`QVgl#y
z&1L4F5&flchvNgyxrN6hZ(WmNm=J3h_~`WX{ZHbb9{YUW{&|o6*DfQEW5LS;W==hk
zHst~5rr*2o|2@~Q$@gUXS#P5ax)0v%eqZ$7S+~}J<@3UMFXo)D{rA}@+3g|oZAG@u
zbK7@sEj{s~^UxxZlnc9x<{#+fv9Bziy=PPC-FGLHn~Z{%%5KX2#gsmyjd5Sbjzl-F
zsxRTIUmZQ(V6@U^zk*jsbHckRmv`G=zoK2d`tdTBQz`E8QMW9F;?^JXb=~@+J^psA
z`rj&H<vIGBf}bmPU3a|j;%0(P#m}eH@9r_ZURYz;_$pkkN`J-kXHOD0ZZP^k$KutB
z#idhTuU%mjkgpf{>fEWI3zzS{wG;esLb-p}zQmV{D~{NveC#p4_xw1|(P_HTMSioR
z<c`bN$6S>25joZ)xmfu++kY+bJ!M9fEqY8`mw!p`(Gs;d)nR3<aYAjqsA%Y`iz)F|
zHbOGRXD%95pL?^WmVeiWNpkgn4DHpd@1#42tuNa(X&ZZBY4duW2Ft&;??3XHe0!?H
z^NPQAPQkxtr>55B6m~q``ttko`E_o2d%v1J{}?TEUSNT`hVq|9-uud~hHlDeVQy1o
z>$KG}J@vt0O##<aa~_UFtL*Ib`8D6S`YM@*+B~`cb>aD`tJT)evOE5Ji%Z1B;+3Cj
z-|g6<v*MgbzS^unw)_?|i&<SsYuq;<*SRFT>({T;O)FUQgSOB9C$g?D%~^E&mnC=C
zCajA&Y|wL6-ul$jhwHSyPWt4&?z_jaWPwn50df8v?$HVxe6$Uu_?K@t>XBd4%&YTX
z_i5HjjR3PRsjCm~W9a6suutA&<}jUAJ^U79WZwSl>we31-o}YMP>tj8vggXaw&vt%
z>qncFe?L0%GUkBB=38A=t-m8Duy0A%JW%~QM{fGbw~vl?e~R-B=g5c;GYFDDb&74f
zr5(S)S?~XkQpA^gE2SKN(j)9Dc4of*+2q;nPyMBCHGZGgus^=`sp$7|LxuPro)XsA
zXG}N!`lP*nmEo??<UN<~9X5#Mu&e*aDt=<mg`Xv@2?rE53bk{w+s;>5b3x(ZlG5u^
z73E*<Ps<G`UO(67O!;&*-K$z2cOR=|cULWLW&9E87vNlS^M?rc8=Wi(jefR`eGIW|
z^AzX(Hk;+#!Ks$9<b4p6{bIIEzPKPCN8MMdUtfHlW_|L<?OKKn?7vPwsjkkNqb`1S
z<3ovv-~9GY8>(1;O1I|3Hl`c8<t*UVvVZijvA3vKoyF_1M1RbwO(G3^PTr?Ki01s3
z()r6<w!~n9_%D}j6W2Cw>6s(07b7ye@4NraPaDi0O(}YI|Nos2KZJ5yc#a%>+3mEU
z@UhzVRTGsqee9^N`IfTffC6i>xVrFxi_71hWq+}WG4|J^Zv7o!3ZGvM<a-%Wk!0~|
z#Zu-r_K5vY#V7C|YYcWRP;g`B@wqwc!)EDq;d8G{zwXc_$?{Fl@M;VX+mg(`zj)UL
zr!t>e@L96>&HG!YigxA)ci-8WDDKQFwClIyhrKhtT)8<ZY`V3O7PI(jL#s7rx2zXk
z>M_ZXImNoJhBvL@*A~T}vnwuDH<|7U&g?14lDt3v#>;hc!}t#QfA?yyDruZ;a{5)C
zZvQLo=hwc3oGM*A_0og+4<1aNE?c-<aJHe5RPw^oZm;C8i)~M^%S})}<STJbd~HA1
ztw8VT)4s&InmI71uKULSO~>p`@%i_6*pIt0g&iuqwBe&R$BPtK(LYVgkDV{DVt%=o
z_vGWhGafqF6>rr&CCmSEE>lGiR|WHJ$D2Kmj0=6V&(E{1x~JS-StM)By5L>tSGi3O
zkBY~aRL^;o!dB4ls+PW|yx_A*aQTPBzx4Jm+5C@pM?Yiz*Q;+#o;01@CMmOc>YuZY
zCyz^PoHDmILH_@b6Lv4eTZ}z+oPNk#Q)sX(f<0AQaJE-|#LsPCHm@;Ubw2afuV;mq
ztkasVDJ<GJmH+bAANoC~J<_W(*p8Wqu>TC!tKXfStMfi2vR^EFOF@Uz`e~IDsyv>X
zZ93q1x#elwbCdJBuXsO-MisrhR#e7fd*D;gpB;<iu4Rg)zFFNgkAqdb#WrihF3G<)
zC+Nn%3*5&l9U8eWvF^a;l~zhyLX8*qCP*tjIpZlVJ>h1K%}G`sq1C%|`0LI#yl!1Q
z^&IDd`>zC8t{>Ta)11%e_64z>4DrWO4YPg=uP9!buv(nc=eFy|S^Fg|dgbTeU#Y0f
z+WaYD=f@NC+Jtvyp3kXqI@f3UY)0bgUzV?XCu=QGzLCxwbGVybzUD-~q@_;&w>s9w
zJG0-UGZ&pr>N#KY%(%{{P-FS#4b?U=FD(uvNN^tBut;=e-Ol2(w?Dl&CU!?5>&5af
zj*piGUoxxRcfBp9y?NVBbM-GCTdSmeCbNoaYv*fp8|@7Zxc5c+pwww6#S6=h%{!4k
zt7_>^Bex8b^S!HP-`YBPgJfB)`eIT2dl%+vO<#Rm>T30;S4_2T)l(AMU#j@pojN5@
zGcR3}{oV{luCgaNHH!26{Zn2WEOk*Vy%V00)in3}G3#Zr57Z6zvDU9$+q3`Aq3UUY
z>CEbCGxi*7+!MgC_4kQrU9qK8q)R4TjkkRGPp!V`<LnLkHkF?zXy{94e79Ir@tAk{
z_8#}Zx94nM9lla1AtNc4E}`3(X}wS5&#l+%cfU?bRC%_lT;jsU!pCgi15XAmkV!M_
z6}cX%An@#BrlG^N%+BYWVe4W)9;%YP=jwAc(302qnT*0&-mgaMl$0N9oo;LS)n#Ov
zp5t|H)$7UI_Bp;ke(K44N7nbI>spg8E;hB;w#?t|>W#HF0a07*c{rm~m%X`F^?PaX
z-pygtuCktfdVW*Sox8Eh{$Im>t6T6qm2BMKZn9-Q`^PK%EU$$_%}-DM^2D=Uq2R3T
zX?yv9H~xlw?TPHNxn&^r-F-s?gZ@Ove#O3WG5^{%x;MCuYmf1W%eUv`3Lg7+YPrFJ
z%@e9poekurrwXSR@y_S`&2;tZO@6Mk?D{tU|1j(=tSpqj+5KyugxqmKcbSz|`33uD
z|Bb4PxqkKPslEGmUyl{<uCZNYuz-E>m$mt|w{Ny5J=Ey1%IN2s{V16wxl44BqEh<e
zgATs&hINxn&R951yE5(Mp<kyG69b*6o>{eaf{C=RsrPB=Z|u@nh0h#3%CppI*(R@7
zQQJIkz6y7}_98=B<W%@xrRwduQ^R*J(BE|~<myeWzqen=uV}w#(wz0R@qS!w8<%cj
z%YubQ0`Acl_?9p}+@v$V#vy87{HBxk*HX45e0{iG;MX_RCi(N-izcoxIPc4MlmGCs
z$NN=UQa4BZSW{~7Z`PiO4b_W#lTP2*khu7F-JFx&GB1v|%T&#%H<kJP{Cs$<wMO`h
z*w@}-8cpvj*2Y-wXxuH)v*q19L+#1)|GsgvPkW-Vd=iJmeikvl4^HC#9LsL*U63G=
zV0r3mwRiezw=l(4XXXI$7<XyW;Plg{<i5I{*u5s^ms6vS{JWJCr(ZqHVfAE<&qlxe
zr&4Rb-MpU^xYj4;+9g%<HMbOBUK4xyWJ(J6yQ=9WrCUzlo5i;M)A`6b3M<yN@n8LV
zVx{S;jTIZ66Kafa+0OgacicEYV%36+{L*t3GAb$_RdyeKFV6KMsbq7~(XL5P#923O
zExQxnIQ{U7D=D@;n>IbvFY`RDxL(F-roLPE@!wKQ*B`&|CufPA-f|J;4>33H?z;V7
z+uBFH_2V&V?K=$T+1>>@lzmwyQ-5b;-I)TJ+Ao2Z?%Y|Ex%c2o-VFBMiOVNnynK4P
z{^$8pmM8dQ6Y9m8UL<r)oNV@P|NlDsvJ{PUxyhT?R#jK;nJT(U;<CXR_SU0@VkKXf
zKb<r4@sk-Vlc!#0Ji53t#BZkJ-qPNv!&`FRe3};E&gy6X<9nI^%VJ*VfKv()+y1`Y
zcPna1(6*wynBBo;Wh*on8a6rhs;-!4;(IAM*>7sV6z#Y1S+5F~JFMvVvGH(XO-r5~
z^Tma2=UUFZ5?tdia=vr(#7Ug#hBgdOIM@G_aVoTQJ#049?P_{GQ?PnmyUaP(czZsE
zd6&y%-cIKK!Pj5<&0<E*ho<`aV;MYp$9giQ44m3NZ2g$N<>KYLk58RaT`$pXaADz`
zEP?Iw`R@g?-_x)C;Vl0x`SHPtZgc0#`rTVIUpiOJfMw3^6ASkrZP=rsJbliwgNv7*
zntS_r+k=URwp!_bs;b%(Sh-<SOHM)0rTbD}P4wanBDE^|Ssq7tE*Cw$qCBO#uk72>
zrOta-1l%u6__Nb8RPlT1br0qFn%}3Eg#2_9|Ne1`!Ms1Q8mp!}<DFak>2+z1ob$@A
zRjbox&#GIH^2o|*mycfVt0}CZuYNu;aJ$0!zCEF>#bUQS&rJat+e!Wx7PLCn=-msD
ztK4*{==HQe_7CUsTeO&XHD1(|{39Z5k*g@a{}bzP|7YjsK3^-ss~E$^Hb?yY&pef9
z77I5t^)lt&ym#$g{M-E}RD)Za_PS~uO4xTzT&HjU&jpDa<xibv`=yqC^l9Ge9uqUZ
z`*VI@3HIlgIJ?m3v1Bk)u1{?Fn>&jAHosO_>wI0<{$GK=ooRXVn&{`Urm1@*W-Vub
zv}@PyCr4BDe;M9nw0}AMVnSl)c1D{!$Chp0bg<{<`8=7QSMDBQ|MlX*8!!D7Rqp;>
z$1dMLwu<ZL?d8``)vvkly3Q!=;=)baJ#D!~CTS}wCu^Tdi97s(e@Wr&as%Phmp}C$
z+iRqHSGBfE*2g`vr9ei3&+605FKwJxMT_n<=b!pzdv~5AS5wW^31(-bb#fms%amoa
zJ;s<Z>E%?-pMQ_seWjW?Nurshcg<z~DlU#?npqiq+GeZ8y`9!hoEdgFqu}h9IEg38
znT<~qIX>I)Tw0tV`StngjKdFXjQHknd496LitY5Wcb}i>UNG2|{;XGI`)iJV+u}q^
z<9^u#>1GUKn;NIq23Oc0G~;5vcV?FDZQb8z??o-{&tA9l*w*BTyaj@F3nG4cC@lUF
zlq37&V}JddW%CdH+2|;JAYo3)rISUEI)7F!Yi+VCyB=G<bDzld_%-js<0_wSsQa`w
zzxMQ3-|BgKCr%|)u<7`pK3pNmerdMjDYjn{&p-VA&~E=B`O(4O%T}-77xhCdcFsPZ
zr3O*W$73ATOP`uc=QDgwI`!$xW&i2>|K8sJHTm;#2G=*Q54>{k&3Md^xFmgP?DQ)8
z|J5&j-maCh&s((RYX8@siQX^%Zg<zdb#K1hGu6V`i`%y?)qe6l_Ub#Hodt6<cNi$Y
znN@w^p{%XY{R3@krVjt}59dYRzqRs98yC~8@TWHlFPW)5`z%o>7;aYTv9_wD@EC_`
z+d}hX5!M%cTDxlwRK_*@lIB05uJIt|b6+!m)yI8WvmY>ja{Lir_44VQ%+HLAH>{{x
zkp1V!!^^V2xuv9~lwb0llA1fIN`z_I(Z}-^n!KC%{g!F=_t%-$876U4gnY8yKHi<8
zmYTHY$0hCBERzEd88oisd~H6~)paWISO>q9({#<8PYdHOt2b|Qww^6>;r<DAy(h^%
z45^zoTKqXVC1-=K$wiy*KhD~|I$*a_zwYDvl#h>^?<`PwC3$J`wBHt{{&qj7*!=x+
z`QP0?hDXeN=9*nK+z?=q6vF7ccIBk~(MHZj!ppqXwp=__^6i!0SH3;=?G3k0Z<)S-
zy}CR;jko_|uVbP>{`ZWGbN9Pm|6n-0ed%idefx`cAOE?*@M28_Q=C~Q+pPQjJdP(V
z_N?+hm!RmJ_TqC)VHL|EPiDvI7d<!*Jz8-6(z9kR(?vGvFLmYD?d`kp+D`DCm#iQE
z1B+QTpVa&FO8-ZyhUgd^3j1#GY3=j*%z;}Z>$@3Oe>_y%y{Thy?vJlewx934^4(n_
zdU30&H(yZ=$KeY8^#&d?#z!>YEM>dA|6NL+Dbo~D^~E0)UafHyGv1LtB`n+9rOo1>
z+6SHeM<VwYwbnEWRy;bX{%3WK!3yKUrCT>GoPPg&-M7to`|r7m$7=NY`c5orNYD86
z_Tt=$v-9@dj1_NEWLp^*`@VCsn&_Ucvl83G-5*WYnWM$6ZkE`zP?Kft61Vqn`syAZ
zx+0#r?rmn7wC~hZJ-N1<9-4e|!nTf0i7f_;9YZ5`-q}+&eNE=ePh330i<H|>6;4*M
zt?LSJH#iYAe`i(9ZtH`JFJuGdv_-0S?TT?`e(b9^!EVilM-KA}gYBOL1_wXq>oWPk
zyI^JTa#yZ+fhXMaD>W@I6>mB*-yyOx?C;!0CGEr2QB&Hs8Y_D?O%C24`@mlL@zc}O
zrr+^S+BJRgv>&pXn@;*|d{7W*6&50Sa34Q^{_m&ye^+06cuczf*{!DXOI!F4vT+@}
ztQ@fCef|H)f5CDUR}YpSUoh7-@te-Ud7Hm&4aj=n`*E&H*siDCFB;Za#CG-_G`4y&
z!TFBq{1ZQZpVli5UOjEzOo3(GCz&JuR&3k5)_32>-uzuZY7Bi&e{M9Jk|)v_xS&9S
z??=dw8=I!oG`{C`{W!;hcXpNWrIo!hQ(N+R_Rd^2&Hl^v-|Cswyffu(n|pbE{SMUJ
za+rGW_Jy0;*VhE4N^hOeXk=3R^vzG^_AEZ<Wj^QDzn|n9`Zq6mZTF?;0(SXTe$sBA
zx3-;RXExbg^XY5A-aozie}pV@t6m0KeGf>OB5*6FM#cZq+M3V4^%fKCb@D47Ts<ir
zloFEBseB=__~Hh8rTg2?wB0Ozwj)^jf%63RC%HdA-@Xv=eBYUqS!;qCeD{C<_wW0r
ztgF$V9yIgsHq#JsTxu2dAoxjOoRGodBl%mU-rmmNe>iqJQ~j^Yo6o&YG7w-Z-S$$K
zP2k1x51Ef^<WKVPD8vRlZ%FvvCw7DV%F0bg)6=;cFQ&fb{&Dm~OvOXjq8o|L)n6FW
z%{~>nyz-8%u9{)@bsqP%iTfpOa&Bz!ldF1>Xm4iTCaGff(|4}bQPD6C0THc3FR#mI
zy_oKty(LiTYhRV;th{jjpZxv~b3?YCa^CxOlX<Y5!h~}VrcUHmV_33OE^PWoQ_)Xz
zMQ^+OnqqcdR+{DKDhJcEHUYb|3|a-BW`vYhM(O3gnPi)}o@agF9$S|w>8ZyXO%fYf
z-&vNQ|NidJ4~q|)ZwoAAK3hIp(RXxbeodHl9-jrrr^H(yuZG8ePX5HcrM!Ig^p52j
zj;CAfr{vaDEk9_y_Gsd}#$xuqmcqAh+YKfZ|7Z*B3cm1@X>r+k+wUjlT?_lJm+<>r
zZeHs2ubqE6+2w0Cd^+}8IZ<N$j`o`Mk(;CB>i-n}e|O^Gmlw_ab`PecZ}45jlv{Wu
z(4F^neEpxt^6f`i=ie4T@xnn;>cfPHm=KNyg8P(&U#Pw63_nu7b5X&+pU+n(&eE>_
zzHR609aTc@%fGyi|8IYDPinXPY}vy+LJwGV<hzoz76v@{ZZNg<>=Hfy<?X4bFUG3n
ze_xg?Zt>yIr;xRGZeM?JPkSP#(J74u0uqxGibB;?zvtvl{cX0T>RzCPr0-=Dw_BCv
zB3n5Qu0MYLSjmYqUZr=h9!{Rp5T3%Owkq(Ez|6469c9Y8ygNT}`=v5mO0Q;npLuUj
zW#7FRx5ho?IrY027_ah~k^5?j+vDqgMRn@T%7Grg-5MM3#XQ|FU6AsS{po>vo7u0|
z??31}U+k3qz0N%!k4b;JJU{OJxm91{CS>1VwQ8F0Y_nDEg}bBO=JIRYPN^~3m~gP>
z`#Pm_-EHb>kFT&dmpq?ap7m>@<n`3k(@yGczq6<^bmyMKsYRZ9XKq@od!gHVy4=(I
zUkk3smcLdw99?tZv)la-d)DZSh(B`JznJfZGMiB=)2znu`%|i#gzuJ$L@<<}R24sc
zq*J(vFUP>+Ldn<i{j0zHo){^RIpKgz*}CIvrgS+O#P&zMR(+*7*FMa>Jh14^_t(C6
z|1NUnVctIb)TK|i@401qPXE37U7LB4-GiN8rYSX1fA8N*QEaYP<~S?f8f=)_mZJ68
z-`0M|uK05+Ur+pY&(6GQ>BpwIOH4j|I;FmU$9IpL4eUpki!ZR1w%_S~_s6~<_Xl&f
z*D&bw&Uy0imCy?Q-$mcTE3{1)2h93r`)9-9r9tkScBV+qySUHi{=<iV9`e^u2wh$D
z{$S#*w40w&i@x72Kh4Z<^WdEI=N`c?!XFG)r9MA5_m$?|)kPEH=QrKk;G-m8A-43$
z#^Z9YPjx-+zu2I(Bxl)*x{uwnxuZBX<=!^?`8NN3kxkM^{;vs7Wh#U9*aTVo-TRGF
z7xJ^cw0&Q@es(5DlfT1*uanpf4!^zl@@k_+ep$kYyFqpf%_Tyf3moV1648-MZd}vD
za>3`ri?i=$`p>brIQK&@`#kSy5BY-^?f>&Mx6a3g?VF-&V{haek#p`JC-!o3KM1%~
z`uAzky=hiACtv!paMPQuQ|*k`uX8$fJ<Lr?ZC_+bRp|6T$#3;;PF{G>wvluCRPIvI
z)KA%8d-i?&WOiPmb^g_3I_tBibg6nT)%Q}gj5_^fR^jfaEt||<ewi%d)XaEGa81tn
zNo?~zKhzWc^1yD1f{mi=8<sg15AHFiG0y#YGkt#P`N)5X7c_VJKR9r*=3AY?r22O|
zpWnH{Si%_Yz0^C}S37K7>i1JyGL2K7`I!ETI&YwKL_zJ+gOkiPiSa%g6ZQ*uX?Q*R
z{h;$xAK$lm-}k70d%a=jf$c>Sb0_=T8M*w;Q8_hF{?yw1j0rC<FSA~HW&z{Uox8V&
z?z)=oUYQgzGf-ll{hve3+QnW)zrM^Y`gSwj(pAi*Kwc<Snf>6N9m{gU=J3j#o3nLp
z%*lW8T>t%_@T~7B7iL>F*I=2CA)l^ra$;BI1i4QRed;SF*?epfzEcuBC1!KP^O@=M
z3iba>2DB}|`GCDt_5Ok!CH|VgpZWiu<^Pf3_s@>|ey4PL^vvVNXJ$z3P;*dcZt|~r
zG});9U1Q(1hYRFx&UBYs9kw=T=|AnI7gw)mjLL1`k(d(mW2OJeYCrqCvFwSzCs>3Y
z{2|Wv)%NR^%TEq*+rK=1<nb}-`gOUb|2J%7x{zvPAi3{Pm-dqmo%vZOvnK3lRa)|?
z@JPCIa->_`rtMz;e)Gw?eyp(IK0Cjaty_B461QHr83M*Z;n%jFxYQ;0e~rcZrk|G%
zn=Q7j)wF!QaqFdnO^q8C1l6X7T)vdNbgj?Jo+S5OK7PUHU$p&NyGi${t-VkkLq(KV
zGmAdk6#G4A4l6J&EBx^)WloTa|BDB5_2*|CJb9%1&+dx`%`WrGx{h7g^HBG6Ql)>`
zkM6G)GdMN}bsv>J+VGN3#Hxgy*<t2|m0hMD5BU3SlwMz7%Uz*=Gx2TC+}R0kr+z(u
zpl_q*JLA9HnpjSW4Z{9*H)~BTIu<x~O%DI`P_C<H$pX95(l^CBk9<7jVEv$0z}@nL
zUCeuf4)eu_6uQ10l+Mk~4Aeioc%l_+<vIPzPcmCR=oB9Fe)MzFo9X+$ELF5=m^c4^
z$>cp-i<VAi7f8MEfWO;x-;bmEyIv<1UiLMAo$!ox?eT>DtzxGZ`aJqE``@qL{F=LW
z`4?Sb<D559J~#DKQiI%&jJK?Fd#xt?T7Umf+M5T3KMa%@jGjL@S+id;zc=AQ!<&Ay
zZ>Qg6)z-bx<u~x3pV)Y~p!iANZsp2<i??6&Wp>-FZ#`?Z){|eRx|c34WqPUoozY>v
z*0DCt%S+ZSy0@Fpd9jwZ(Wj%gY&UtAYS?sUpQsUd7Pzk?y30POY6ky&)8cCfrUy22
zT=rnUw<~wG)W$#Y)7<7NtiQ7B|IAIvCB2sxBrBc}dvQmZ(<a*MK=2O-1Lc66+w6s}
zG}TWZ>72Y}@~z)XDt11wn=5Icu+VmeejM+?SLba-8a`U`g_$p#pyoSIsXH|B*ullR
zQf2FJlr82<+_&%h-uI=^qBDfJw4$50x*8l1cY8HwLF1v+vh?@!!pfIOe&k)nqj|Z9
z_u%8h3y!<WrOoJgzM;Xt{@3MqaRNTSA8riEta4sze^-8q=+nAyH`90T_huB6axwMX
z;Pa%xf6e30eiomdk2{|+SDd^e``2=fd&AL*eH((=51HR7XzuQI3TtM$!&jUuBfQT-
z!nx_CfwAvX$)DRjZM|k1X{&YX+G@TGD$mH6Tz$7I^}+e&Sx;_GDcj?~w(|w!oQ>Zf
zz02E~`8RJ(m;CGI=cZF$zgUxgNoT3P)5G8vsYBe^w^QquX}_*4{i!6sOL^h>nL%7k
z^Qyg86r7oD@2{5i`_ji85#|LKZwV`eyjfrI^=kN?D-L!KZf>w?ar`#z+$)2me?3fV
z{vCMH6s{w2L89C?=)<{3Z#JJV>=L?HebfE9<kAVn%5?&saVLbBneD83c?&sCxeA;(
za^i&)*SxQ<?6<s==<~0Ar8IL5oAHarr@>;G92#lHmjcfRE~_*x%T<tT{(E)(zs0wm
z#f}~3w|}Gii|fhhq<IPPE$%kaYp%;3X=3G`<HvVNChp3^idAf_$$Pk(?Al`zPJFK2
z&S4?=?2@;>^e4N{_=<z;7rVbyP1rHRwbNSEM&EbZ`%`OHxIMSM&{_Jo$ZK-cofXF`
z-Tvpk>)CeVPTJDD{kvx0?YtFrbdQLEX4TYt^_7ovb7gWjaNN?^UUjO(vsf(L=Wbf)
z*ORVOtN)z$=XtkNO4IGv9#btZ1s<zdk@ue&gKK)YPD&^8Y%^@?V^orxXFPT4`U%ed
zb|w>#T$=f)p)F>U7~9E(o2N9e-ReHadH<&Kk!mKtLkS1{H?CNtGrhm|&0?e6TO~{9
z{(E|#<G`(yC2ytKDg(vu{e5DUt+S5zLFdVb9xs*h)z3%m{}=M7>r%J=zos+u_dEQ2
zP-%Gdn?3VW_WQd7_MMa~F?{;<{Qp1qLmK(M?=cKJ{nuE!x#Y8XE$0OO&HVDeZydi<
zs#$oi@;U#W^^4|waAJSaunjcTy6wrvJGZtj-{!nrYKr4Lk!$PP<?Ck5DL!X;PPs)b
zVgHGO4f&5&-Ya^&_T7qQ2A_;PdKNs2*;I33n&#y7eXplx?UR(#e4M%|y7Ja7@meX1
z_l>(u&#teUb?24!>I}07vVRNR+if;)X7)9ov;Rrp+R|ADzH=APs7lp(^4YXH#Vc~Y
zaa&u>seb13Y^^&4KFH)Ic%4f4+1sM$wrJ0Wt)ZqRZf3g+dxaG8xl7FM3FqF}adGKc
z*2Sv@SWYjt6Dw+5`t<43!~3H{G~WE3R;u*lU^?rX#ZtN#gC{8;mQ3Fh-e>cPqdd#_
zX{6+o<E5Go^RBczvTEP7`*DzeSEG-a#QWyA8K2m>^5gRZo>t1=+r8Y5cW2STjQN$%
zA}?LL_H3S}*p<$jHF;{;7p~p9_3GZ;Pv_L%eYnFeUvt6ts_WJHj-riw)cj^hRGtag
z7_p<EvD#l|O0R+L1&8?+25G^ou1eY|+&<HwP<pI?;)6rn`X%SMk4^eMgXhVav<22T
z9-m?o`1kJmxBoBw>#Ynn7(Pjz(2%?)zSAOtx&88&S5F_BX8ybqA)1ocy7|NF{Y#_W
zeGHY)Th+c;_>Zk}?fzqHADljBq;>S=!~c)JzP;7_rQe`=q5o9B%Z=Sjuj^{{J1p}_
z3;%lJ`086rY!573@#}52LdP-@o`dVX#kiI+JUcu4wVQbb<2|9vap7!C&XsBrJ$u6T
zex3Gu$4-ak46UC|TeaHG?|y!#-S4laR7q0UijUkUu3PnfTyW)pflT3%hehw)&&kd>
zw7F=d@K<e?52t<{)qm?TFZsCHY1aC`*PZ<)_A~dlSDrI9`8ZqOcS&omhOLMwmp~MU
z!u*;E%o%A>9p$&wrYHXT#CV>?R(YMSeVE?Azti`rJfBy+u0X0xCL+tvzJuwj;)Lgy
zmU`d)^dhKvlfUItk)=1So3!{W1pRIP&8UCMxYIBD#j95(&BCvE^?TkWF~r9I`!szn
z`w>t6HGh_zUHf)-$o>r-$A0|3<bC?-uh;9p&;K@IyW^swHBp_fr-Z1*1)QD}_-psZ
zy+&KD+&aGOJQv~?HRYtw>DGm8*LDBy+r2(8C@1L4<HZ+3LiNnoW>3_uzOr_0$BIR}
zc7zJ6RjN<=-IdOvu}?=ie)XMY_hirW>-K7i86CG0I`Di2U;3Y?c24;xmL?P>o||KN
z$t3N~fm1sc7&=x4h&2`&#;ji-VYndVk%QgEPZR7H9RAceO=F&fyi#5-M_lAQ!&9Nh
zgPH>0$FDwU@ovZCyB|$H%zQs(rjE;1TfQZ&`WiZ)o^Iw{Gi%n==N)%XZTa^2)|B{l
zW=}1Dv>p2LDk0sv>PvL>vs3ClFE1}YsX9Go5!+*%?eot`->sIu{P`hoW<c8?p^W%@
z?0#X&<<}zLPyhd^|Gx&exXy=Q_vU<wjkm7;au*3WQxSe#rg)2daFtBS1)=h7F#+r?
zi8g8Hr#4oVmlhqlx!|7m7THaVv+Vx=JiprfG`k0TdPKv=xeO9DA078UJw1JQcEHE;
zT>szCIiQexch}YUqedmAB8@v%R5-bYZuMEavf#eUuJv;-x^79ly?Wi*C$ml^s{bzN
zJau=%x+#ZWg*0AUl`RwKH+S0pwdT6h_wP6<o4n-CgO83H#ulxMlD;{4YWhypSUsWN
z<m*ZGRkuQSX)X2oT%z~fVS$dd)x3CaIo>6O?Iu|qW(>0Ij9g|uAqy6NFe>@=<>foe
z4W+B4j&Ixh&hBSKT%5al{`u}imt!1D11=o2@Jv`*W&fnxNiialrCYhchBKA*{MScI
z)v9e8Y)^Cf-YKqYJ})ly=!L?9DG$D$k-V%N?;y@J?a*V@MIL7rA|FVpc6>~qWxS_+
zc}T<hH>YPBKWCV#KJ|HS^xb<xr<VU?Hfq@O<GNV8P(#@=xyqS!pH8apew@ek^NLl)
zn~%p$^B=GOZkqW-Nozuz*}JfN2Cue#@hNp%x?Jv{!+)!9>;Gx3p2W|j-<jNI;VAnr
z=iZ)^Q@!t<;^^16v)3tD?|r#~ZPW3uiTCE$y>R~T=@**cy!7VJDgR$6_wP#XK5_q5
zvk%K_=YMC<K7PV1Z*jbS)t3eLH;T4Qt@|J^b?9J5bJ!DxocsIkzLkC?x20{q;sNiJ
z{3UFnk&g=!?AirgrT=W)zjJ@tTdSWB*zF(8JG+ZtlS@Xm`14uw-EMtZ4pLTmCli)d
zX<x0~`)RJK{Is`^Ef%RO%?&b+t4gigT;-&AYR8+EtEMVXzpLM#QyaTWDQDI!rbykb
zMah5ncqA`r@&5Tla?(80`2T$pe^-4Ey?<LXzT&4}=DQoZE4#dwH&nb7-||KDTvAo>
z(Pm|y^~wrg)K@adEMf9LEZuX}d6nq8#mf>uE6;w>6vr=j^V{2e{>PRtWo>6otM=J1
z%AAqjFO+cjF@sadqiFw`CY2n$ADWgvG&3qHJeB{w{Krql6II10VqcxIw$~PS=82XR
zVB!7Y;dnPXs%*ETtH6ofMYsO;UYxx^`Cu*QIp!4RH?yv0&pGI_uIISV!2^>Glcho<
z{U@_>KYMxq)n9SO9~+X7`yJ1>J1%tH<wC<50|C{w-JkPz?0+n`B_bv5*OpAz)4G=H
zVs?7PRsS^&T_KxwU^iQ;!PWJjf;5w7AK$T_>9YRjwK`|o=31AZSmqlYbMHc*Ox4o`
zJ$pU{eBoholRj~v`}DMz4{CSFwW*2NtDFsCHmv@ZBknJ~QCxHOboRgPa#bD04qc4u
z3$|~2C#liCDe^$jQnN$N&pnL~Bz#rSxS`Padfo1Ga~Y4C#4TJAqP!*jUE-(XpVx;h
zUFM}~llpAM$rDYlwwSEGU~tPYMeEAtTU%X^{dJkUYp?DrBiH>$*7<%tb=kc>qReOB
z;!6?*nJ2j!qe@y*R+W}Whkm`~7WwHxuhIXL_dUveAI@WQI&gwlP8EE-!5_g~rQ!$0
z^MB8o9hM-HIs5Y`-l<=CjS5dk8$Dk8{EC(99*HmPVbRsL({DVOX1L;`)aNs`L6>)i
zXT91pwLWm+nr(4?HLo?#W*2;Uw?O&(DbLHQ!K>TUPDvyxR9mHd-2B~R*-A^J_c;fB
zC0CVyZq=_jc-{bX?1a#hZb3<vm<`(Nb{yLIs?|Cobw_H^2jTq_SADyi^6WVKf_G`v
zyJDiMezD(EO%1tueO<KT*ZN)ejZ^kn%e8LVwSo8U+f5Z$jb91=bnAb)bD7~Kd($VT
zybhm(`(OXKy<a_Zdy=l*e~km|&s@%1Jm#_d_2Odn%$cC$1Kx-AoKR>K_P4pHdsOF!
z#!5xc)sOOT?G1glf59=;yr?yc?$r9|PyNWlyu6@)=l`_Y7|*_$zhxSx9rW5`86EEB
z{9AADwJ%bqmREdUF)`ud(b?x$eE+s=i3O8N_rY$a_Yx641s7e#e;PuLZ4l_Wq0q>!
zx8s0s;7;*<tWrz&&8nKY|Bd3xyqmB5?<O*|wfXqY&B@K3`l(GVv*sax(B{I@Yv-L=
zCI&KxtdG02$9H}8<znB*Dz?+amtT<7;_hFuJ^I=H9}A{DwiV6jSz)a|>tkPq<8+X}
zIJw*d**N(-odqJN25J~ch}PaMdeUq^+30U+TN5ka!3lmRubpyx8L{7Mmi(`!OIC04
zzslRV?DhH;lUiTLPuloaH^?k|-S;(8=M$f<IBw?O`}m5f{>txR4w7~&?0+li?fnvD
zuLh1dkuJfto4A`yUsrhP81v{cp5vBauFZSi(|RfT`jgo934!mI2J(7+PW#$tAi^re
zZ8L9gvYN-~HL5{ZuRqm&#H|<`_*N`(%F>{n%bA@ISU<UYF*H0@b@|+~S@N?X{&2m>
z#(AggcJ8Og^8atFjsAY^i8zDqKAWr0#jK7rx^hWQs}P^Hz2E5TmOCLaVoN^saGAJm
z=u5rlE>qZ2^W6IWN64`h2R#CWnp>t9+)SN*^3~PVcRxMfFLGn|X8FG_+*NIp>_A@m
zClq+aT7~)af%EqNYrc0+`sdAfdFmQ7pPs-b7EU3N{z(!l2OhE6DW3g3MaUxdx9yEB
zr$wIH|2b^`0~);&Q_d(fYOmjOX|C^=JadmL{LM$$&$(5pg@N>|NOVn-Qt6ZX|DoOf
z&9^6eW;cqTFp-T*1j}jgdSy*Gu-yJ{=1i;7R~_Hf_6jF(OX}_W@#u)P7wAwDp+!&F
zR_@$+Q+9syr8;xJyBp8^zTnJ%SN-^Db&m-O2jhjj@+KUJOrQJIPp@KorRN^`$Gi2X
z$JgzIo{{0z8ffTIGwspq`2V}Ar+>-&IB5m@y^EF4=c*fj{=-uOcEbtz#Yqzw^#A(X
zehqo~>eZ*@dpi$EY+Ti6l{f)%uE|ToEH=&?n_fI<|8{TX17m6VKM&aNK3^>iKK0{e
z;H1UPn;u?^&M%$+`I$(2)A^mZ{SWM3?Ak4Ma_jZD*T=!Cnu3zA@CsFzz1#iX?&jX=
z?Z#g3O%BNU89tA8*GcyWd6Z>wbD+5gIJ+n~=5_q3pXNCI>#muPY8e<97(8A5T-G@y
GGywqply2$(

diff --git a/plugins/redmine_omniauth_client/assets/images/keycloak_plugin_small.png b/plugins/redmine_omniauth_client/assets/images/keycloak_plugin_small.png
deleted file mode 100644
index 249f0bdba4b18aa0be367e5740df93da272fe325..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14889
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

diff --git a/plugins/redmine_omniauth_client/assets/stylesheets/buttons.css b/plugins/redmine_omniauth_client/assets/stylesheets/buttons.css
deleted file mode 100644
index 865524f..0000000
--- a/plugins/redmine_omniauth_client/assets/stylesheets/buttons.css
+++ /dev/null
@@ -1,60 +0,0 @@
-.button-login {
-  display: inline-block;
-  border: none;
-  border-radius: 2px;
-  margin-top: 40px;
-  width: 360px;
-  height: 75px;
-  padding: 0;
-  width: 100%;
-  background-color: #fff;
-  cursor: pointer;
-}
-
-.button-login-text {
-  margin-left: auto;
-  margin-right: auto;
-  background: url(../images/keycloak_plugin_small.png) !important;
-  width: 360px;
-  height: 75px;
-  /* margin-left: -129px; */
-  -webkit-appearance: none;
-  -moz-appearance: none;
-  appearance: none;
-  /* background-repeat: no-repeat; */
-  /* overflow: hidden; */
-  /* z-index: 100; */
-  text-align: center;
-}
-
-.or-container {
-  display:block;
-  padding: 0;
-  margin: 0;
-  min-width: 900px;
-  padding-top: 40px;
-}
-
-.or-container hr {
-  width: 454px;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-.or-container p {
-  width: 454px;
-  margin-left: auto;
-  margin-right: auto;
-  text-align: center;
-  margin-top: -15px;
-}
-
-.or-container span {
-  background-color: #fff;
-  padding: 5px;
-  font-size: medium;
-}
-
-.no-pointer {
-  cursor: default;
-}
\ No newline at end of file
diff --git a/plugins/redmine_omniauth_client/config/locales/cs.yml b/plugins/redmine_omniauth_client/config/locales/cs.yml
deleted file mode 100644
index b3408c4..0000000
--- a/plugins/redmine_omniauth_client/config/locales/cs.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-# Czech strings go here for Rails i18n
-cs:
-  oauth:
-    login_via_sso: 'Přihlásit se pirátskou identitou'
-    login_via_rm: 'Přihlásit se heslem z Redmine'
-
-    mapping_headline: 'Mapování skupin'
-    save: 'Uložit'
-    delete: 'Smazat'
-    edit: 'Upravit'
-    saved_settings: 'Uložené mapování'
-
-    app_name: 'Název aplikace:'
-    site_url: 'URL stránky:'
-    auth_url: 'URL autorizace:'
-    token_url: 'URL tokenu:'
-    ws_url: 'URL webové služby:'
-    client_id: 'ID klienta:'
-    client_secret: 'Tajný klíč klienta:'
-    sso_u_id: 'SSO id uživatele:'
-    username_f: 'Pole uživatelského jména:'
-    mail_f: 'Pole emailu:'
-    firstname_f: 'Pole křestního jména:'
-    lastname_f: 'Pole příjmení:'
-    resourecs_f: 'Pole zdrojů skupin:'
-    groups_f: 'Pole redmine skupin:'
-    roles_f: 'Pole rolí:'
-    remove_from_groups: 'Odebrat uživatele ze skupiny v Redmine při jeho odebrání ze skupiny v SSO:'
-    remove_from_all_groups: 'Odstranit úplně ze všech skupin, nikoliv pouze z těch párovaných na SSO:'
-    force_acc_creation: 'Vynutit založení účtu:'
-    enable_oauth: 'Povolit OAuth autentizaci:'
-
-  notices:
-    saved: 'Nastavení uloženo.'
-    notSaved: 'Chyba! Nastavení nebylo uloženo.'
-    groups_failed: 'Chyba! Selhalo přiřazení skupin.'
-    unable_to_authenticate: 'Chyba! Přihlášení selhalo. Kontaktujte prosím správce serveru'
diff --git a/plugins/redmine_omniauth_client/config/locales/en.yml b/plugins/redmine_omniauth_client/config/locales/en.yml
deleted file mode 100644
index 3fd9095..0000000
--- a/plugins/redmine_omniauth_client/config/locales/en.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-en:
-  notice_unable_to_obtain_app_credentials: "Unable to obtain credentials from %{app}."
-  notice_domain_not_allowed: "You can not login using %{domain} domain."
-  notice_access_denied: "You must allow to use you %{app} credentials to enter this site."
-  login_via_app: ""
-  unable_create_account: "Unable to create account."
-
-  oauth:
-    login_via_sso: 'Login via SSO'
-
-    mapping_headline: 'Groups mapping'
-    save: 'Save'
-    delete: 'Delete'
-    edit: 'Edit'
-    saved_settings: 'Saved mapping'
-
-    app_name: 'Application Name:'
-    site_url: 'Site URL:'
-    auth_url: 'Authorization URL:'
-    token_url: 'Token URL:'
-    ws_url: 'Webservice URL:'
-    client_id: 'Client ID:'
-    client_secret: 'Client Secret:'
-    sso_u_id: 'SSO user id:'
-    username_f: 'Username field:'
-    mail_f: 'Mail field:'
-    firstname_f: 'First name field:'
-    lastname_f: 'Last name field:'
-    resourecs_f: 'Group resources field:'
-    groups_f: 'Redmine groups field:'
-    roles_f: 'Roles field:'
-    remove_from_groups: 'Remove users from redmine groups with removing from SSO group:'
-    remove_from_all_groups: 'Remove user from all groups (including SSO-non-mapped):'
-    force_acc_creation: 'Force account creation:'
-    enable_oauth: 'Enable OAuth authentification:'
-
-  notices:
-    saved: 'Settings saved.'
-    notSaved: 'Error! Settings not saved.'
-    groups_failed: 'Error! Groups assignement failed.'
-    unable_to_authenticate: 'Error! Authentication failed.'
diff --git a/plugins/redmine_omniauth_client/config/locales/fr.yml b/plugins/redmine_omniauth_client/config/locales/fr.yml
deleted file mode 100644
index cf559db..0000000
--- a/plugins/redmine_omniauth_client/config/locales/fr.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-fr:
-  notice_unable_to_obtain_app_credentials: "Impossible d'obtenir les droits d'authentification sur le %{app}."
-  notice_domain_not_allowed: "Vous ne pouvez pas vous identifier sur le domaine %{domain}."
-  notice_access_denied: "Vous devez autoriser l'utilisation de vos données provenant du %{app}."
-  login_via_app: ""
-  unable_create_account: "Votre compte n'a pas pu être créé."
diff --git a/plugins/redmine_omniauth_client/config/locales/ru.yml b/plugins/redmine_omniauth_client/config/locales/ru.yml
deleted file mode 100644
index 0144c48..0000000
--- a/plugins/redmine_omniauth_client/config/locales/ru.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-ru:
-  notice_unable_to_obtain_app_credentials: "Не удалось получить данные от %{app}."
-  notice_domain_not_allowed: "Вы не можете войти в систему при помощи домена %{domain}."
-  notice_access_denied: "Для корректного входа необходимо разрешить приложению доступ к аккаунту."
-  login_via_app: "Войти с %{app}"
diff --git a/plugins/redmine_omniauth_client/config/routes.rb b/plugins/redmine_omniauth_client/config/routes.rb
deleted file mode 100644
index 3d34c40..0000000
--- a/plugins/redmine_omniauth_client/config/routes.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-get 'oauth_client', :to => 'redmine_oauth#oauth'
-get 'oauth_client_callback', :to => 'redmine_oauth#oauth_callback', :as => 'oauth_callback'
-get 'group_mapping', :to => 'redmine_oauth#group_mapping'
-post 'post/redmine_oauth#edit', :to => 'redmine_oauth#edit'
-post 'post/redmine_oauth#delete', :to => 'redmine_oauth#delete'
\ No newline at end of file
diff --git a/plugins/redmine_omniauth_client/db/migrate/001_create_group_mappings.rb b/plugins/redmine_omniauth_client/db/migrate/001_create_group_mappings.rb
deleted file mode 100644
index 98c0ab3..0000000
--- a/plugins/redmine_omniauth_client/db/migrate/001_create_group_mappings.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-class CreateGroupMappings < ActiveRecord::Migration[5.2]
-  def change
-    create_table :group_mappings do |t|
-      t.string :variable
-      t.integer :group_id
-    end
-  end
-end
diff --git a/plugins/redmine_omniauth_client/db/migrate/002_update_users_ssouid.rb b/plugins/redmine_omniauth_client/db/migrate/002_update_users_ssouid.rb
deleted file mode 100644
index 99b1d84..0000000
--- a/plugins/redmine_omniauth_client/db/migrate/002_update_users_ssouid.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-class UpdateUsersSsouid < ActiveRecord::Migration[5.2]
-  def self.up
-    change_table :users do |t|
-      t.column :sso_u_id, :string
-    end
-  end
-
-  def self.down
-    change_table :users do |t|
-      t.remove :sso_u_id
-    end
-  end
-end
\ No newline at end of file
diff --git a/plugins/redmine_omniauth_client/init.rb b/plugins/redmine_omniauth_client/init.rb
deleted file mode 100644
index 293026b..0000000
--- a/plugins/redmine_omniauth_client/init.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-require 'redmine'
-#require 'openssl'
-require_dependency 'redmine_omniauth_client/hooks'
-require_dependency 'group_patch'
-Group.send(:include, GroupPatch)
-
-Redmine::Plugin.register :redmine_omniauth_client do
-  name 'Redmine OAuth Client plugin'
-  author 'Andre Cardoso <acardoso@orupaca.fr>'
-  description 'This is a plugin for Redmine registration through OAuth 2.0 protocole.'
-  version '0.0.1'
-  url 'https://github.com/arlin2050/redmine_omniauth_client.git'
-  
-  #OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
-
-  settings :default => {
-    :app_name => "Application name",
-    :site_url => "http://example.net",
-    :auth_url => "/oauth/v2/auth",
-    :token_url => "/oauth/v2/token",
-    :ws_url => "/current.json",
-    :client_id => "",
-    :client_secret => "",
-    :field_username => "",
-    :field_email => "",
-    :field_firstname => "",
-    :field_lastname => "",
-    :force_account_creation => true,
-    :oauth_autentification => false,
-  }, :partial => 'settings/client_settings'
-end
diff --git a/plugins/redmine_omniauth_client/lib/group_patch.rb b/plugins/redmine_omniauth_client/lib/group_patch.rb
deleted file mode 100644
index a4223fe..0000000
--- a/plugins/redmine_omniauth_client/lib/group_patch.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-module GroupPatch
-  def self.included(base)
-    base.extend(ClassMethods)
-    base.send(:include, InstanceMethods)
-  end
-
-  module InstanceMethods
-    def get_id
-      return self.id
-    end
-  end
-  
-  module ClassMethods
-  end
-end
\ No newline at end of file
diff --git a/plugins/redmine_omniauth_client/lib/redmine_omniauth_client/hooks.rb b/plugins/redmine_omniauth_client/lib/redmine_omniauth_client/hooks.rb
deleted file mode 100644
index a3a1fdd..0000000
--- a/plugins/redmine_omniauth_client/lib/redmine_omniauth_client/hooks.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-module RedmineOmniauthRor
-  class Hooks < Redmine::Hook::ViewListener
-    def view_account_login_top(context = {})
-      context[:controller].send(:render_to_string, {
-        :partial => "hooks/view_account_login_top",
-        :locals => context})
-    end
-  end
-end
diff --git a/plugins/redmine_omniauth_client/test/functional/redmine_oauth_controller_test.rb b/plugins/redmine_omniauth_client/test/functional/redmine_oauth_controller_test.rb
deleted file mode 100644
index 9d5dc38..0000000
--- a/plugins/redmine_omniauth_client/test/functional/redmine_oauth_controller_test.rb
+++ /dev/null
@@ -1,116 +0,0 @@
-require File.expand_path('../../test_helper', __FILE__)
-
-class RedmineOauthControllerTest < ActionController::TestCase
-  include Helpers::MailHelper
-  def setup
-    @default_user_credentials = { :firstname => 'Cool',
-                                  :lastname => 'User',
-                                  :mail => 'user@somedomain.com'}
-    @default_response_body = {:verified_email => true,
-                              :name => 'Cool User',
-                              :given_name => 'Cool',
-                              :family_name => 'User',
-                              :email => 'user@somedomain.com'}
-    User.current = nil
-    Setting.openid = '1'
-    OAuth2::AccessToken.any_instance.stubs(:get => OAuth2::Response.new(nil))
-    OAuth2::Client.any_instance.stubs(:get_token => OAuth2::AccessToken.new('code', 'redirect_uri'))
-  end
-
-  #creates a new user with the credentials listed in the options and fills in the missing data by default data
-  def new_user options = {}
-    User.where(@default_user_credentials.merge(options)).delete_all
-    user = User.new @default_user_credentials.merge(options)
-    user.login = options[:login] || 'cool_user'
-    user
-  end
-
-  #creates a new user with the credentials listed in the options and fills in the missing data by default data
-  def set_response_body_stub options = {}
-    OAuth2::Response.any_instance.stubs(:body => @default_response_body.merge(options).to_json)
-  end
-
-  def test_oauth_client_with_enabled_oauth_authentification
-    Setting.plugin_redmine_omniauth_client[:oauth_authentification] = nil
-    get :oauth_client
-    assert_response 404
-  end
-
-  def test_oauth_client_callback_for_existing_non_active_user
-    Setting.self_registration = '2'
-    user = new_user :status => User::STATUS_REGISTERED
-    assert user.save
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to signin_path
-  end
-
-  def test_oauth_client_callback_for_existing_active_user
-    user = new_user
-    user.activate
-    assert user.save
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to :controller => 'my', :action => 'page'
-  end
-
-  def test_oauth_client_callback_for_new_user_with_valid_credentials_and_sefregistration_enabled
-    Setting.self_registration = '3'
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to :controller => 'my', :action  => 'account'
-    user = User.find_by_mail(@default_response_body[:email])
-    assert_equal user.mail, @default_response_body[:email]
-    assert_equal user.login, parse_email(@default_response_body[:email])[:login]
-  end
-
-  def test_oauth_client_callback_for_new_user_with_valid_credentials_and_sefregistration_disabled
-    Setting.self_registration = '2'
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to signin_path
-  end
-
-  def test_oauth_client_callback_with_new_user_with_invalid_oauth_provider
-    Setting.self_registration = '3'
-    set_response_body_stub :verified_email => false
-    get :oauth_client_callback
-    assert_redirected_to signin_path
-  end
-
-  def test_oauth_client_callback_with_new_user_created_with_email_activation_should_have_a_token
-    Setting.self_registration = '1'
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to :signin
-    user = User.find_by_mail(@default_user_credentials[:mail])
-    assert user
-    token = Token.find_by_user_id_and_action(user.id, 'register')
-    assert token
-  end
-
-  def test_oauth_client_callback_with_new_user_created_with_manual_activation
-    Setting.self_registration = '2'
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to :signin
-    user = User.find_by_mail(@default_user_credentials[:mail])
-    assert user
-    assert_equal User::STATUS_REGISTERED, user.status
-  end
-
-  def test_oauth_client_callback_with_not_allowed_email_domain
-    Setting.plugin_redmine_omniauth_client[:allowed_domains] = "twinslash.com"
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to :signin
-  end
-
-  def test_oauth_client_callback_with_allowed_email_domain
-    Setting.self_registration = '3'
-    Setting.plugin_redmine_omniauth_client[:allowed_domains] = parse_email(@default_response_body[:email])[:domain]
-    set_response_body_stub
-    get :oauth_client_callback
-    assert_redirected_to :controller => 'my', :action => 'account'
-  end
-end
diff --git a/plugins/redmine_omniauth_client/test/test_helper.rb b/plugins/redmine_omniauth_client/test/test_helper.rb
deleted file mode 100644
index 54685d3..0000000
--- a/plugins/redmine_omniauth_client/test/test_helper.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-# Load the Redmine helper
-require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper')
diff --git a/plugins/redmine_omniauth_client/test/unit/group_mapping_test.rb b/plugins/redmine_omniauth_client/test/unit/group_mapping_test.rb
deleted file mode 100644
index f03a143..0000000
--- a/plugins/redmine_omniauth_client/test/unit/group_mapping_test.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-require File.expand_path('../../test_helper', __FILE__)
-
-class GroupMappingTest < ActiveSupport::TestCase
-
-  # Replace this with your real tests.
-  def test_truth
-    assert true
-  end
-end
diff --git a/plugins/redmine_pivot_table b/plugins/redmine_pivot_table
deleted file mode 160000
index 8049f7b..0000000
--- a/plugins/redmine_pivot_table
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8049f7ba3cfdbb5670ed84c3e82dfa2924cbb712
diff --git a/plugins/redmine_theme_changer b/plugins/redmine_theme_changer
deleted file mode 160000
index 30247a1..0000000
--- a/plugins/redmine_theme_changer
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 30247a1f11ed12104d36b9ed77cea128f364a1d0
diff --git a/plugins/redmine_work_time b/plugins/redmine_work_time
deleted file mode 160000
index d30876f..0000000
--- a/plugins/redmine_work_time
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d30876f176e899dfe6d57ddfd7d024e7dffd1e39
diff --git a/plugins/redmine_zulip b/plugins/redmine_zulip
deleted file mode 160000
index 0d47476..0000000
--- a/plugins/redmine_zulip
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0d474763f1678e476fb876028e2c8951f5d545ca
diff --git a/plugins/redmineup_tags/.drone.jsonnet b/plugins/redmineup_tags/.drone.jsonnet
deleted file mode 100644
index 94601f9..0000000
--- a/plugins/redmineup_tags/.drone.jsonnet
+++ /dev/null
@@ -1,27 +0,0 @@
-local Pipeline(rubyVer, db, license, redmine, dependents) = {
-  kind: "pipeline",
-  name: rubyVer + "-" + db + "-" + redmine + "-" + license + "-" + dependents,
-  steps: [
-    {
-      name: "tests",
-      image: "redmineup/redmineup_ci",
-      commands: [
-        "service postgresql start && service mysql start && sleep 5",
-        "export PATH=~/.rbenv/shims:$PATH",
-        "export CODEPATH=`pwd`",
-        "/root/run_for.sh redmineup_tags+" + license + " ruby-" + rubyVer + " " + db + " redmine-" + redmine + " " + dependents
-      ]
-    }
-  ]
-};
-
-[
-  Pipeline("3.2.2", "mysql", "pro", "trunk", "redmine_agile+pro"),
-  Pipeline("3.2.2", "pg", "pro", "5.1", ""),
-  Pipeline("3.0.6", "mysql", "pro", "5.0", "redmine_agile+light"),
-  Pipeline("2.7.8", "mysql", "light", "4.2", ""),
-  Pipeline("2.7.8", "pg", "pro", "4.2", "redmine_contacts+pro"),
-  Pipeline("2.3.8", "mysql", "pro", "4.0", ""),
-  Pipeline("2.3.8", "mysql", "light", "4.0", ""),
-  Pipeline("2.3.8", "pg", "pro", "4.0", "")
-]
diff --git a/plugins/redmineup_tags/Gemfile b/plugins/redmineup_tags/Gemfile
deleted file mode 100644
index ffc40a3..0000000
--- a/plugins/redmineup_tags/Gemfile
+++ /dev/null
@@ -1 +0,0 @@
-gem 'redmineup'
diff --git a/plugins/redmineup_tags/app/controllers/issue_tags_controller.rb b/plugins/redmineup_tags/app/controllers/issue_tags_controller.rb
deleted file mode 100644
index d2911a1..0000000
--- a/plugins/redmineup_tags/app/controllers/issue_tags_controller.rb
+++ /dev/null
@@ -1,87 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-class IssueTagsController < ApplicationController
-  before_action :find_issues, only: [:edit, :update]
-
-  def edit
-    return unless User.current.allowed_to?(:edit_tags, @projects.first)
-    @issue_ids = params[:ids]
-    @is_bulk_editing = @issue_ids.size > 1
-    @most_used_tags = Issue.all_tags(sort_by: 'count', order: 'DESC').limit(10)
-  end
-
-  def update
-    if User.current.allowed_to?(:edit_tags, @projects.first)
-      tags = params[:issue] && params[:issue][:tag_list] ? params[:issue][:tag_list].reject(&:empty?) : []
-
-      unless User.current.allowed_to?(:create_tags, @projects.first) || Issue.allowed_tags?(tags)
-        flash[:error] = t(:notice_failed_to_add_tags)
-        return
-      end
-
-      if update_tags(@issues, tags)
-        flash[:notice] = t(:notice_tags_added)
-      else
-        flash[:error] = t(:notice_failed_to_add_tags)
-      end
-    else
-      flash[:error] = t(:notice_failed_to_add_tags)
-    end
-  rescue Exception => e
-    puts e
-    flash[:error] = t(:notice_failed_to_add_tags)
-  ensure
-    redirect_to_referer_or { render text: 'Tags updated.', layout: true }
-  end
-
-  private
-
-  def update_tags(issues, tags)
-    if (tags.present? && issues.size > 1) || params[:add_only]
-      add_issues_tags(issues, tags)
-    else
-      update_issues_tags(issues, tags)
-    end
-  end
-
-  def add_issues_tags(issues, tags)
-    saved = true
-    Issue.transaction do
-      issues.each do |issue|
-        issue.tag_list = (issue.tag_list + tags).uniq
-        saved &&= issue.save
-        raise ActiveRecord::Rollback unless saved
-      end
-    end
-    saved
-  end
-
-  def update_issues_tags(issues, tags)
-    saved = true
-    Issue.transaction do
-      issues.each do |issue|
-        issue.tag_list = tags
-        saved &&= issue.save
-        raise ActiveRecord::Rollback unless saved
-      end
-    end
-    saved
-  end
-end
diff --git a/plugins/redmineup_tags/app/controllers/tags_controller.rb b/plugins/redmineup_tags/app/controllers/tags_controller.rb
deleted file mode 100644
index b32a1e6..0000000
--- a/plugins/redmineup_tags/app/controllers/tags_controller.rb
+++ /dev/null
@@ -1,89 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-class TagsController < ApplicationController
-  before_action :require_admin
-  before_action :find_tag, only: [:edit, :update]
-  before_action :bulk_find_tags, only: [:context_menu, :merge, :destroy]
-
-  helper :issues_tags
-
-  def edit
-  end
-
-  def destroy
-    @tags.each do |tag|
-      begin
-        tag.reload.destroy
-      rescue ::ActiveRecord::RecordNotFound
-      end
-    end
-
-    redirect_back_or_default(controller: 'settings', action: 'plugin', id: 'redmineup_tags', tab: 'manage_tags')
-  end
-
-  def update
-    @tag.name = params[:tag][:name] if params[:tag]
-    if @tag.save
-      flash[:notice] = l(:notice_successful_update)
-      respond_to do |format|
-        format.html { redirect_to controller: 'settings', action: 'plugin', id: 'redmineup_tags', tab: 'manage_tags' }
-        format.xml  {}
-      end
-    else
-      respond_to do |format|
-        format.html { render action: 'edit' }
-      end
-    end
-  end
-
-  def context_menu
-    @tag = @tags.first if @tags.size == 1
-    @back = back_url
-    render layout: false
-  end
-
-  def merge
-    if request.post? && params[:tag] && params[:tag][:name]
-      params_hash = params[:tag].respond_to?(:to_unsafe_hash) ? params[:tag].to_unsafe_hash : params
-      Redmineup::Tagging.transaction do
-        tag = Redmineup::Tag.find_by_name(params_hash['name']) || Redmineup::Tag.create(params_hash)
-        Redmineup::Tagging.where(tag_id: @tags.map(&:id)).update_all(tag_id: tag.id)
-        @tags.select { |t| t.id != tag.id }.each{ |t| t.destroy }
-        redirect_to controller: 'settings', action: 'plugin', id: 'redmineup_tags', tab: 'manage_tags'
-      end
-    end
-  end
-
-  private
-
-  def bulk_find_tags
-    @tags = Redmineup::Tag.joins("JOIN #{Redmineup::Tagging.table_name} ON #{Redmineup::Tagging.table_name}.tag_id = #{Redmineup::Tag.table_name}.id ").
-            select("#{Redmineup::Tag.table_name}.*, COUNT(DISTINCT #{Redmineup::Tagging.table_name}.taggable_id) AS count").
-            where(id: params[:id] ? [params[:id]] : params[:ids]).
-            group("#{Redmineup::Tag.table_name}.id, #{Redmineup::Tag.table_name}.name")
-    raise ActiveRecord::RecordNotFound if @tags.empty?
-  end
-
-  def find_tag
-    @tag = Redmineup::Tag.find(params[:id])
-  rescue ActiveRecord::RecordNotFound
-    render_404
-  end
-end
diff --git a/plugins/redmineup_tags/app/helpers/issues_tags_helper.rb b/plugins/redmineup_tags/app/helpers/issues_tags_helper.rb
deleted file mode 100644
index 41f6a19..0000000
--- a/plugins/redmineup_tags/app/helpers/issues_tags_helper.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module IssuesTagsHelper
-  def sidebar_tags
-    unless @sidebar_tags
-      @sidebar_tags = []
-      projects = [@project] + (@project && Setting.display_subprojects_issues? ? @project.descendants : [])
-      if RedmineupTags.settings['issues_sidebar'].to_sym != :none
-        @sidebar_tags = Issue.available_tags(project: @project,
-                                             projects: projects,
-                                             open_only: (RedmineupTags.settings['issues_open_only'].to_i == 1))
-      end
-    end
-    @sidebar_tags.to_a
-  end
-
-  def render_sidebar_tags
-    render_tags_list(sidebar_tags, show_count: (RedmineupTags.settings['issues_show_count'].to_i == 1),
-                                   open_only: (RedmineupTags.settings['issues_open_only'].to_i == 1),
-                                   style: RedmineupTags.settings['issues_sidebar'].to_sym)
-  end
-end
diff --git a/plugins/redmineup_tags/app/helpers/tags_helper.rb b/plugins/redmineup_tags/app/helpers/tags_helper.rb
deleted file mode 100644
index 3b3908d..0000000
--- a/plugins/redmineup_tags/app/helpers/tags_helper.rb
+++ /dev/null
@@ -1,129 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require 'digest/md5'
-
-module TagsHelper
-  include Redmineup::TagsHelper
-
-  def render_issue_tag_link(tag, options = {})
-    filters = [[:issue_tags, '=', tag.name]]
-    filters << [:status_id, 'o'] if options[:open_only]
-    content =
-      if options[:use_search]
-        link_to(tag, controller: 'search', action: 'index', id: @project, q: tag.name, wiki_pages: true, issues: true)
-      else
-        link_to_issue_filter tag.name, filters, project_id: @project
-      end
-    content << content_tag('span', "(#{tag.count})", class: 'tag-count') if options[:show_count]
-
-    style = RedmineupTags.settings['issues_use_colors'].to_i > 0 ? { class: 'tag-label-color', style: "background-color: #{tag_color(tag)}" } : { class: 'tag-label' }
-    content_tag('span', content, style)
-  end
-
-  def tag_color(tag)
-    tag_name = tag.respond_to?(:name) ? tag.name : tag
-    "##{Digest::MD5.hexdigest(tag_name)[0..5]}"
-  end
-
-  def render_tags_list(tags, options = {})
-    unless tags.nil? || tags.empty?
-      content, style = '', options.delete(:style)
-
-      tags = tags.all.to_a if tags.respond_to?(:all)
-
-      case sorting = "#{RedmineupTags.settings['issues_sort_by']}:#{RedmineupTags.settings['issues_sort_order']}"
-      when 'name:asc' then   tags.sort! { |a, b| a.name <=> b.name }
-      when 'name:desc' then  tags.sort! { |a, b| b.name <=> a.name }
-      when 'count:asc' then  tags.sort! { |a, b| a.count <=> b.count }
-      when 'count:desc' then tags.sort! { |a, b| b.count <=> a.count }
-      # Unknown sorting option. Fallback to default one
-      else
-        logger.warn "[redmine_tags] Unknown sorting option: <#{sorting}>"
-        tags.sort! { |a, b| a.name <=> b.name }
-      end
-
-      if style == :list
-        list_el, item_el = 'ul', 'li'
-      elsif style == :simple_cloud
-        list_el, item_el = 'div', 'span'
-      elsif style == :cloud
-        list_el, item_el = 'div', 'span'
-      else
-        raise 'Unknown list style'
-      end
-
-      content = content.html_safe
-      if style == :list && RedmineupTags.settings['issues_sort_by'] == 'name'
-        tags.group_by { |tag| tag.name.downcase.first }.each do |letter, grouped_tags|
-          content << content_tag(item_el, letter.upcase, class: 'letter', :style => '')
-          add_tags(style, grouped_tags, content, item_el, options)
-        end
-      else
-        add_tags(style, tags, content, item_el, options)
-      end
-
-      content_tag(list_el, content, class: 'tags-cloud', style: (style == :simple_cloud ? 'text-align: left;' : ''))
-    end
-  end
-
-  def link_to_issue_filter(title, filters, options = {})
-    options.merge! link_to_issue_filter_options(filters)
-    link_to title, options
-  end
-
-  # returns hash suitable for passing it to the <tt>to_link</tt>
-  # === parameters
-  # * <i>filters</i> = array of arrays. each child array is an array of strings:
-  #                    name, operator and value
-  # === example
-  # link_to 'foobar', link_to_issue_filter_options [[ :tags, '~', 'foobar' ]]
-  #
-  # filters = [[ :tags, '~', 'bazbaz' ], [:status_id, 'o']]
-  # link_to 'bazbaz', link_to_issue_filter_options filters
-  def link_to_issue_filter_options(filters)
-    options = {
-      controller: 'issues',
-      action: 'index',
-      set_filter: 1,
-      fields: [],
-      values: {},
-      operators: {}
-    }
-
-    filters.each do |f|
-      name, operator, value = f
-      options[:fields].push(name)
-      options[:operators][name] = operator
-      options[:values][name] = [value]
-    end
-
-    options
-  end
-
-  private
-
-  def add_tags(style, tags, content, item_el, options)
-    tag_cloud tags, (1..8).to_a do |tag, weight|
-      content << ' '.html_safe + content_tag(item_el, render_issue_tag_link(tag, options), class: "tag-nube-#{weight}", style: (style == :simple_cloud ? 'font-size: 1em;' : '')) + ' '.html_safe
-    end
-  end
-end
diff --git a/plugins/redmineup_tags/app/views/context_menus/_issues_tags.html.erb b/plugins/redmineup_tags/app/views/context_menus/_issues_tags.html.erb
deleted file mode 100644
index 9923f00..0000000
--- a/plugins/redmineup_tags/app/views/context_menus/_issues_tags.html.erb
+++ /dev/null
@@ -1,6 +0,0 @@
-<% if User.current.allowed_to?(:edit_tags, @projects || @project) %>
-  <li><%= context_menu_link l(:label_add_tags),
-                            edit_issue_tags_path(:ids => @issue_ids),
-                            :remote => true,
-                            :class => 'icon icon-add-tags' %></li>
-<% end %>
diff --git a/plugins/redmineup_tags/app/views/issue_tags/_edit_modal.html.erb b/plugins/redmineup_tags/app/views/issue_tags/_edit_modal.html.erb
deleted file mode 100644
index 6063025..0000000
--- a/plugins/redmineup_tags/app/views/issue_tags/_edit_modal.html.erb
+++ /dev/null
@@ -1,42 +0,0 @@
-<h3 class="title"><%= l(:label_add_tags) %></h3>
-
-<% if @is_bulk_editing %>
-  <h3><%= l(:label_bulk_edit_selected_issues) %></h3>
-  <ul>
-    <% @issues.each do |issue| %>
-        <%= content_tag 'li', link_to_issue(issue) %>
-    <% end %>
-  </ul>
-<% else %>
-    <h3><%= content_tag 'span', link_to_issue(@issues.first) %></h3>
-<% end %>
-
-
-<%= form_tag(update_issue_tags_path(:ids => @issue_ids),
-             :method => :post,
-             :id => 'edit-issue-tags-form') do %>
-
-    <%= hidden_field_tag :add_only, 1 %>
-    <fieldset class="box">
-      <legend><%= l(:tags) %></legend>
-      <div id="issue_tags">
-        <%= select2_tag 'issue[tag_list]',
-                        [],
-                        width: '100%',
-                        multiple: true,
-                        url: auto_complete_redmine_tags_path,
-                        placeholder: @is_bulk_editing ? t(:label_no_change_option) : '+ add tag',
-                        tags: User.current.allowed_to?(:create_tags, @project) %>
-      </div>
-
-      <p class="most_used_tags">
-        <%= safe_join(@most_used_tags.collect { |t| content_tag('span', t.name, :class => 'most_used_tag') }, ', ') %>
-      </p>
-      <%= javascript_tag "var mostUsedTags = #{@most_used_tags.map(&:name)}" %>
-    </fieldset>
-
-    <div class="buttons">
-      <%= submit_tag l(:button_add), :name => nil %>
-      <%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %>
-    </div>
-<% end %>
diff --git a/plugins/redmineup_tags/app/views/issue_tags/edit.js.erb b/plugins/redmineup_tags/app/views/issue_tags/edit.js.erb
deleted file mode 100644
index b2ae127..0000000
--- a/plugins/redmineup_tags/app/views/issue_tags/edit.js.erb
+++ /dev/null
@@ -1,2 +0,0 @@
-$('#ajax-modal').html('<%= escape_javascript(render :partial => 'issue_tags/edit_modal') %>');
-showModal('ajax-modal', '600px');
diff --git a/plugins/redmineup_tags/app/views/issues/_tags.html.erb b/plugins/redmineup_tags/app/views/issues/_tags.html.erb
deleted file mode 100644
index 15a2574..0000000
--- a/plugins/redmineup_tags/app/views/issues/_tags.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<% if issue.tag_list.present? %>
-  <%= issue_fields_rows do |rows|
-    rows.left l(:tags), safe_join(issue.tag_counts.collect{ |t| render_issue_tag_link(t, :show_count => false, :open_only => RedmineupTags.settings['issues_open_only'].to_i > 0 ) }, RedmineupTags.settings['issues_use_colors'].to_i > 0 ? ' ' : ', ')
-  end %>
-<% end %>
diff --git a/plugins/redmineup_tags/app/views/issues/_tags_form.html.erb b/plugins/redmineup_tags/app/views/issues/_tags_form.html.erb
deleted file mode 100644
index ffa254c..0000000
--- a/plugins/redmineup_tags/app/views/issues/_tags_form.html.erb
+++ /dev/null
@@ -1,23 +0,0 @@
-<% if User.current.allowed_to?(:edit_tags, (@issue && @issue.project) || @projects || @project) %>
-  <div class="<%= 'splitcontentleft' if defined? form %>">
-    <p id="issue_tags">
-      <label><%= l(:tags) %></label>
-      <% text_field_options = {:label => :tags, :size => 60, :class => 'hol'} %>
-      <% tags = defined?(form) ? form.object.tag_list : [] %>
-      <% if defined? form || defined? issues %>
-        <%= select2_tag 'issue[tag_list]',
-                        options_for_select(tags.map{ |tag| [tag, tag] }, tags),
-                        :multiple => true,
-                        :include_hidden => (params[:action] != 'bulk_edit'),
-                        :style => 'width: 100%;',
-                        :url => auto_complete_redmine_tags_path,
-                        :placeholder => params[:action] == 'bulk_edit' ? t(:label_no_change_option) : '+ add tag',
-                        :tags => User.current.allowed_to?(:create_tags, @projects || @project) %>
-
-      <% else %>
-        <%= label_tag :tags, nil, :for => :issue_tag_list %>
-        <%= text_field_tag 'issue[tag_list]', "", :class => text_field_options[:class], :size => text_field_options[:size], :id => :issue_tag_list %>
-      <% end %>
-    </p>
-  </div>
-<% end %>
diff --git a/plugins/redmineup_tags/app/views/issues/_tags_sidebar.html.erb b/plugins/redmineup_tags/app/views/issues/_tags_sidebar.html.erb
deleted file mode 100644
index 966a296..0000000
--- a/plugins/redmineup_tags/app/views/issues/_tags_sidebar.html.erb
+++ /dev/null
@@ -1,6 +0,0 @@
-<% unless sidebar_tags.empty? -%>
-<div class="sidebar-tags">
-  <h3><%= l(:tags) %></h3>
-  <%= render_sidebar_tags %>
-</div>
-<% end -%>
diff --git a/plugins/redmineup_tags/app/views/reports/_tags_simple.html.erb b/plugins/redmineup_tags/app/views/reports/_tags_simple.html.erb
deleted file mode 100644
index 3fcf272..0000000
--- a/plugins/redmineup_tags/app/views/reports/_tags_simple.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<h3>
-  <%=l(:field_tags)%>&nbsp;
-  <%= link_to l(:label_details),
-        project_issues_report_details_path(@project, detail: 'tag'),
-        :class => 'icon-only icon-zoom-in',
-        :title => l(:label_details) %>
-</h3>
-<%= render partial: 'simple', locals: { data: @issues_by_tags, field_name: "tag_id", rows: @tags } %>
diff --git a/plugins/redmineup_tags/app/views/tags/_additional_assets.html.erb b/plugins/redmineup_tags/app/views/tags/_additional_assets.html.erb
deleted file mode 100644
index 8b941e6..0000000
--- a/plugins/redmineup_tags/app/views/tags/_additional_assets.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<% content_for :header_tags do %>
-  <%= stylesheet_link_tag(:redmine_tags, plugin: 'redmineup_tags') %>
-  <%= javascript_include_tag(:redmine_tags, plugin: 'redmineup_tags') %>
-  <%= select2_assets %>
-<% end %>
diff --git a/plugins/redmineup_tags/app/views/tags/_general.html.erb b/plugins/redmineup_tags/app/views/tags/_general.html.erb
deleted file mode 100644
index 8f3c36e..0000000
--- a/plugins/redmineup_tags/app/views/tags/_general.html.erb
+++ /dev/null
@@ -1,25 +0,0 @@
-<p>
-  <%= label_tag 'settings[issues_sidebar]', l(:issues_sidebar) %>
-  <%= select_tag 'settings[issues_sidebar]', options_for_select(%w(none list cloud simple_cloud).collect{|v| [l("issue_tags_sidebar_#{v}"), v]}, @settings['issues_sidebar']) %>
-</p>
-<p>
-  <%= label_tag 'settings[issues_show_count]', l(:issues_show_count) %>
-  <%= check_box_tag 'settings[issues_show_count]', 1, 1 == @settings['issues_show_count'].to_i %>
-</p>
-<p>
-  <%= label_tag 'settings[issues_open_only]', l(:issues_open_only) %>
-  <%= check_box_tag 'settings[issues_open_only]', 1, 1 == @settings['issues_open_only'].to_i %>
-</p>
-<p>
-  <%= label_tag 'settings[issues_sort_by]', l(:issues_sort_by) %>
-  <%= select_tag 'settings[issues_sort_by]', options_for_select(%w(name count).collect{|v| [l("issues_sort_by_#{v}"), v]}, @settings['issues_sort_by']) %>
-  <%= select_tag 'settings[issues_sort_order]', options_for_select(%w(asc desc).collect{|v| [l("issues_sort_order_#{v}"), v]}, @settings['issues_sort_order']) %>
-</p>
-<p>
-  <%= label_tag 'settings[tags_suggestion_order]', l(:tags_suggestion_order) %>
-  <%= select_tag 'settings[tags_suggestion_order]', options_for_select(%w(name last_created most_used).collect{|v| [l("tags_order_by_#{v}"), v]}, @settings['tags_suggestion_order']) %>
-</p>
-<p>
-  <%= label_tag 'settings[issues_use_colors]', l(:issues_use_colors) %>
-  <%= check_box_tag 'settings[issues_use_colors]', 1, 1 == @settings['issues_use_colors'].to_i %>
-</p>
diff --git a/plugins/redmineup_tags/app/views/tags/_manage_tags.html.erb b/plugins/redmineup_tags/app/views/tags/_manage_tags.html.erb
deleted file mode 100644
index 64cbf45..0000000
--- a/plugins/redmineup_tags/app/views/tags/_manage_tags.html.erb
+++ /dev/null
@@ -1,46 +0,0 @@
-<% tags = Issue.all_tag_counts(:order => :name) %>
-<% unless tags.to_a.empty? %>
-  <table class  = "list issues">
-    <thead>
-      <tr>
-        <th class="checkbox hide-when-print">
-          <%= link_to image_tag('toggle_check.png'), {},
-                                :onclick => 'toggleIssuesSelection(this); return false;',
-                                :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
-        </th>
-        <th><%= l(:field_name) %></th>
-        <th align="center" style="width:10%;"> </th>
-      </tr>
-    </thead>
-    <tbody>
-      <% tags.each do |tag| %>
-        <tr id="<%= tag.id %>" class="<%= cycle("odd", "even") %> hascontextmenu ">
-          <td class="checkbox hide-when-print"><%= check_box_tag("ids[]", tag.id, false, :id => nil) %></td>
-          <td><%= render_issue_tag_link(tag) %></td>
-          <td class="buttons">
-            <%= link_to l(:button_edit), edit_tag_path(tag),
-                                           :class => 'icon icon-edit' %>
-            <%= link_to l(:button_delete), tags_path(:ids => tag),
-                                           :method => :delete,
-                                           :confirm => l(:text_are_you_sure),
-                                           :class => 'icon icon-del' %>
-            </td>
-        </tr>
-      <% end %>
-    </tbody>
-  </table>
-
-  <% content_for :header_tags do
-    javascript_include_tag('context_menu') + stylesheet_link_tag('context_menu')
-  end %>
-
-  <%= javascript_tag do %>
-    $(document).ready(function(){
-      $('#settings form').data('cmUrl', '<%= tags_context_menu_path %>')
-    })
-  <% end %>
-<% else %>
-  <p class="nodata"><%= l(:label_no_data) %></p>
-<% end %>
-
-
diff --git a/plugins/redmineup_tags/app/views/tags/_select2_transformation_rules.html.erb b/plugins/redmineup_tags/app/views/tags/_select2_transformation_rules.html.erb
deleted file mode 100644
index 58b491d..0000000
--- a/plugins/redmineup_tags/app/views/tags/_select2_transformation_rules.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<%= transform_to_select2('issue_tags', url: auto_complete_redmine_tags_path) %>
diff --git a/plugins/redmineup_tags/app/views/tags/_settings.html.erb b/plugins/redmineup_tags/app/views/tags/_settings.html.erb
deleted file mode 100644
index 543f4e4..0000000
--- a/plugins/redmineup_tags/app/views/tags/_settings.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<% tags_tabs = [{:name => 'general', :partial => 'tags/general', :label => :label_general},
-                {:name => 'manage_tags', :partial => 'tags/manage_tags', :label => :issue_tags_manage_tags}
-        ]   %>   
-
-
-<%= render_tabs tags_tabs %>
-
-<% html_title(l(:label_settings), l(:tags)) -%>  
diff --git a/plugins/redmineup_tags/app/views/tags/context_menu.html.erb b/plugins/redmineup_tags/app/views/tags/context_menu.html.erb
deleted file mode 100644
index 31bf288..0000000
--- a/plugins/redmineup_tags/app/views/tags/context_menu.html.erb
+++ /dev/null
@@ -1,12 +0,0 @@
-<ul>
-  <% if @tag -%>
-    <li><%= link_to l(:button_edit), edit_tag_path(@tag),
-            :class => 'icon icon-edit' %></li>
-  <% else %>
-    <li><%= link_to l(:issue_tags_button_merge), merge_tags_path(:ids => @tags.collect(&:id)),
-            :class => 'icon icon-tags-merge' %></li>
-  <% end %>
-
-    <li><%= link_to l(:button_delete), tags_path(:ids => @tags.collect(&:id), :back_url => @back),
-                            :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :class => 'icon icon-del' %></li>
-</ul>
diff --git a/plugins/redmineup_tags/app/views/tags/edit.html.erb b/plugins/redmineup_tags/app/views/tags/edit.html.erb
deleted file mode 100644
index 601e764..0000000
--- a/plugins/redmineup_tags/app/views/tags/edit.html.erb
+++ /dev/null
@@ -1,14 +0,0 @@
-<h2><%= link_to l(:setting_issue_tags), controller: 'settings', action: 'plugin', id: 'redmineup_tags', tab: 'manage_tags' %> &#187; <%=h (l(:issue_tags_tag) + ": " + @tag.name) %></h2>
-
-<%= form_tag(tag_path(@tag, :tab => 'tags'), :class => "tabular", :method => :put) do %>
-  <%= error_messages_for 'tag' %>
-<div class="box">
-<!--[form:optvalue]-->
-<p><label for="tag_name"><%=l(:field_name)%></label>
-<%= text_field 'tag', 'name'  %></p>
-
-
-</div>
-
-  <%= submit_tag l(:button_save) %>
-<% end %>
diff --git a/plugins/redmineup_tags/app/views/tags/merge.html.erb b/plugins/redmineup_tags/app/views/tags/merge.html.erb
deleted file mode 100644
index 76ac2ac..0000000
--- a/plugins/redmineup_tags/app/views/tags/merge.html.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-<h2>
-  <%= link_to l(:setting_issue_tags), :controller => 'settings', :action => 'plugin', :id => 'redmineup_tags', :tab => 'manage_tags' %> &#187; <%= l(:issue_tags_label_merge) %>
-</h2>
-
-<%= form_tag(merge_tags_path(:ids => @tags.map(&:id)), :class => "tabular") do %>
-  <%= error_messages_for 'tag' %>
-  <%= render_tags_list(@tags, {
-      :show_count => true,
-      :open_only => false,
-      :style => :simple_cloud
-    }) %>
-
-
-<div class="box">
-
-
-<!--[form:optvalue]-->
-<p><label for="tag_name"><%=l(:field_name)%></label>
-<%= text_field 'tag', 'name', :value => @tags.first.name  %></p>
-
-
-</div>
-
-  <%= submit_tag l(:button_save) %>
-<% end %>
-
diff --git a/plugins/redmineup_tags/assets/images/tag-icon.png b/plugins/redmineup_tags/assets/images/tag-icon.png
deleted file mode 100644
index 9757fc6ed6597438eb8e5a70a1ab2402cdebd5d1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 586
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@%~i(`nz>DI|NyQCaN
z+Fq+ZGds9lV3tj+Ldql`J!5B~PYmlc-f3uP<z2STv(@XE(YNT>9n+O*Io1EJXl|4(
zJb85IN~{0h|1bY#a=BFYZl3ttGU>Hp+-K8-XDxFK4K<PK)n<4Tw9#)l^YOyIEUUR*
z9$TaKawI<SVLEKE<a3Hqp<;<z(1H-Hxvd6WK4+h}v45?KHT4zVmV3IGDNIZB$>*Pw
z1>Dx{c2leqn#g;4(*}dwCv~}#dyXfIbh|z&+NsQ;{5<x_*)(RM|NmY;IDFXn-aY2X
z<Z5%NUJceuFTXIhbV~lr+B(Vi^;fClhc#<$AA5`cSj8+a|82s<0uN1r{^PM6tFLC|
zAL*&t8FOmcxl_~5l{0-<%wAJ%)562X?A7R@qNF$}NN>8Rp>n*A*rt~s`+L8yYPPQB
z-+8U!%z51<*Ix&6wKy%*E}!PKa6yOU&l)@XrW)~v^S%$B-D}!=bD4+QWDXXl_55)m
zXO^dIj<lP7Hs*vi<4+a09l2{0qx|)c%9XcFpL#N7N{H6cOkvJN+$VBxH>SRy`?qfY
z@!BK7rzd)-Oo`ArmML65f5wqVe;jJW97KEF_C8u_sT;BXzP;u?js;xphwmjAobY_}
s`KOI~_|N+Ns|&tzeOz7q{Xaw08LKy2zEo>6FfcH9y85}Sb4q9e0C-6PEC2ui

diff --git a/plugins/redmineup_tags/assets/images/tag_blue_add.png b/plugins/redmineup_tags/assets/images/tag_blue_add.png
deleted file mode 100644
index f135248f82e3d0b87d29d1628057f62dc51ec6c6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 671
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfyvO*#WBR<bnT?`-9dpO
z$M4%4cAL5GHq(t#^;oOiB&Hjcc2VTYBC*Y@TthBoBugHga^-?mNr;JPt*v9=$8f8E
z75;%PXG~0^Rc%i$|2(&P-pdp#JByfid!N_ryI*|&p^9gdM%RhwpHDn3I+3>dM2eBe
z^2;7egR&WRgdP;-V(mHpxHZFUww8)q|N54KB|faZZqA|WuD>?sm}@BB;iBa3WU<NT
z<PtablPN}b-+y1I(N*PlAVQ}t!C;5Tp^2|dCW`(~oF?6TkYVn=rUTnMCr7PqE3oKs
zP}som(4#V|(nPAUtNxGN<Dd8J=G8H_9DA}ZYV9QMAAkQ@avZOkQoVQHEE5^Ni)p9Y
z&e+}SIAG0r<Cb+xh?Zy(WB+mE=7LU_M>4Mi-<9po3R<{)#i=y59|27F#GflZEt(l~
z;AP1wfvG~hZd=#5@4WnSh3C=vTwh)qp1GuWWCG)l^}-%2LzKif+<u$AInHU}glS(j
zw%>lsdV-JH=2yz`zuT?uR8>k^{bjW=%ugsU|9<37_ojbaniNi~4a;V$Jf^@eBmeP6
zm26(2^v(A+KJ(u{SoPB6+&$a0m>=tH&S%%!&G(t?A<*f#PEzksWCd&bN7J)hJ%_A(
z4&^fOO!J$5{q@ydck^bdO;ngJH?J}L&cXfjwfFlrEKa}kv?%k2_i2-a=kMnp5vymO
zy~j`Y-j~;5)-&1;KfG`w$E@=3mOkxc!4(JZhfK{}`uCFg5BoJ?tB)mZlu18XCAR;>
fxBH>~-`NAJ6wV6gJzmMcz`)??>gTe~DWM4fv}`qZ

diff --git a/plugins/redmineup_tags/assets/javascripts/redmine_tags.js b/plugins/redmineup_tags/assets/javascripts/redmine_tags.js
deleted file mode 100644
index 4bb2891..0000000
--- a/plugins/redmineup_tags/assets/javascripts/redmine_tags.js
+++ /dev/null
@@ -1,19 +0,0 @@
-$(function () {
-    $('body').on('click', '.most_used_tags .most_used_tag', function (e) {
-        var $tagsSelect = $('select#issue_tag_list');
-        var tag = e.target.innerText;
-        if ($tagsSelect.find("option[value='" + tag + "']").length === 0) {
-            var newOption = new Option(tag, tag, true, true);
-            $tagsSelect.append(newOption).trigger("change");
-        }
-
-        mostUsedTags = $.grep(mostUsedTags, function(t) { return t != tag; });
-        var tagsHtml = mostUsedTags.map(function(tag) {
-            return '<span class="most_used_tag">' + tag + '</span>';
-        }).join(', ');
-
-        var $mostUsedTagsContainer = $(e.target).parent('.most_used_tags');
-        $mostUsedTagsContainer.empty();
-        $mostUsedTagsContainer.append(tagsHtml);
-    });
-});
diff --git a/plugins/redmineup_tags/assets/stylesheets/redmine_tags.css b/plugins/redmineup_tags/assets/stylesheets/redmine_tags.css
deleted file mode 100644
index 67be79b..0000000
--- a/plugins/redmineup_tags/assets/stylesheets/redmine_tags.css
+++ /dev/null
@@ -1,44 +0,0 @@
-#admin-menu a.tags { background-image: url(../images/tag-icon.png);}
-
-#sidebar ul.tags-cloud { list-style: none; padding: 0px; }
-#sidebar ul.tags-cloud li { margin: .25em 0px; }
-
-div.tags-cloud { text-align: center; }
-.tag-label-color {
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 3px;
-  padding: 2px 4px;
-  display: inline-block;
-  font-size: 10px;
-  margin: 0px 0px 5px 2px;
-  color: white;
-}
-
-table.list tr.issue .tag-label-color a, .tag-label-color a { color: white; }
-
-tr.issue td.tags,
-table.list tr td.tags {text-align: left; white-space: normal;}
-
-div.tags-cloud .tag-nube-1 { font-size: .8em; }
-div.tags-cloud .tag-nube-2 { font-size: .9em; }
-div.tags-cloud .tag-nube-3 { font-size: 1em; }
-div.tags-cloud .tag-nube-4 { font-size: 1.1em; }
-div.tags-cloud .tag-nube-5 { font-size: 1.2em; }
-div.tags-cloud .tag-nube-6 { font-size: 1.3em; }
-div.tags-cloud .tag-nube-7 { font-size: 1.4em; }
-div.tags-cloud .tag-nube-8 { font-size: 1.5em; }
-
-.tag-label .tag-count,
-.tag-label-color .tag-count { font-size: .75em; margin-left: .5em; }
-
-
-#sidebar ul.tags-cloud li.letter { border-bottom: 1px dotted; margin: 10px 30px 10px 0px; font-weight: bold; }
-
-#tr_tags .select2-selection { background: initial; }
-#tr_tags .select2-selection__rendered { padding-left: 8px; }
-
-.icon-tags { background-image: url(../images/tag-icon.png);}
-.icon-add-tags { background-image: url(../images/tag_blue_add.png);}
-
-.most_used_tag { cursor: pointer; color: #169; }
-.most_used_tag:hover { text-decoration: underline;}
diff --git a/plugins/redmineup_tags/config/locales/bg.yml b/plugins/redmineup_tags/config/locales/bg.yml
deleted file mode 100644
index af3700e..0000000
--- a/plugins/redmineup_tags/config/locales/bg.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-# This file is a part of redmine_tags
-# redMine plugin, that adds tagging support.
-#
-# Bulgarian translation for redmine_tags
-# by Ivan Cenov (jwalker_@Skype) i_cenov@botevgrad.com
-#
-# Copyright (c) 2010 Aleksey V Zapparov AKA ixti
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-bg:
-  tags: Маркери
-  field_tags: Маркери
-  field_tag_list: Маркери
-  setting_issue_tags: Маркери на задачите
-  issues_sidebar: Показване на страничния панел като
-  issues_show_count: Показване на броя на задачите
-  issues_open_only: Само отворените задачи
-  issues_sort_by: Подреждане на маркерите по
-  issues_use_colors: Използване на цветове
-
-  issue_tags_sidebar_none: Да не се показват
-  issue_tags_sidebar_list: Списък
-  issue_tags_sidebar_cloud: Облак
-  issue_tags_sidebar_simple_cloud: Опростен облак
-
-  issues_sort_by_name: Наименование
-  issues_sort_by_count: Количество задачи
-  issues_sort_order_asc: Нарастване
-  issues_sort_order_desc: Намаляване
-
-  auto_complete_new_tag: Добавяне на нов...
diff --git a/plugins/redmineup_tags/config/locales/de.yml b/plugins/redmineup_tags/config/locales/de.yml
deleted file mode 100644
index 2b57337..0000000
--- a/plugins/redmineup_tags/config/locales/de.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-de:
-  tags: Tags
-  field_tags: Tags
-  field_tag_list: Tags
-  label_add_tags: Tags hinzufügen
-  notice_tags_added: Tags hinzugefügt
-  notice_failed_to_add_tags: Fehler beim hinzufügen der Tags
-  setting_issue_tags: Ticket Tags
-  issues_sidebar: Zeige die Tags auf der Sidebar
-  issues_show_count: Zeige die Ticketanzahl an
-  issues_open_only: Zeige nur noch offene Tickets
-  issues_sort_by: Sortiere Tags nach
-  issues_use_colors: Farben verwenden
-
-  issue_tags_sidebar_none: Keine
-  issue_tags_sidebar_list: Liste
-  issue_tags_sidebar_cloud: Cloud
-  issue_tags_sidebar_simple_cloud: Simple Cloud
-
-  issues_sort_by_name: Name
-  issues_sort_by_count: Anzahl tickets
-  issues_sort_order_asc: Aufsteigend
-  issues_sort_order_desc: Absteigend
-
-  auto_complete_new_tag: Hinzufügen...
-
-  issue_tags_label_add_tag: + tag hinzufügen
-  issue_tags_manage_tags: Tags bearbeiten
-  issue_tags_tag: Tag
-  issue_tags_button_merge: zusammenführen
-  issue_tags_label_merge: ausgwählte Tags zusammenführen
-
-  tags_suggestion_order: Reihenfolge der Vorschläge
-  tags_order_by_name: Name
-  tags_order_by_last_created: zuletzt angelegt
-  tags_order_by_most_used: am meisten benutzt
diff --git a/plugins/redmineup_tags/config/locales/en.yml b/plugins/redmineup_tags/config/locales/en.yml
deleted file mode 100644
index 4826377..0000000
--- a/plugins/redmineup_tags/config/locales/en.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# This file is a part of redmine_tags
-# redMine plugin, that adds tagging support.
-#
-# English translation for redmine_tags
-# by Aleksey V Zapparov AKA ixti
-#
-# Copyright (c) 2010 Aleksey V Zapparov AKA ixti
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-en:
-  tags: Tags
-  field_tags: Tags
-  field_tag_list: Tags
-  label_add_tags: Add tags
-  notice_tags_added: Tags added
-  notice_failed_to_add_tags: Failed to add tags
-  setting_issue_tags: Issues Tags
-  issues_sidebar: Display tags on sidebar as
-  issues_show_count: Display amount of issues
-  issues_open_only: Display open issues only
-  issues_sort_by: Sort tags by
-  issues_use_colors: Use colors
-
-  issue_tags_sidebar_none: None
-  issue_tags_sidebar_list: List
-  issue_tags_sidebar_cloud: Cloud
-  issue_tags_sidebar_simple_cloud: Simple cloud
-
-  issues_sort_by_name: Name
-  issues_sort_by_count: Issues amount
-  issues_sort_order_asc: Ascending
-  issues_sort_order_desc: Descending
-
-  auto_complete_new_tag: Add new...
-
-  issue_tags_label_add_tag: + add tag
-  issue_tags_manage_tags: Manage tags
-  issue_tags_tag: Tag
-  issue_tags_button_merge: Merge
-  issue_tags_label_merge: Merge selected tags
-
-  tags_suggestion_order: Suggestion order
-  tags_order_by_name: Name
-  tags_order_by_last_created: Last created
-  tags_order_by_most_used: Most used
diff --git a/plugins/redmineup_tags/config/locales/fr.yml b/plugins/redmineup_tags/config/locales/fr.yml
deleted file mode 100644
index 3476420..0000000
--- a/plugins/redmineup_tags/config/locales/fr.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is a part of redmine_tags
-# redMine plugin, that adds tagging support.
-#
-# French translation for redmine_tags
-# by Stephane HANNEQUIN, <stephane.hannequin(at)aster-ingenierie.com>
-#
-# Copyright (c) 2010 Stephane HANNEQUIN
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-fr:
-  tags: Tags
-  field_tags: Tags
-  field_tag_list: Tags
-  setting_issue_tags: Tags des demandes
-  issues_sidebar: Afficher les Tags comme
-  issues_show_count: Afficher le nombre de demande
-  issues_open_only: N'afficher que les demandes ouvertes
-  issues_sort_by: (en) Sort tags by
-  
-  issue_tags_sidebar_none: Ne pas afficher
-  issue_tags_sidebar_list: Liste
-  issue_tags_sidebar_cloud: Nuage
-
-  issues_sort_by_name: (en) Name
-  issues_sort_by_count: (en) Issues amount
-  issues_sort_order_asc: (en) Ascending
-  issues_sort_order_desc: (en) Descending
-
-  auto_complete_new_tag: Nouveau...
diff --git a/plugins/redmineup_tags/config/locales/pt-BR.yml b/plugins/redmineup_tags/config/locales/pt-BR.yml
deleted file mode 100644
index 02c5052..0000000
--- a/plugins/redmineup_tags/config/locales/pt-BR.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-# This file is a part of redmine_tags
-# redMine plugin, that adds tagging support.
-#
-# Portuguese Brazil translation for redmine_tags
-# by Leandro Guindani Gehlen
-#
-# Copyright (c) 2018 Leandro Guindani Gehlen
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-pt-BR:
-  tags: Tags
-  field_tags: Tags
-  field_tag_list: Tags
-  setting_issue_tags: Tags das tarefas
-  issues_sidebar: Exibir tags no menu lateral como
-  issues_show_count: Exibir a quantidade de tarefas
-  issues_open_only: Exibir apenas tarefas abertas
-  issues_sort_by: Ordentar tags por
-  issues_use_colors: Usar cores
-
-  issue_tags_sidebar_none: Nenhum
-  issue_tags_sidebar_list: Lista
-  issue_tags_sidebar_cloud: Cloud
-  issue_tags_sidebar_simple_cloud: Cloud simples
-
-  issues_sort_by_name: Nome
-  issues_sort_by_count: Quantidade
-  issues_sort_order_asc: Ascendente
-  issues_sort_order_desc: Descendente
-
-  auto_complete_new_tag: Adicionar nova...
-
-  issue_tags_label_add_tag: + Adicionar tag
-  issue_tags_manage_tags: Gerenciar tags
-  issue_tags_tag: Tag
-  issue_tags_button_merge: Mesclar
-  issue_tags_label_merge: Mesclar tags selecionada
diff --git a/plugins/redmineup_tags/config/locales/ro.yml b/plugins/redmineup_tags/config/locales/ro.yml
deleted file mode 100644
index df86462..0000000
--- a/plugins/redmineup_tags/config/locales/ro.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-ro:
-  tags: Etichete
-  field_tags: Etichete
-  field_tag_list: Etichete
-  label_add_tags: Adaugă etichete
-  notice_tags_added: Etichetele au fost adăugate
-  notice_failed_to_add_tags: Etichetele nu s-au putut adăuga
-  setting_issue_tags: Etichete de sarcini
-  issues_sidebar: Mod de afișare etichete în sidebar
-  issues_show_count: Afișează numărul de sarcini
-  issues_open_only: Afișează doar pentru sarcinile deschise
-  issues_sort_by: Sortează etichetele după
-  issues_use_colors: Folosește culori
-
-  issue_tags_sidebar_none: Deloc
-  issue_tags_sidebar_list: Listă
-  issue_tags_sidebar_cloud: Nor
-  issue_tags_sidebar_simple_cloud: Nor simplu
-
-  issues_sort_by_name: Denumire
-  issues_sort_by_count: Număr de sarcini
-  issues_sort_order_asc: Crescător
-  issues_sort_order_desc: Descrescător
-
-  auto_complete_new_tag: "Adaugă..."
-
-  issue_tags_label_add_tag: "+ adaugă etichetă"
-  issue_tags_manage_tags: Administrare etichete
-  issue_tags_tag: Etichetă
-  issue_tags_button_merge: Unește
-  issue_tags_label_merge: Unește etichetele selectate
-
-  tags_suggestion_order: Sugerează în ordine, pornind de la
-  tags_order_by_name: Denumire alfabetic
-  tags_order_by_last_created: Ultima creată
-  tags_order_by_most_used: Cea mai folosită
diff --git a/plugins/redmineup_tags/config/locales/ru.yml b/plugins/redmineup_tags/config/locales/ru.yml
deleted file mode 100644
index d381ddc..0000000
--- a/plugins/redmineup_tags/config/locales/ru.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-ru:
-  tags: Теги
-  field_tags: Теги
-  field_tag_list: Теги
-  label_add_tags: Добавить теги
-  notice_tags_added: Теги добавлены
-  notice_failed_to_add_tags: Не удалось добавить теги
-  setting_issue_tags: Теги задач
-  issues_sidebar: Боковую панель как
-  issues_show_count: Показать кол-во задач
-  issues_open_only: Только открытые задачи
-  issues_sort_by: Упорядочить теги по
-  issues_use_colors: Использовать цвета
-  
-  issue_tags_sidebar_none: Не показывать
-  issue_tags_sidebar_list: Список
-  issue_tags_sidebar_cloud: Облако
-  issue_tags_sidebar_simple_cloud: Простое облако
-  
-  issues_sort_by_name: Названию
-  issues_sort_by_count: Кол-ву задач
-  issues_sort_order_asc: по возрастанию
-  issues_sort_order_desc: по убыванию
-
-  auto_complete_new_tag: Добавить...
-  issue_tags_label_add_tag: + добавить тег
-
-  tags_suggestion_order: Порядок поиска
-  tags_order_by_name: По названию
-  tags_order_by_last_created: Сначала новые
-  tags_order_by_most_used: Часто используемые
diff --git a/plugins/redmineup_tags/config/locales/zh-TW.yml b/plugins/redmineup_tags/config/locales/zh-TW.yml
deleted file mode 100644
index bc26fbc..0000000
--- a/plugins/redmineup_tags/config/locales/zh-TW.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is a part of redmine_tags
-# redmine plugin, that adds tagging support.
-#
-# Tranditional Chinese translation for redmine_tags
-# by Timothy Lee (https://github.com/ctiml)
-#
-# Copyright (c) 2010 Aleksey V Zapparov AKA ixti
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-zh-TW:
-  tags: 標籤
-  field_tags: 標籤
-  field_tag_list: 標籤
-  setting_issue_tags: 問題標籤
-  issues_sidebar: 在側邊欄顯示標籤
-  issues_show_count: 顯示問計數
-  issues_open_only: 僅顯示進行中的問題
-  issues_sort_by: 標籤依哪種方式排序
-
-  issue_tags_sidebar_none: 無
-  issue_tags_sidebar_list: 列表顯示
-  issue_tags_sidebar_cloud: 標籤雲
-
-  issues_sort_by_name: 名稱名称
-  issues_sort_by_count: 問題計數
-  issues_sort_order_asc: 順序
-  issues_sort_order_desc: 倒序
-
-  auto_complete_new_tag: 增加新標籤 ...
-
-  issue_tags_label_add_tag: + 新增
-  issue_tags_manage_tags: 管理標籤
-  issue_tags_tag: 標籤
-  issue_tags_button_merge: 合併
-  issue_tags_label_merge: 合併選擇的標籤
diff --git a/plugins/redmineup_tags/config/locales/zh.yml b/plugins/redmineup_tags/config/locales/zh.yml
deleted file mode 100644
index b83afbb..0000000
--- a/plugins/redmineup_tags/config/locales/zh.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# This file is a part of redmine_tags
-# redMine plugin, that adds tagging support.
-#
-# Simplified Chinese translation for redmine_tags
-# by archonwang (https://github.com/archonwang)
-#
-# Copyright (c) 2010 Aleksey V Zapparov AKA ixti
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-zh:
-  tags: 标签
-  field_tags: 标签
-  field_tag_list: 标签
-  label_add_tags: 添加标签
-  notice_tags_added: 添加的标签
-  notice_failed_to_add_tags: 添加标签失败
-  setting_issue_tags: 问题标签
-  issues_sidebar: 在侧边栏显示标签
-  issues_show_count: 显示问题计数
-  issues_open_only: 仅显示打开的问题
-  issues_sort_by: 标签按何种方式排序
-  issues_use_colors: 使用颜色
-
-  issue_tags_sidebar_none: 无
-  issue_tags_sidebar_list: 列表显示
-  issue_tags_sidebar_cloud: 云显示
-  issue_tags_sidebar_simple_cloud: 简单云
-
-  issues_sort_by_name: 名称
-  issues_sort_by_count: 问题计数
-  issues_sort_order_asc: 顺序
-  issues_sort_order_desc: 倒序
-
-  auto_complete_new_tag: 添加新标签 ...
-
-  issue_tags_label_add_tag: + 添加标签
-  issue_tags_manage_tags: 管理标签
-  issue_tags_tag: 标签
-  issue_tags_button_merge: 合并
-  issue_tags_label_merge: 合并选择的标签
-
-  tags_suggestion_order: 建议顺序
-  tags_order_by_name: 名称
-  tags_order_by_last_created: 最后创建的标签
-  tags_order_by_most_used: 最常用的标签
diff --git a/plugins/redmineup_tags/config/routes.rb b/plugins/redmineup_tags/config/routes.rb
deleted file mode 100644
index 0d0cd43..0000000
--- a/plugins/redmineup_tags/config/routes.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-RedmineApp::Application.routes.draw do
-  match 'auto_completes/redmine_tags' => 'auto_completes#redmine_tags', via: :get, as: 'auto_complete_redmine_tags'
-  match '/tags/context_menu', to: 'tags#context_menu', as: 'tags_context_menu', via: [:get, :post]
-  match '/tags', controller: 'tags', action: 'destroy', via: :delete
-end
-
-resources :tags, only: [:edit, :update] do
-  collection do
-    post :merge
-    get :context_menu, :merge
-  end
-end
-
-get :edit_issue_tags, to: 'issue_tags#edit'
-post :update_issue_tags, to: 'issue_tags#update'
diff --git a/plugins/redmineup_tags/db/migrate/001_add_tags_and_taggings.rb b/plugins/redmineup_tags/db/migrate/001_add_tags_and_taggings.rb
deleted file mode 100644
index 478cc9b..0000000
--- a/plugins/redmineup_tags/db/migrate/001_add_tags_and_taggings.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-class AddTagsAndTaggings < ActiveRecord::Migration[4.2]
-  def up
-  end
-
-  def down
-  end
-end
diff --git a/plugins/redmineup_tags/db/migrate/002_create_tags.rb b/plugins/redmineup_tags/db/migrate/002_create_tags.rb
deleted file mode 100644
index 8912b7e..0000000
--- a/plugins/redmineup_tags/db/migrate/002_create_tags.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-class CreateTags < ActiveRecord::Migration[4.2]
-
-  def self.up
-    ActiveRecord::Base.create_taggable_table
-  end
-
-  def self.down
-  end
-end
diff --git a/plugins/redmineup_tags/doc/CHANGELOG b/plugins/redmineup_tags/doc/CHANGELOG
deleted file mode 100755
index 9ec94a3..0000000
--- a/plugins/redmineup_tags/doc/CHANGELOG
+++ /dev/null
@@ -1,97 +0,0 @@
-== Redmine Tags plugin changelog
-
-Redmine Tags plugin - Tags board plugin for redmine
-Copyright (C) 2011-2024 Kirill Bezrukov (RedmineUP)
-http://www.redmineup.com/
-
-== 2024-02-15 v2.0.14
-
-* Dropped Redmine 3 support
-* Fixed insecure XMLHttpRequest 
-* Fixed select2 bug
-
-== 2023-01-27 v2.0.13
-
-* Romanian locale updated (MarianV)
-* Fixed "is not" tags filter condition
-
-== 2022-04-11 v2.0.12
-
-* Fixed broken link
-* Fixed wrong proto error
-* Redmine 5.0 compatibility
-
-== 2021-06-14 v2.0.11
-
-* Fixed global issue list bug
-
-== 2021-06-04 v2.0.10
-
-* Fixed patches typo
-
-== 2021-05-31 v2.0.9
-
-* Added Redmine 4.2 compatibility
-* Changed path to url for autocomplete
-* Updated br locale
-* Updated zh locale
-* Fixed production load error
-* Fixed tags column bug
-* Fixed copy tags bug
-* Fixed global spent time bug
-* Fixed tags count bug
-* Fixed bulk edit issue tags bug
-* Fixed tags link
-
-== 2019-06-14 v2.0.8
-
-* Tags report for issues summary
-
-== 2019-06-14 v2.0.7
-
-* Agile plugin compatibility fixes
-
-== 2019-05-16 v2.0.6
-
-* Added tags to Time entries report
-* Added tags to Agile Versions board
-* Updated german translation (Werner Maier)
-* Fixed Agile plugin compatibility bug
-* Fixed adding tags context menu permissions
-* Fixed bulk edit issue tags form permissions
-
-== 2019-04-08 v2.0.5
-
- * Changed tags filter by condition AND
- * Fixed tags field on issues bulk edit form
-
-== 2018-09-25 v2.0.4
-
-* Fixed bug with Agile board view
-
-== 2018-08-10 v2.0.3
-
-* Fixed issues export to CSV, PDF tags field
-* select2 behaviour fixes
-
-== 2018-03-21 v2.0.2
-
-* Redmine 4 support
-* Adding tags from issue's context menu
-* Added new permissions for Add and Create new tags in a project
-* Suggestion order setting for tags autocomplete (Name, Last created, Most used)
-* Prevent adding commas
-* Fixed issues list tags column formating
-
-== 2017-09-21 v2.0.1
-
-* Fixed issue import error
-
-== 2017-07-24 v2.0.0
-
-* select2 control
-* redmine_crm gem for tags
-* Admin settings link
-* Alphabet sorting view for list
-* Merging tags fixes
-erging tags fixes
diff --git a/plugins/redmineup_tags/doc/COPYING b/plugins/redmineup_tags/doc/COPYING
deleted file mode 100644
index 63e41a4..0000000
--- a/plugins/redmineup_tags/doc/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/plugins/redmineup_tags/doc/LICENSE b/plugins/redmineup_tags/doc/LICENSE
deleted file mode 100644
index e2e50b5..0000000
--- a/plugins/redmineup_tags/doc/LICENSE
+++ /dev/null
@@ -1,26 +0,0 @@
-LICENSING
-
-RedmineUP Licencing
-
-This End User License Agreement is a binding legal agreement between you and RedmineUP. Purchase, installation or use of RedmineUP Extensions provided on redmineup.com signifies that you have read, understood, and agreed to be bound by the terms outlined below.
-
-RedmineUP GPL Licencing
-
-All Redmine Extensions produced by RedmineUP are released under the GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html). Specifically, the Ruby code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript are NOT GPL, and are released under the RedmineUP Proprietary Use License v1.0 (See below) unless specifically authorized by RedmineUP. Elements of the extensions released under this proprietary license may not be redistributed or repackaged for use other than those allowed by the Terms of Service.
-
-RedmineUP Proprietary Use License (v1.0)
-
-The RedmineUP Proprietary Use License covers any images, cascading stylesheets, manuals and JavaScript files in any extensions produced and/or distributed by redmineup.com. These files are copyrighted by redmineup.com (RedmineUP) and cannot be redistributed in any form without prior consent from redmineup.com (RedmineUP)
-
-Usage Terms
-
-You are allowed to use the Extensions on one or many "production" domains, depending on the type of your license
-You are allowed to make any changes to the code, however modified code will not be supported by us.
-
-Modification Of Extensions Produced By RedmineUP.
-
-You are authorized to make any modification(s) to RedmineUP extension Ruby code. However, if you change any Ruby code and it breaks functionality, support may not be available to you.
-
-In accordance with the RedmineUP Proprietary Use License v1.0, you may not release any proprietary files (modified or otherwise) under the GPL license. The terms of this license and the GPL v2 prohibit the removal of the copyright information from any file.
-
-Please contact us if you have any requirements that are not covered by these terms.
\ No newline at end of file
diff --git a/plugins/redmineup_tags/init.rb b/plugins/redmineup_tags/init.rb
deleted file mode 100644
index 8d286bb..0000000
--- a/plugins/redmineup_tags/init.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-requires_redmineup version_or_higher: '1.0.5' rescue raise "\n\033[31mRedmine requires newer redmineup gem version.\nPlease update with 'bundle update redmineup'.\033[0m"
-
-require 'redmine'
-
-TAGS_VERSION_NUMBER = '2.0.14'
-TAGS_VERSION_TYPE = 'Light version'
-
-Redmine::Plugin.register :redmineup_tags do
-  name "Redmine Tags plugin (#{TAGS_VERSION_TYPE})"
-  author 'RedmineUP'
-  description 'Redmine issues tagging support'
-  version TAGS_VERSION_NUMBER
-  url 'https://www.redmineup.com/pages/plugins/tags/'
-  author_url 'mailto:support@redmineup.com'
-
-  requires_redmine version_or_higher: '4.0'
-
-  settings default: { issues_sidebar: 'none',
-                      issues_show_count: 0,
-                      issues_open_only: 0,
-                      issues_sort_by: 'name',
-                      issues_sort_order: 'asc',
-                      tags_suggestion_order: 'name'
-                    }, partial: 'tags/settings'
-
-  menu :admin_menu, :tags, { controller: 'settings', action: 'plugin', id: 'redmineup_tags' }, caption: :tags, html: { class: 'icon' }
-
-  project_module :issue_tracking do
-    permission :create_tags, {}
-    permission :edit_tags, {}
-  end
-end
-
-if Rails.configuration.respond_to?(:autoloader) && Rails.configuration.autoloader == :zeitwerk
-  Rails.autoloaders.each { |loader| loader.ignore(File.dirname(__FILE__) + '/lib') }
-end
-require File.dirname(__FILE__) + '/lib/redmineup_tags'
-
-ActiveSupport.on_load(:action_view) do
-  include TagsHelper
-end
diff --git a/plugins/redmineup_tags/lib/query_tags_column.rb b/plugins/redmineup_tags/lib/query_tags_column.rb
deleted file mode 100644
index 4238c09..0000000
--- a/plugins/redmineup_tags/lib/query_tags_column.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'query'
-
-class QueryTagsColumn < QueryColumn
-  def css_classes; 'tags' end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags.rb b/plugins/redmineup_tags/lib/redmineup_tags.rb
deleted file mode 100644
index 3584d06..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  def self.settings() Setting[:plugin_redmineup_tags].stringify_keys end
-end
-
-REDMINEUP_TAGS_REQUIRED_FILES = [
-  'redmineup_tags/hooks/model_issue_hook',
-  'redmineup_tags/hooks/views_context_menus_hook',
-  'redmineup_tags/hooks/views_issues_hook',
-  'redmineup_tags/hooks/views_layouts_hook',
-  'redmineup_tags/patches/add_helpers_for_issue_tags_patch',
-  'redmineup_tags/patches/auto_completes_controller_patch',
-  'redmineup_tags/patches/issue_patch',
-  'redmineup_tags/patches/issue_query_patch',
-  'redmineup_tags/patches/queries_helper_patch',
-  'redmineup_tags/patches/time_entry_query_patch',
-  'redmineup_tags/patches/time_report_patch',
-  'redmineup_tags/patches/time_entry_patch',
-  'query_tags_column',
-  'redmineup_tags/patches/reports_controller_patch',
-  'redmineup_tags/hooks/views_reports_hook',
-]
-
-if Redmine::Plugin.installed?(:redmine_agile) &&
-  Gem::Version.new(Redmine::Plugin.find(:redmine_agile).version) >= Gem::Version.new('1.4.3') && AGILE_VERSION_TYPE == 'PRO version'
-  REDMINEUP_TAGS_REQUIRED_FILES << 'redmineup_tags/patches/agile_query_patch'
-  REDMINEUP_TAGS_REQUIRED_FILES << 'redmineup_tags/patches/agile_versions_query_patch'
-end
-
-base_url = File.dirname(__FILE__)
-REDMINEUP_TAGS_REQUIRED_FILES.each { |file| require(base_url + '/' + file) }
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/hooks/model_issue_hook.rb b/plugins/redmineup_tags/lib/redmineup_tags/hooks/model_issue_hook.rb
deleted file mode 100644
index b837989..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/hooks/model_issue_hook.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Hooks
-    class ModelIssueHook < Redmine::Hook::ViewListener
-      def controller_issues_edit_before_save(context = {})
-        tags_log context
-      end
-
-      def controller_issues_bulk_edit_before_save(context = {})
-        tags_log context
-      end
-
-      def tags_log(context, create_journal = true)
-        issue = context[:issue]
-        params = context[:params]
-        if params && params[:issue] && !params[:issue][:tag_list].nil?
-          old_tags = Issue.find(issue.id).tag_list.to_s
-          new_tags = issue.tag_list.to_s
-          if create_journal && !(old_tags == new_tags || issue.current_journal.blank?)
-            issue.current_journal.details << JournalDetail.new(property: 'attr',
-                                                               prop_key: 'tag_list',
-                                                               old_value: old_tags,
-                                                               value: new_tags)
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_context_menus_hook.rb b/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_context_menus_hook.rb
deleted file mode 100644
index 3953b88..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_context_menus_hook.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Hooks
-    class ViewsContextMenusHook < Redmine::Hook::ViewListener
-      render_on :view_issues_context_menu_end, partial: 'context_menus/issues_tags'
-    end
-  end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_issues_hook.rb b/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_issues_hook.rb
deleted file mode 100644
index b02ead5..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_issues_hook.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Hooks
-    class ViewsIssuesHook < Redmine::Hook::ViewListener
-      render_on :view_issues_show_details_bottom, partial: 'issues/tags'
-      render_on :view_issues_form_details_bottom, partial: 'issues/tags_form'
-      render_on :view_issues_sidebar_planning_bottom, partial: 'issues/tags_sidebar'
-      render_on :view_issues_bulk_edit_details_bottom, partial: 'issues/tags_form'
-    end
-  end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_layouts_hook.rb b/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_layouts_hook.rb
deleted file mode 100644
index 91c7856..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_layouts_hook.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Hooks
-    class ViewsLayoutsHook < Redmine::Hook::ViewListener
-      render_on :view_layouts_base_html_head, partial: 'tags/additional_assets'
-      render_on :view_layouts_base_body_bottom, partial: 'tags/select2_transformation_rules'
-    end
-  end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_reports_hook.rb b/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_reports_hook.rb
deleted file mode 100644
index 4eada6b..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/hooks/views_reports_hook.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Hooks
-    class ViewsReportsHook < Redmine::Hook::ViewListener
-      render_on :view_reports_issue_report_split_content_right, partial: 'tags_simple'
-    end
-  end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/add_helpers_for_issue_tags_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/add_helpers_for_issue_tags_patch.rb
deleted file mode 100644
index ac60fd2..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/add_helpers_for_issue_tags_patch.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Patches
-    module AddHelpersForIssueTagsPatch
-      def self.included(base) # :nodoc:
-        base.class_eval do
-          helper :tags
-          helper :issues_tags
-        end
-      end
-    end
-  end
-end
-
-[IssuesController, CalendarsController, GanttsController, SettingsController].each do |controller|
-  unless controller.included_modules.include?(RedmineupTags::Patches::AddHelpersForIssueTagsPatch)
-    controller.send(:include, RedmineupTags::Patches::AddHelpersForIssueTagsPatch)
-  end
-end
-
-unless ImportsController.included_modules.include?(RedmineupTags::Patches::AddHelpersForIssueTagsPatch)
-  ImportsController.send(:include, RedmineupTags::Patches::AddHelpersForIssueTagsPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/agile_query_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/agile_query_patch.rb
deleted file mode 100644
index be81dec..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/agile_query_patch.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-if Redmine::Plugin.installed?(:redmine_agile) &&
-   Gem::Version.new(Redmine::Plugin.find(:redmine_agile).version) >= Gem::Version.new('1.4.3')
-
-  module RedmineupTags
-    module Patches
-      module AgileQueryPatch
-        def self.included(base)
-          base.send(:include, InstanceMethods)
-          base.class_eval do
-            alias_method :available_filters_without_redmine_tags, :available_filters
-            alias_method :available_filters, :available_filters_with_redmine_tags
-
-            add_available_column QueryTagsColumn.new(:tags_relations, caption: :tags)
-          end
-        end
-
-        module InstanceMethods
-          def sql_for_issue_tags_field(_field, operator, value)
-            case operator
-            when '=', '!'
-              issues = Issue.tagged_with(value.clone)
-            when '!*'
-              issues = Issue.joins(:tags).uniq
-            else
-              issues = Issue.tagged_with(Redmineup::Tag.all.map(&:to_s), any: true)
-            end
-
-            compare   = operator.include?('!') ? 'NOT IN' : 'IN'
-            ids_list  = issues.collect(&:id).push(0).join(',')
-            "( #{Issue.table_name}.id #{compare} (#{ids_list}) ) "
-          end
-
-          def available_filters_with_redmine_tags
-            available_filters_without_redmine_tags
-            selected_tags = []
-            if filters['issue_tags'].present?
-              selected_tags = Issue.all_tags(project: project, open_only: RedmineupTags.settings['issues_open_only'].to_i == 1).
-                              where(name: filters['issue_tags'][:values]).map { |c| [c.name, c.name] }
-            end
-            add_available_filter('issue_tags', type: :issue_tags, name: l(:tags), values: selected_tags)
-          end
-        end
-      end
-    end
-  end
-
-  unless AgileQuery.included_modules.include?(RedmineupTags::Patches::AgileQueryPatch)
-    AgileQuery.send(:include, RedmineupTags::Patches::AgileQueryPatch)
-  end
-
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/agile_versions_query_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/agile_versions_query_patch.rb
deleted file mode 100644
index 8c99912..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/agile_versions_query_patch.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-if Redmine::Plugin.installed?(:redmine_agile) &&
-   Gem::Version.new(Redmine::Plugin.find(:redmine_agile).version) >= Gem::Version.new('1.4.3') &&
-   AGILE_VERSION_TYPE == 'PRO version'
-
-  require_dependency 'query'
-
-  module RedmineupTags
-    module Patches
-      module AgileVersionsQueryPatch
-        def self.included(base)
-          base.send(:include, InstanceMethods)
-          base.class_eval do
-            add_available_column QueryTagsColumn.new(:tags_relations, caption: :tags)
-          end
-        end
-
-        module InstanceMethods
-
-        end
-      end
-    end
-  end
-
-  unless AgileVersionsQuery.included_modules.include?(RedmineupTags::Patches::AgileVersionsQueryPatch)
-    AgileVersionsQuery.send(:include, RedmineupTags::Patches::AgileVersionsQueryPatch)
-  end
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/auto_completes_controller_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/auto_completes_controller_patch.rb
deleted file mode 100644
index abc327c..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/auto_completes_controller_patch.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'auto_completes_controller'
-
-module RedmineupTags
-  module Patches
-    module AutoCompletesControllerPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-        end
-      end
-
-      module InstanceMethods
-        SORTING_FIELDS = { 'name' => 'name',
-                           'last_created' => 'created_at',
-                           'most_used' => 'count' }
-
-        def redmine_tags
-          suggestion_order = RedmineupTags.settings['tags_suggestion_order'] || 'name'
-          options = {
-            name_like: (params[:q] || params[:term]).to_s.strip,
-            sort_by: SORTING_FIELDS[suggestion_order],
-            order: (suggestion_order == 'name' ? 'ASC' : 'DESC')
-          }
-          @redmine_tags = Issue.all_tags(options).limit(params[:limit] || 10)
-          render json: format_redmine_tags_json(@redmine_tags)
-        end
-
-        private
-
-        def format_redmine_tags_json(redmine_tags)
-          redmine_tags.map do |redmine_tag|
-            {
-              id: redmine_tag.name,
-              text: redmine_tag.name
-            }
-          end
-        end
-      end
-    end
-  end
-end
-
-unless AutoCompletesController.included_modules.include?(RedmineupTags::Patches::AutoCompletesControllerPatch)
-  AutoCompletesController.send(:include, RedmineupTags::Patches::AutoCompletesControllerPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/issue_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/issue_patch.rb
deleted file mode 100644
index 502f41b..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/issue_patch.rb
+++ /dev/null
@@ -1,157 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'issue'
-
-module RedmineupTags
-  module Patches
-    module IssuePatch
-
-      def self.included(base)
-        base.extend(ClassMethods)
-
-        base.class_eval do
-          include InstanceMethods
-          up_acts_as_taggable
-
-          alias_method :safe_attributes_without_safe_tags=, :safe_attributes=
-          alias_method :safe_attributes=, :safe_attributes_with_safe_tags=
-
-          class << self
-            alias_method :available_tags_without_redmine_tags, :available_tags
-            alias_method :available_tags, :available_tags_with_redmine_tags
-          end
-
-          alias_method :copy_from_without_redmine_tags, :copy_from
-          alias_method :copy_from, :copy_from_with_redmine_tags
-
-          scope :on_project, lambda { |project|
-            project = project.id if project.is_a? Project
-            { conditions: ["#{Project.table_name}.id=?", project] }
-          }
-        end
-      end
-
-      # Class used to represent the tags relations of an issue
-      class TagsRelations < IssueRelation::Relations
-        def to_s(*args)
-          map(&:name).join(', ')
-        end
-      end
-
-      module ClassMethods
-        def available_tags_with_redmine_tags(options = {})
-          scope = available_tags_without_redmine_tags(options)
-          return scope unless options[:open_only]
-          scope.joins("JOIN #{IssueStatus.table_name} ON #{IssueStatus.table_name}.id = #{table_name}.status_id").
-                where("#{IssueStatus.table_name}.is_closed = ?", false)
-        end
-
-        def all_tags(options = {})
-          scope = Redmineup::Tag.where({})
-          scope = scope.where("LOWER(#{Redmineup::Tag.table_name}.name) LIKE LOWER(?)", "%#{options[:name_like]}%") if options[:name_like]
-          join = []
-          join << "JOIN #{Redmineup::Tagging.table_name} ON #{Redmineup::Tagging.table_name}.tag_id = #{Redmineup::Tag.table_name}.id "
-          join << "JOIN #{Issue.table_name} ON #{Issue.table_name}.id = #{Redmineup::Tagging.table_name}.taggable_id
-            AND #{Redmineup::Tagging.table_name}.taggable_type = '#{Issue.name}' "
-          scope = scope.joins(join.join(' '))
-
-          columns = [
-            "#{Redmineup::Tag.table_name}.*",
-            "COUNT(DISTINCT #{Redmineup::Tagging.table_name}.taggable_id) AS count"
-          ]
-          if options[:sort_by] == 'created_at'
-            columns << "MIN(#{Redmineup::Tagging.table_name}.created_at) AS created_at"
-          end
-          scope = scope.select(columns.join(', '))
-
-          scope = scope.group("#{Redmineup::Tag.table_name}.id, #{Redmineup::Tag.table_name}.name ")
-          scope = scope.having('COUNT(*) > 0')
-
-          column = options[:sort_by] || "#{Redmineup::Tag.table_name}.name"
-          order = options[:order] || 'ASC'
-          scope.order("#{column} #{order}")
-        end
-
-        def project_tags(project)
-          all_tags.where("#{Issue.table_name}.project_id = #{project.id}")
-        end
-
-        def allowed_tags?(tags)
-          allowed_tags = all_tags.map(&:name)
-          tags.all? { |tag| allowed_tags.include?(tag) }
-        end
-
-        def by_tags(project, with_subprojects=false)
-          count_and_group_by_with_redmine_tags(project: project, association: :tags, with_subprojects: with_subprojects)
-        end
-
-        def count_and_group_by_with_redmine_tags(options)
-          return count_and_group_by_without_redmine_tags(options) unless options[:association] == :tags
-
-          assoc = reflect_on_association(options[:association])
-          select_field = assoc.foreign_key
-
-          Issue.
-            visible(User.current, :project => options[:project], :with_subprojects => options[:with_subprojects]).
-            joins(:status, assoc.name).
-            group(:status_id, :is_closed, select_field).
-            count.
-            map do |columns, total|
-              status_id, is_closed, field_value = columns
-              is_closed = ['t', 'true', '1'].include?(is_closed.to_s)
-              {
-                "status_id" => status_id.to_s,
-                "closed" => is_closed,
-                select_field => field_value.to_s,
-                "total" => total.to_s
-              }
-            end
-        end
-      end
-
-      module InstanceMethods
-        def safe_attributes_with_safe_tags=(attrs, user = User.current)
-          self.send(:safe_attributes_without_safe_tags=, attrs, user)
-          if attrs && attrs[:tag_list] && user.allowed_to?(:edit_tags, project)
-            tags = attrs[:tag_list].reject(&:empty?)
-            if user.allowed_to?(:create_tags, project) || Issue.allowed_tags?(tags)
-              self.tag_list = tags
-            end
-          end
-        end
-
-        def tags_relations
-          TagsRelations.new(self, tags.to_a)
-        end
-
-        def copy_from_with_redmine_tags(arg, options={})
-          original_issue = arg.is_a?(Issue) ? arg : Issue.visible.find(arg)
-          copied_issue = copy_from_without_redmine_tags(original_issue, options)
-          copied_issue.tags = original_issue.tags
-          copied_issue
-        end
-      end
-    end
-  end
-end
-
-unless Issue.included_modules.include?(RedmineupTags::Patches::IssuePatch)
-  Issue.send(:include, RedmineupTags::Patches::IssuePatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/issue_query_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/issue_query_patch.rb
deleted file mode 100644
index 01b2c16..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/issue_query_patch.rb
+++ /dev/null
@@ -1,93 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Patches
-    module IssueQueryPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-          alias_method :statement_without_redmine_tags, :statement
-          alias_method :statement, :statement_with_redmine_tags
-
-          alias_method :available_filters_without_redmine_tags, :available_filters
-          alias_method :available_filters, :available_filters_with_redmine_tags
-
-          alias_method :build_from_params_without_redmine_tags, :build_from_params
-          alias_method :build_from_params, :build_from_params_with_redmine_tags
-
-          add_available_column QueryTagsColumn.new(:tags_relations, caption: :tags)
-        end
-      end
-
-      module InstanceMethods
-        def statement_with_redmine_tags
-          filter  = filters.delete 'issue_tags'
-          clauses = statement_without_redmine_tags || ''
-
-          if filter
-            filters['issue_tags'] = filter
-
-            issues = Issue.where({})
-
-            op = operator_for('issue_tags')
-            case op
-            when '=', '!'
-              issues = issues.tagged_with(values_for('issue_tags').clone, any: true)
-            when '!*'
-              issues = issues.joins(:tags).uniq
-            else
-              issues = issues.tagged_with(Redmineup::Tag.all.map(&:to_s), any: true)
-            end
-
-            compare   = op.include?('!') ? 'NOT IN' : 'IN'
-            ids_list  = issues.collect(&:id).push(0).join(',')
-
-            clauses << ' AND ' unless clauses.empty?
-            clauses << "( #{Issue.table_name}.id #{compare} (#{ids_list}) ) "
-          end
-
-          clauses
-        end
-
-        def available_filters_with_redmine_tags
-          available_filters_without_redmine_tags
-          selected_tags = []
-          if filters['issue_tags'].present?
-            selected_tags = Issue.all_tags(project: project, open_only: RedmineupTags.settings['issues_open_only'].to_i == 1).
-                            where(name: filters['issue_tags'][:values]).map { |c| [c.name, c.name] }
-          end
-          add_available_filter('issue_tags', type: :issue_tags, name: l(:tags), values: selected_tags)
-        end
-
-        def build_from_params_with_redmine_tags(params, defaults = {})
-          build_from_params_without_redmine_tags(params, defaults)
-
-          add_filter('issue_tags', '=', [Redmineup::Tag.find_by(id: params[:tag_id]).try(:name)]) if params[:tag_id].present?
-        end
-      end
-    end
-  end
-end
-
-if (ActiveRecord::Base.connection.tables.include?('queries') rescue false) &&
-   IssueQuery.included_modules.exclude?(RedmineupTags::Patches::IssueQueryPatch)
-  IssueQuery.send(:include, RedmineupTags::Patches::IssueQueryPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/queries_helper_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/queries_helper_patch.rb
deleted file mode 100644
index df8685c..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/queries_helper_patch.rb
+++ /dev/null
@@ -1,53 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'queries_helper'
-require_dependency 'issue_queries_query' if ActiveSupport::Dependencies::search_for_file('issue_queries_helper')
-
-module RedmineupTags
-  module Patches
-    module QueriesHelperPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-          alias_method :column_value_without_tags, :column_value
-          alias_method :column_value, :column_value_with_tags
-        end
-      end
-
-      module InstanceMethods
-        include TagsHelper
-
-        def column_value_with_tags(column, list_object, value)
-          if column.name == :tags_relations && list_object.is_a?(Issue)
-            [value].flatten.collect{ |t| render_issue_tag_link(t) }.join(RedmineupTags.settings['issues_use_colors'].to_i > 0 ? ' ' : ', ').html_safe
-          else
-            column_value_without_tags(column, list_object, value)
-          end
-        end
-      end
-    end
-  end
-end
-
-base = ActiveSupport::Dependencies::search_for_file('issue_queries_helper') ? IssueQueriesHelper : QueriesHelper
-unless base.included_modules.include?(RedmineupTags::Patches::QueriesHelperPatch)
-  base.send(:include, RedmineupTags::Patches::QueriesHelperPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/reports_controller_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/reports_controller_patch.rb
deleted file mode 100644
index 775040f..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/reports_controller_patch.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Patches
-    module ReportsControllerPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-          alias_method :issue_report_without_redmine_tags, :issue_report
-          alias_method :issue_report, :issue_report_with_redmine_tags
-
-          alias_method :issue_report_details_without_redmine_tags, :issue_report_details
-          alias_method :issue_report_details, :issue_report_details_with_redmine_tags
-        end
-      end
-
-      module InstanceMethods
-
-        def issue_report_with_redmine_tags
-          with_subprojects = Setting.display_subprojects_issues?
-
-          @tags = Issue.project_tags(@project)
-          @issues_by_tags = Issue.by_tags(@project, with_subprojects)
-
-          issue_report_without_redmine_tags
-        end
-
-        def issue_report_details_with_redmine_tags
-          with_subprojects = Setting.display_subprojects_issues?
-
-          if params[:detail] == 'tag'
-            @field = "tag_id"
-            @rows = Issue.project_tags(@project)
-            @data = Issue.by_tags(@project, with_subprojects)
-            @report_title = l(:field_tags)
-          else
-            issue_report_details_without_redmine_tags
-          end
-        end
-      end
-    end
-  end
-end
-
-unless ReportsController.included_modules.include?(RedmineupTags::Patches::ReportsControllerPatch)
-  ReportsController.send(:include, RedmineupTags::Patches::ReportsControllerPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_patch.rb
deleted file mode 100644
index 1e1a859..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_patch.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Patches
-    module TimeEntryPatch
-
-      def self.included(base)
-        base.class_eval do
-          include InstanceMethods
-        end
-      end
-
-      # Class used to represent the tags relations of an issue
-      class TagsRelations < IssueRelation::Relations
-        def to_s(*args)
-          map(&:name).join(', ')
-        end
-      end
-
-      module InstanceMethods
-        def tags_relations
-          TagsRelations.new(self, issue ? issue.tags.to_a : [])
-        end
-      end
-    end
-  end
-end
-
-unless TimeEntry.included_modules.include?(RedmineupTags::Patches::TimeEntryPatch)
-  TimeEntry.send(:include, RedmineupTags::Patches::TimeEntryPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_query_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_query_patch.rb
deleted file mode 100644
index 3808165..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/time_entry_query_patch.rb
+++ /dev/null
@@ -1,84 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-module RedmineupTags
-  module Patches
-    module TimeEntryQueryPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-
-        base.class_eval do
-          alias_method :statement_without_redmine_tags, :statement
-          alias_method :statement, :statement_with_redmine_tags
-
-          alias_method :available_filters_without_redmine_tags, :available_filters
-          alias_method :available_filters, :available_filters_with_redmine_tags
-
-          add_available_column QueryTagsColumn.new(:tags_relations, caption: :tags)
-        end
-      end
-
-      module InstanceMethods
-        def statement_with_redmine_tags
-          filter  = filters.delete 'issue_tags'
-          clauses = statement_without_redmine_tags || ''
-
-          if filter
-            filters['issue_tags'] = filter
-
-            issues = Issue.where({})
-
-            op = operator_for('issue_tags')
-            case op
-            when '=', '!'
-              issues = issues.tagged_with(values_for('issue_tags').clone, match_all: true)
-            when '!*'
-              issues = issues.joins(:tags).uniq
-            else
-              issues = issues.tagged_with(Redmineup::Tag.all.map(&:to_s), any: true)
-            end
-
-            compare   = op.include?('!') ? 'NOT IN' : 'IN'
-            ids_list  = issues.collect(&:id).push(0).join(',')
-
-            clauses << ' AND ' unless clauses.empty?
-            clauses << "( #{Issue.table_name}.id #{compare} (#{ids_list}) ) "
-          end
-
-          clauses
-        end
-
-        def available_filters_with_redmine_tags
-          available_filters_without_redmine_tags
-          selected_tags = []
-          if filters['issue_tags'].present?
-            selected_tags = Issue.all_tags(project: project, open_only: RedmineupTags.settings['issues_open_only'].to_i == 1).
-                            where(name: filters['issue_tags'][:values]).map { |c| [c.name, c.name] }
-          end
-          add_available_filter('issue_tags', type: :issue_tags, name: l(:tags), values: selected_tags)
-        end
-      end
-    end
-  end
-end
-
-if (ActiveRecord::Base.connection.tables.include?('queries') rescue false) &&
-   TimeEntryQuery.included_modules.exclude?(RedmineupTags::Patches::TimeEntryQueryPatch)
-  TimeEntryQuery.send(:include, RedmineupTags::Patches::TimeEntryQueryPatch)
-end
diff --git a/plugins/redmineup_tags/lib/redmineup_tags/patches/time_report_patch.rb b/plugins/redmineup_tags/lib/redmineup_tags/patches/time_report_patch.rb
deleted file mode 100644
index a83a752..0000000
--- a/plugins/redmineup_tags/lib/redmineup_tags/patches/time_report_patch.rb
+++ /dev/null
@@ -1,57 +0,0 @@
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require_dependency 'query'
-
-module RedmineupTags
-  module Patches
-    module TimeReportPatch
-      def self.included(base)
-        base.send(:include, InstanceMethods)
-        base.class_eval do
-          alias_method :load_available_criteria_without_redmine_tags, :load_available_criteria
-          alias_method :load_available_criteria, :load_available_criteria_with_redmine_tags
-        end
-      end
-
-      module InstanceMethods
-
-        def load_available_criteria_with_redmine_tags
-          return @load_available_criteria_with_redmine_tags if @load_available_criteria_with_redmine_tags
-          @load_available_criteria_with_redmine_tags = load_available_criteria_without_redmine_tags
-          @load_available_criteria_with_redmine_tags['tags'] = { sql: "#{Redmineup::Tag.table_name}.id",
-                                                                 klass: Redmineup::Tag,
-                                                                 joins: redmine_tags_join,
-                                                                 label: :tags }
-          @load_available_criteria_with_redmine_tags
-        end
-
-        private
-
-        def redmine_tags_join
-          { issue: :tags }
-        end
-      end
-    end
-  end
-end
-
-unless Redmine::Helpers::TimeReport.included_modules.include?(RedmineupTags::Patches::TimeReportPatch)
-  Redmine::Helpers::TimeReport.send(:include, RedmineupTags::Patches::TimeReportPatch)
-end
diff --git a/plugins/redmineup_tags/test/fixtures/taggings.yml b/plugins/redmineup_tags/test/fixtures/taggings.yml
deleted file mode 100644
index 28c2b16..0000000
--- a/plugins/redmineup_tags/test/fixtures/taggings.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-# project_1:
-#   issue_1:
-#     tags: [second, third]
-#   issue_2:
-#     tags: [second, third]
-#   issue_8:
-#     tags: [first, second]
-#
-# project_3:
-#   issue_5:
-#     tags: [second, third]
-
----
-# Relation with closed issue from project with id 1
-tagging_1:
-  tag_id: 1
-  taggable_id: 8
-  taggable_type: Issue
-  created_at: "2017-12-04 00:0:00"
-
-# Relation with opened issue from project with id 1
-tagging_2:
-  tag_id: 2
-  taggable_id: 1
-  taggable_type: Issue
-  created_at: "2017-12-04 01:00:00"
-
-# Relation with opened issue from project with id 1
-tagging_3:
-  tag_id: 2
-  taggable_id: 2
-  taggable_type: Issue
-  created_at: "2017-12-04 02:00:00"
-
-# Relation with closed issue from project with id 1
-tagging_4:
-  tag_id: 2
-  taggable_id: 8
-  taggable_type: Issue
-  created_at: "2017-12-04 03:00:00"
-
-# Relation with opened issue from project with id 3
-tagging_5:
-  tag_id: 2
-  taggable_id: 5
-  taggable_type: Issue
-  created_at: "2017-12-04 04:00:00"
-
-# Relation with opened issue from project with id 1
-tagging_6:
-  tag_id: 3
-  taggable_id: 1
-  taggable_type: Issue
-  created_at: "2017-12-04 05:00:00"
-
-# Relation with opened issue from project with id 1
-tagging_7:
-  tag_id: 3
-  taggable_id: 2
-  taggable_type: Issue
-  created_at: "2017-12-04 06:00:00"
-
-# Relation with closed issue from project with id 3
-tagging_8:
-  tag_id: 3
-  taggable_id: 5
-  taggable_type: Issue
-  created_at: "2017-12-04 07:00:00"
\ No newline at end of file
diff --git a/plugins/redmineup_tags/test/fixtures/tags.yml b/plugins/redmineup_tags/test/fixtures/tags.yml
deleted file mode 100644
index 7e4e6c1..0000000
--- a/plugins/redmineup_tags/test/fixtures/tags.yml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-tag_1:
-  id: 1
-  name: first
-
-tag_2:
-  id: 2
-  name: second
-
-tag_3:
-  id: 3
-  name: third
diff --git a/plugins/redmineup_tags/test/functional/agile_boards_controller_test.rb b/plugins/redmineup_tags/test/functional/agile_boards_controller_test.rb
deleted file mode 100644
index 671967e..0000000
--- a/plugins/redmineup_tags/test/functional/agile_boards_controller_test.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AgileBoardsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users
-
-  def setup
-    @request.session[:user_id] = 1
-  end
-
-  def test_get_index_with_filters
-    return unless Redmine::Plugin.installed?(:redmine_agile) && AGILE_VERSION_TYPE == 'PRO version'
-
-    compatible_request :get, :index
-    assert_response :success
-    assert response.body.match /issue_tags/
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/agile_versions_controller_test.rb b/plugins/redmineup_tags/test/functional/agile_versions_controller_test.rb
deleted file mode 100644
index 40887a1..0000000
--- a/plugins/redmineup_tags/test/functional/agile_versions_controller_test.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AgileVersionsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users
-
-  def setup
-    @project_1 = Project.find(1)
-    ['agile', 'agile_backlog'].each do |p_module|
-      EnabledModule.create(project: @project_1, name: p_module)
-    end
-
-    @request.session[:user_id] = 1
-  end
-
-  def test_get_index_with_filters
-    return unless Redmine::Plugin.installed?(:redmine_agile) && AGILE_VERSION_TYPE == 'PRO version'
-
-    compatible_request :get, :index, project_id: @project_1.identifier
-    assert_response :success
-    assert response.body.match /issue_tags/
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/auto_completes_controller_test.rb b/plugins/redmineup_tags/test/functional/auto_completes_controller_test.rb
deleted file mode 100644
index 4535455..0000000
--- a/plugins/redmineup_tags/test/functional/auto_completes_controller_test.rb
+++ /dev/null
@@ -1,108 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class AutoCompletesControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers
-
-  def setup
-    @tag = Redmineup::Tag.create(name: 'Test_tag')
-    @request.session[:user_id] = 1
-  end
-
-  def test_redmine_tags_should_not_be_case_sensitive
-    issue = Issue.find(1)
-    issue.tags << @tag
-    compatible_request :get, :redmine_tags, project_id: 'ecookbook', q: 'te'
-    assert_response :success
-    redmine_tags = ActiveSupport::JSON.decode(response.body).map { |item| item['id'] }
-    assert_not_nil redmine_tags
-    assert_equal [@tag.name], redmine_tags
-  end
-
-  def test_contacts_should_return_json
-    issue = Issue.find(1)
-    issue.tags << @tag
-    compatible_request :get, :redmine_tags, project_id: 'ecookbook', q: 'te'
-    assert_response :success
-    json = ActiveSupport::JSON.decode(response.body)
-    assert_kind_of Array, json
-    parsed_tag = json.last
-    assert_kind_of Hash, parsed_tag
-    assert_equal @tag.name, parsed_tag['id']
-    assert_equal @tag.name, parsed_tag['text']
-  end
-
-  def test_suggestion_order_default
-    with_settings plugin_redmineup_tags: Setting.available_settings['plugin_redmineup_tags']['default'] do
-      compatible_request :get, :redmine_tags, project_id: 'ecookbook'
-    end
-    assert_response :success
-    tags = ActiveSupport::JSON.decode(response.body).map { |item| item['id'] }
-    assert_equal %w[first second third], tags
-  end
-
-  def test_suggestion_order_name
-    with_settings plugin_redmineup_tags: { tags_suggestion_order: 'name' } do
-      compatible_request :get, :redmine_tags, project_id: 'ecookbook'
-    end
-    assert_response :success
-    tags = ActiveSupport::JSON.decode(response.body).map { |item| item['id'] }
-    assert_equal %w[first second third], tags
-  end
-
-  def test_suggestion_order_most_used
-    with_settings plugin_redmineup_tags: { tags_suggestion_order: 'most_used' } do
-      compatible_request :get, :redmine_tags, project_id: 'ecookbook'
-    end
-    assert_response :success
-    tags = ActiveSupport::JSON.decode(response.body).map { |item| item['id'] }
-    assert_equal %w[second third first], tags
-  end
-
-  def test_suggestion_order_last_created
-    with_settings plugin_redmineup_tags: { tags_suggestion_order: 'last_created' } do
-      compatible_request :get, :redmine_tags, project_id: 'ecookbook'
-    end
-    assert_response :success
-    tags = ActiveSupport::JSON.decode(response.body).map { |item| item['id'] }
-    assert_equal %w[third second first], tags
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/issue_tags_controller_test.rb b/plugins/redmineup_tags/test/functional/issue_tags_controller_test.rb
deleted file mode 100644
index 556a5ff..0000000
--- a/plugins/redmineup_tags/test/functional/issue_tags_controller_test.rb
+++ /dev/null
@@ -1,216 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class IssueTagsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers
-
-  def setup
-    @request.env['HTTP_REFERER'] = '/update_issue_tags'
-    @request.session[:user_id] = 2
-    @project_1 = projects(:projects_001)
-    @issue_1 = issues(:issues_001)
-    @issue_2 = issues(:issues_002)
-    @issue_8 = issues(:issues_008)
-    @issues = [@issue_1, @issue_2, @issue_8]
-    @ids = [1, 2, 8]
-    @most_used_tags = %w[second third first]
-    @role = roles(:roles_001) # Manager role
-    @role.add_permission! :edit_tags
-  end
-
-  def test_should_get_edit_when_one_issue_chose
-    compatible_xhr_request :get, :edit, ids: [1]
-    assert_response :success
-    assert_match 'text/javascript', response.content_type
-
-    html_form = response.body[/<form.+form>/].delete('\\')
-
-    assert_select_in html_form, '.most_used_tags', text: /.+second.+third.+first.+/, count: 1 do
-      assert_select '.most_used_tag', 3
-      @most_used_tags.each { |tag| assert_select '.most_used_tag', text: tag, count: 1 }
-    end
-  end
-
-  def test_should_get_edit_when_several_issues_chose
-    compatible_xhr_request :get, :edit, ids: @ids
-    assert_response :success
-    assert_match 'text/javascript', response.content_type
-
-    html_form = response.body[/<form.+form>/].delete('\\')
-
-    assert_select_in html_form, '.most_used_tags', text: /.+second.+third.+first.+/, count: 1 do
-      assert_select '.most_used_tag', 3
-      @most_used_tags.each { |tag| assert_select '.most_used_tag', text: tag, count: 1 }
-    end
-  end
-
-  def test_should_get_not_found_when_no_ids
-    compatible_xhr_request :get, :edit, ids: []
-    assert_response :missing
-    compatible_request :post, :update, ids: [], issue: { tag_list: [] }
-    assert_response :missing
-  end
-
-  def test_should_change_issue_tags_empty_tags
-    compatible_request :post, :update, ids: [1], issue: { tag_list: ['', '', ''] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal [], @issue_1.tag_list
-  end
-
-  def test_should_change_issue_tags_no_tags
-    compatible_request :post, :update, ids: [1], issue: { tag_list: [] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal [], @issue_1.tag_list
-  end
-
-  def test_should_change_issue_tags_one_tag
-    compatible_request :post, :update, ids: [1], issue: { tag_list: %w[first] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal %w[first], @issue_1.tag_list
-  end
-
-  def test_should_change_issue_tags_several_tags
-    compatible_request :post, :update, ids: [1], issue: { tag_list: %w[first second third] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal %w[first second third], @issue_1.tag_list.sort
-  end
-
-  def test_should_bulk_change_issue_tags_no_tags
-    compatible_request :post, :update, ids: @ids, issue: { tag_list: [] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    @issues.each { |issue| assert_equal [], issue.tag_list }
-  end
-
-  def test_should_bulk_change_issue_tags_one_tag
-    compatible_request :post, :update, ids: @ids, issue: { tag_list: %w[first] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-
-    assert_equal %w[first second third], @issue_1.tag_list.sort
-    assert_equal %w[first second third], @issue_2.tag_list.sort
-    assert_equal %w[first second], @issue_8.tag_list.sort
-  end
-
-  def test_should_bulk_change_issue_tags_several_tags
-    compatible_request :post, :update, ids: @ids, issue: { tag_list: %w[first second third] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    @issues.each { |issue| assert_equal %w[first second third], issue.tag_list.sort }
-  end
-
-  def test_edit_tags_permission
-    tag = 'first'
-    assert_not_equal Issue.find(1).tag_list, [tag]
-    assert Issue.all_tags.map(&:name).include?(tag)
-    compatible_request :post, :update, ids: [1], issue: { tag_list: [tag] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal Issue.find(1).tag_list, [tag]
-
-    @role.remove_permission! :edit_tags
-    tag2 = 'second'
-
-    assert Issue.all_tags.map(&:name).include?(tag2)
-    compatible_request :post, :update, ids: [1], issue: { tag_list: [tag2] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_failed_to_add_tags), flash[:error]
-    assert_equal Issue.find(1).tag_list, [tag]
-  end
-
-  def test_bulk_edit_tags_permission
-    tag = 'first'
-    assert Issue.all_tags.map(&:name).include?(tag)
-    compatible_request :post, :update, ids: [1, 8], issue: { tag_list: [tag] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal Issue.find(1).tag_list.sort, %w[first second third]
-    assert_equal Issue.find(8).tag_list.sort, %w[first second]
-
-    @role.remove_permission! :edit_tags
-    tag2 = 'second'
-
-    assert Issue.all_tags.map(&:name).include?(tag2)
-    compatible_request :post, :update, ids: [1, 8], issue: { tag_list: [tag2] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_failed_to_add_tags), flash[:error]
-    assert_equal Issue.find(1).tag_list.sort, %w[first second third]
-    assert_equal Issue.find(8).tag_list.sort, %w[first second]
-  end
-
-  def test_create_tags_permission
-    @role.add_permission! :create_tags
-    new_tag = 'enable_create_tags_permission'
-
-    assert_not_equal Issue.find(1).tag_list, [new_tag]
-    assert !Issue.all_tags.map(&:name).include?(new_tag)
-    compatible_request :post, :update, ids: [1], issue: { tag_list: [new_tag] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_tags_added), flash[:notice]
-    assert_equal Issue.find(1).tag_list, [new_tag]
-
-    @role.remove_permission! :create_tags
-    new_tag2 = 'disable_create_tags_permission'
-
-    assert !Issue.all_tags.map(&:name).include?(new_tag2)
-    compatible_request :post, :update, ids: [1], issue: { tag_list: [new_tag2] }
-    assert_response :redirect
-    assert_redirected_to action: 'update'
-    assert_equal I18n.t(:notice_failed_to_add_tags), flash[:error]
-    assert_equal Issue.find(1).tag_list, [new_tag]
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/issues_controller_test.rb b/plugins/redmineup_tags/test/functional/issues_controller_test.rb
deleted file mode 100644
index 547a107..0000000
--- a/plugins/redmineup_tags/test/functional/issues_controller_test.rb
+++ /dev/null
@@ -1,331 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class IssuesControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers
-
-  def setup
-    @tag = Redmineup::Tag.create(name: 'test_tag')
-    @last_tag = Redmineup::Tag.create(name: 'last_tag')
-    @request.session[:user_id] = 1
-  end
-
-  def test_get_index_with_tags
-    issue = Issue.find(2)
-    issue.tags << @tag
-    compatible_request(
-      :get,
-      :index,
-      f: ['status_id', 'issue_tags', ''],
-      op: { status_id: 'o', issue_tags: '=' },
-      v: { issue_tags: ['test_tag'] },
-      c: ['status', 'priority', 'subject', 'tags_relations'],
-      project_id: 'ecookbook'
-    )
-    assert_response :success
-    assert_select 'table.list.issues tr.issue', 1
-    assert_select 'table.list.issues tr.issue td.subject', issue.subject
-    assert_select 'table.list.issues tr.issue td.tags a', 'test_tag'
-  ensure
-    issue.tags = []
-  end
-
-  def test_get_index_without_selected_tags
-    issue1, issue2 = Issue.find(1), Issue.find(2)
-    issue1.tags << @tag
-    issue2.tags << @last_tag
-    compatible_request(
-      :get,
-      :index,
-      f: ['issue_tags'],
-      op: { issue_tags: '!' },
-      v: { issue_tags: ['test_tag', 'last_tag'] },
-      c: ['status', 'priority', 'subject', 'tags_relations']
-    )
-    assert_response :success
-    assert_select 'table.list.issues tr.issue', (Issue.count - 2)
-    assert_select 'table.list.issues tr.issue td.subject', text: issue2.subject, count: 0
-    assert_select 'table.list.issues tr.issue td.tags a', text: 'test_tag', count: 0
-  ensure
-    issue1.tags, issue2.tags = [], []
-  end
-
-  def test_get_index_with_sidebar_tags_in_list_by_count
-    issue1 = Issue.find(1)
-    issue1.tags << @tag
-    issue2 = Issue.find(2)
-    issue2.tags << @tag
-    issue2.tags << @last_tag
-    RedmineupTags.stubs(:settings).returns('issues_sidebar' => 'list',
-                                           'issues_show_count' => '1',
-                                           'issues_sort_by' => 'count',
-                                           'issues_sort_order' => 'desc')
-
-    compatible_request :get, :index, project_id: 'ecookbook'
-    assert_response :success
-    assert_select '.tag-label', 'test_tag(2)'
-  ensure
-    issue1.tags = []
-    issue2.tags = []
-    RedmineupTags.unstub(:settings)
-  end
-
-  def test_get_index_with_sidebar_tags_in_cloud_by_count
-    issue1 = Issue.find(1)
-    issue1.tags << @last_tag
-
-    issue2 = Issue.find(2)
-    issue2.tags << @tag
-    issue2.tags << @last_tag
-
-    RedmineupTags.stubs(:settings).returns('issues_sidebar' => 'cloud',
-                                           'issues_show_count' => '1',
-                                           'issues_sort_by' => 'count',
-                                           'issues_sort_order' => 'desc')
-    compatible_request :get, :index, project_id: 'ecookbook'
-    assert_response :success
-    assert_select '.tag-label', 'last_tag(2)'
-  ensure
-    issue1.tags = []
-    issue2.tags = []
-    RedmineupTags.unstub(:settings)
-  end
-
-  def test_should_not_update_without_tag_list
-    tags = %w[second third]
-    assert_equal tags, Issue.find(1).tag_list.sort
-    compatible_request :post, :update, id: 1, issue: { project_id: 1 }
-    assert_response :redirect
-    assert_equal tags, Issue.find(1).tag_list.sort
-  end
-
-  def test_should_update_with_empty_string_tags
-    assert_equal %w[second third], Issue.find(1).tag_list.sort
-    compatible_request :post, :update, id: 1, issue: { project_id: 1, tag_list: ['', ''] }
-    assert_response :redirect
-    assert_equal [], Issue.find(1).tag_list
-  end
-
-  def test_should_update_with_new_tags
-    assert_equal %w[second third], Issue.find(1).tag_list.sort
-    compatible_request :post, :update, id: 1, issue: { project_id: 1, tag_list: %w[new_tag1 new_tag2] }
-    assert_response :redirect
-    assert_equal %w[new_tag1 new_tag2], Issue.find(1).tag_list.sort
-  end
-
-  def test_should_update_issue_and_tags
-    assert_equal %w[second third], Issue.find(1).tag_list.sort
-    compatible_request :post, :update, id: 1, issue: {
-      project_id: 1,
-      description: 'Test should update issue and tags',
-      tag_list: %w[new_tag1 new_tag2]
-    }
-    assert_response :redirect
-    issue = Issue.find(1)
-    assert_equal 'Test should update issue and tags', issue.description
-    assert_equal %w[new_tag1 new_tag2], issue.tag_list.sort
-  end
-
-  def test_get_bulk_edit_with_tags
-    compatible_request :get, :bulk_edit, ids: [1, 2]
-    assert_select '#issue_tags'
-    assert_response :success
-  end
-
-  def test_post_bulk_edit_without_tag_list
-    issue1 = Issue.find(1)
-    issue1.tags = [@tag]
-
-    issue2 = Issue.find(2)
-    issue2.tags = [@last_tag]
-
-    compatible_request :post, :bulk_update, ids: [1, 2], issue: { project_id: '', tracker_id: '' }
-    assert_response :redirect
-    assert_equal [@tag.name], Issue.find(1).tag_list
-    assert_equal [@last_tag.name], Issue.find(2).tag_list
-  ensure
-    issue1.tags = []
-    issue2.tags = []
-    RedmineupTags.unstub(:settings)
-  end
-
-  def test_post_bulk_edit_with_empty_string_tags
-    (1..2).each { |i| assert_equal %w[second third], Issue.find(i).tag_list.sort }
-    compatible_request :post, :bulk_update, ids: [1, 2], issue: { project_id: '', tracker_id: '', tag_list: ['', ''] }
-    assert_response :redirect
-    (1..2).each { |i| assert_equal [], Issue.find(i).tag_list }
-  end
-
-  def test_post_bulk_edit_with_changed_tags
-    issue1 = Issue.find(1)
-    issue1.tags << @tag
-
-    issue2 = Issue.find(2)
-    issue2.tags << @last_tag
-
-    compatible_request :post, :bulk_update, ids: [1, 2], issue: { project_id: '', tracker_id: '', tag_list: ['bulk_tag'] }
-    assert_response :redirect
-    assert_equal ['bulk_tag'], Issue.find(1).tag_list
-    assert_equal ['bulk_tag'], Issue.find(2).tag_list
-  ensure
-    issue1.tags = []
-    issue2.tags = []
-    RedmineupTags.unstub(:settings)
-  end
-
-  def test_get_new_with_permission_edit_tags
-    # User(id: 2) has role Manager in Project(id: 1)
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.add_permission! :edit_tags
-    compatible_request :get, :new, issue: { project_id: 1 }
-    assert_select '#issue_tags'
-  end
-
-  def test_get_new_without_permission_edit_tags
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.remove_permission! :edit_tags
-    compatible_request :get, :new, issue: { project_id: 1 }
-    assert_select '#issue_tags', 0
-  end
-
-  def test_get_new_with_permission_edit_tags_in_other_project
-    # User(id: 2) has role Manager in Project(id: 1) and role Developer in Project(id: 2)
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.add_permission! :edit_tags
-    compatible_request :get, :new, issue: { project_id: 2 }
-    assert_select '#issue_tags', 0
-  end
-
-  def test_get_edit_with_permission_edit_tags
-    # User(id: 2) has role Manager in Project(id: 1) and Project(id: 1) contains Issue(id: 1)
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.add_permission! :edit_tags
-    compatible_request :get, :edit, id: 1, issue: { project_id: 1 }
-    assert_select '#issue_tags'
-  end
-
-  def test_get_edit_without_permission_edit_tags
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.remove_permission! :edit_tags
-    compatible_request :get, :edit, id: 1, issue: { project_id: 1 }
-    assert_select '#issue_tags', 0
-  end
-
-  def test_get_edit_with_permission_edit_tags_in_other_project
-    # User(id: 2) has role Manager in Project(id: 1) and role Developer in Project(id: 2)
-    # Project(id: 1) contains Issue(id: 1)
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.add_permission! :edit_tags
-    compatible_request :get, :edit, id: 1, issue: { project_id: 2 }
-    assert_select '#issue_tags', 0
-  end
-
-  def test_edit_tags_permission
-    # User(id: 2) has role Manager in Project(id: 1) and Project(id: 1) contains Issue(id: 1)
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.add_permission! :edit_tags
-    tag = 'first'
-
-    assert_not_equal Issue.find(1).tag_list, [tag]
-    assert Issue.all_tags.map(&:name).include?(tag)
-    compatible_request :post, :update, id: 1, issue: { project_id: 1, tag_list: [tag] }
-    assert_response :redirect
-    assert_equal Issue.find(1).tag_list, [tag]
-
-    manager_role.remove_permission! :edit_tags
-    tag2 = 'second'
-
-    assert Issue.all_tags.map(&:name).include?(tag2)
-    assert_equal Issue.find(1).description, 'Unable to print recipes'
-    compatible_request :post, :update, id: 1, issue: { project_id: 1, description: 'New description', tag_list: [tag2] }
-    assert_response :redirect
-    issue = Issue.find(1)
-    assert_equal 'New description', issue.description
-    assert_equal [tag], issue.tag_list
-  end
-
-  def test_create_tags_permission
-    @request.session[:user_id] = 2
-    manager_role = Role.find(1)
-    manager_role.add_permission! :edit_tags, :create_tags
-    new_tag = 'enable_create_tags_permission'
-
-    assert_not_equal Issue.find(1).tag_list, [new_tag]
-    assert !Issue.all_tags.map(&:name).include?(new_tag) # The project should not contain the new tag
-    compatible_request :post, :update, id: 1, issue: { project_id: 1, tag_list: [new_tag] }
-    assert_response :redirect
-    assert_equal [new_tag], Issue.find(1).tag_list
-
-    manager_role.remove_permission! :create_tags
-    new_tag2 = 'disable_create_tags_permission'
-
-    assert !Issue.all_tags.map(&:name).include?(new_tag2)
-    compatible_request :post, :update, id: 1, issue: { project_id: 1, tag_list: [new_tag2] }
-    assert_response :redirect
-    assert_equal Issue.find(1).tag_list, [new_tag]
-  end
-
-  def test_filter_by_tags_equal
-    tags = %w(first second)
-    compatible_request :get, :index, project_id: 1, set_filter: 1, f: ['issue_tags', ''], op: { issue_tags: '=' }, v: { issue_tags: tags }
-    assert_response :success
-    issues_in_list.each { |issue| assert_equal (tags & issue.tag_list), tags }
-  end
-
-  def test_filter_by_tags_not_equal
-    tags = %w(first second)
-    compatible_request :get, :index, project_id: 1, set_filter: 1, f: ['issue_tags', ''], op: { issue_tags: '!' }, v: { issue_tags: tags }
-    assert_response :success
-    issues_in_list.each { |issue| assert_not_equal (tags & issue.tag_list), tags }
-  end
-
-  def test_get_index_without_project
-    compatible_request(:get, :index)
-    assert_response :success
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/reports_controller_test.rb b/plugins/redmineup_tags/test/functional/reports_controller_test.rb
deleted file mode 100644
index a0f1b84..0000000
--- a/plugins/redmineup_tags/test/functional/reports_controller_test.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class ReportsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries
-
-  def setup
-    @request.session[:user_id] = 1
-    @project = Project.find(1)
-  end
-
-  def test_get_report_with_tags
-    compatible_request(:get, :issue_report, id: @project.id)
-    assert_response :success
-    assert response.body.match /Tags/
-  end
-
-  def test_get_issue_report_details_with_tags
-    compatible_request(:get, :issue_report_details, id: @project.id, detail: 'tag')
-    assert_response :success
-    assert response.body.match /Tags/
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/tags_controller_test.rb b/plugins/redmineup_tags/test/functional/tags_controller_test.rb
deleted file mode 100644
index 9e11430..0000000
--- a/plugins/redmineup_tags/test/functional/tags_controller_test.rb
+++ /dev/null
@@ -1,102 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class TagsControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers
-
-  def setup
-    # run as the admin
-    @request.session[:user_id] = 1
-
-    @project_a = Project.generate!
-    @project_b = Project.generate!
-
-    add_issue @project_a, %w[a1 a2], false
-    add_issue @project_a, %w[a2 a3], false
-    add_issue @project_a, %w[a4 a5], true
-    add_issue @project_b, %w[b6 b7], true
-    add_issue @project_b, %w[b8 b9], false
-  end
-
-  def test_should_get_edit
-    tag = Redmineup::Tag.find_by_name('a1')
-    compatible_request :get, :edit, id: tag.id
-    assert_response :success
-    assert_select "input#tag_name[value='#{tag.name}']", 1
-  end
-
-  def test_should_put_update
-    tag1 = Redmineup::Tag.find_by_name('a1')
-    new_name = 'updated main'
-    compatible_request :put, :update, id: tag1.id, tag: { name: new_name }
-    assert_redirected_to controller: 'settings', action: 'plugin', id: 'redmineup_tags', tab: 'manage_tags'
-    tag1.reload
-    assert_equal new_name, tag1.name
-  end
-
-  test 'should delete destroy' do
-    tag1 = Redmineup::Tag.find_by_name('a1')
-    assert_difference 'Redmineup::Tag.count', -1 do
-      compatible_request :post, :destroy, ids: tag1.id
-      assert_response 302
-    end
-  end
-
-  test 'should post merge' do
-    tag1 = Redmineup::Tag.find_by_name('a1')
-    tag2 = Redmineup::Tag.find_by_name('b8')
-    assert_difference 'Redmineup::Tag.count', -1 do
-      compatible_request :post, :merge, ids: [tag1.id, tag2.id], tag: { name: 'a1' }
-      assert_redirected_to controller: 'settings', action: 'plugin', id: 'redmineup_tags', tab: 'manage_tags'
-    end
-    assert_equal 0, Issue.tagged_with('b8').count
-    assert_equal 2, Issue.tagged_with('a1').count
-  end
-
-  private
-
-  def add_issue(project, tags, closed)
-    issue = Issue.generate!(project_id: project.id)
-    issue.tag_list = tags
-    issue.status = IssueStatus.where(is_closed: true).first if closed
-    issue.save
-  end
-end
diff --git a/plugins/redmineup_tags/test/functional/timelog_controller_test.rb b/plugins/redmineup_tags/test/functional/timelog_controller_test.rb
deleted file mode 100644
index 2953325..0000000
--- a/plugins/redmineup_tags/test/functional/timelog_controller_test.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class TimelogControllerTest < ActionController::TestCase
-  fixtures :projects,
-           :users,
-           :roles,
-           :members,
-           :member_roles,
-           :issues,
-           :issue_statuses,
-           :versions,
-           :trackers,
-           :projects_trackers,
-           :issue_categories,
-           :enabled_modules,
-           :enumerations,
-           :attachments,
-           :workflows,
-           :custom_fields,
-           :custom_values,
-           :custom_fields_projects,
-           :custom_fields_trackers,
-           :time_entries
-
-  def setup
-    @request.session[:user_id] = 1
-  end
-
-  def test_get_report_with_tags
-    compatible_request(:get, :report, criteria: ['tags'],
-                                      set_filter: "1",
-                                      sort: 'spent_on:desc',
-                                      f: ['spent_on', ''],
-                                      op: { spent_on: '*' },
-                                      t: ['hours', ''],
-                                      columns: 'month')
-    assert_response :success
-    assert_select 'table#time-report tr.last-level td.name'
-    assert_select 'table#time-report tr.total', 1
-  end
-end
diff --git a/plugins/redmineup_tags/test/test_helper.rb b/plugins/redmineup_tags/test/test_helper.rb
deleted file mode 100644
index 3068ca4..0000000
--- a/plugins/redmineup_tags/test/test_helper.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper')
-
-def plugin_fixtures(*fixtures)
-  fixtures_directory = "#{File.dirname(__FILE__)}/fixtures/"
-  fixture_names =
-    if fixtures.first == :all
-      Dir["#{fixtures_directory}/**/*.{yml}"].map do |file_path|
-        file_path[(fixtures_directory.size + 1)..-5]
-      end
-    else
-      fixtures.flatten.map { |n| n.to_s }
-    end
-
-  create_fixtures(fixtures_directory, fixture_names, class_names = {})
-end
-
-def create_fixtures(fixtures_directory, table_names, class_names = {})
-  ActiveRecord::FixtureSet.create_fixtures(fixtures_directory, table_names, class_names)
-end
-
-plugin_fixtures :all
-
-def compatible_request(type, action, parameters = {})
-  send(type, action, params: parameters)
-end
-
-def compatible_xhr_request(type, action, parameters = {})
-  send(type, action, params: parameters, xhr: true)
-end
-
-# Returns the issues that are displayed in the list in the same order
-def issues_in_list
-  ids = css_select('tr.issue td.id').map{ |tag| tag['text'].to_i }
-  Issue.where(id: ids).sort_by { |issue| ids.index(issue.id) }
-end
diff --git a/plugins/redmineup_tags/test/unit/issue_test.rb b/plugins/redmineup_tags/test/unit/issue_test.rb
deleted file mode 100644
index a28a09d..0000000
--- a/plugins/redmineup_tags/test/unit/issue_test.rb
+++ /dev/null
@@ -1,74 +0,0 @@
-# encoding: utf-8
-#
-# This file is a part of Redmine Tags (redmine_tags) plugin,
-# customer relationship management plugin for Redmine
-#
-# Copyright (C) 2011-2024 RedmineUP
-# http://www.redmineup.com/
-#
-# redmine_tags is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# redmine_tags is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with redmine_tags.  If not, see <http://www.gnu.org/licenses/>.
-
-require File.expand_path('../../test_helper', __FILE__)
-
-class RedmineupTags::Patches::IssueTest < ActiveSupport::TestCase
-  fixtures :users, :projects, :issues, :issue_statuses, :enumerations, :trackers, :enabled_modules
-
-  def setup
-    # run as the admin
-    User.stubs(:current).returns(users(:users_001))
-
-    @project_a = Project.find 1
-    @project_b = Project.find 3
-  end
-
-  test 'patch was applied' do
-    assert_respond_to Issue, :available_tags, 'Issue has available_tags getter'
-    assert_respond_to Issue.new, :tags, 'Issue instance has tags getter'
-    assert_respond_to Issue.new, :tags=, 'Issue instance has tags setter'
-    assert_respond_to Issue.new, :tag_list=, 'Issue instance has tag_list setter'
-  end
-
-  test 'available tags should return list of distinct tags' do
-    assert_equal 3, Issue.available_tags.to_a.size
-  end
-
-  test 'available tags should allow list tags of open issues only' do
-    assert_equal 2, Issue.available_tags(open_only: true).to_a.size
-  end
-
-  test 'available tags should allow list tags of specific project only' do
-    assert_equal 3, Issue.available_tags(project: @project_a).to_a.size
-    assert_equal 2, Issue.available_tags(project: @project_b).to_a.size
-
-    assert_equal 2, Issue.available_tags(open_only: true, project: @project_a).to_a.size
-    assert_equal 2, Issue.available_tags(open_only: true, project: @project_b).to_a.size
-  end
-
-  test 'available tags should allow list tags found by name' do
-    assert_equal 2, Issue.available_tags(name_like: 'i').to_a.size
-    assert_equal 1, Issue.available_tags(name_like: 'rd').to_a.size
-    assert_equal 2, Issue.available_tags(name_like: 's').to_a.size
-    assert_equal 1, Issue.available_tags(name_like: 'e').to_a.size
-
-    assert_equal 1, Issue.available_tags(name_like: 'f', project: @project_a).to_a.size
-    assert_equal 0, Issue.available_tags(name_like: 'b', project: @project_a).to_a.size
-    assert_equal 1, Issue.available_tags(name_like: 'sec', open_only: true, project: @project_a).to_a.size
-    assert_equal 0, Issue.available_tags(name_like: 'fir', open_only: true, project: @project_a).to_a.size
-  end
-
-  test 'Issue.all_tags should return all tags kind of Issue' do
-    tags = Issue.all_tags.map(&:name)
-    assert_equal %w[first second third], tags
-  end
-end
diff --git a/plugins/sparkline b/plugins/sparkline
deleted file mode 160000
index 53970b5..0000000
--- a/plugins/sparkline
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 53970b5d80d0787f8830667fbdfeab8709dfcae8
diff --git a/plugins/traffic_lights b/plugins/traffic_lights
deleted file mode 160000
index 80c200c..0000000
--- a/plugins/traffic_lights
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 80c200c9d1d9f10dc2d7c88ff30adf8a3c009fd2
diff --git a/themes/PurpleMine2 b/themes/PurpleMine2
deleted file mode 160000
index 510a32e..0000000
--- a/themes/PurpleMine2
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 510a32ec415f3a07be2331842db8eedf41e5c4dd
-- 
GitLab